110 INTEGER(INTG),
INTENT(OUT) :: ERR
113 INTEGER(INTG) :: component_idx,deriv_idx,dim_idx,local_ny,node_idx,NUMBER_OF_DIMENSIONS,variable_idx,variable_type
114 INTEGER(INTG) :: BC_X_FORCE_counter,BC_X_counter,BC_Y_counter,BC_X_Nodes,BC_Z_Nodes
115 REAL(DP) :: ANALYTIC_VALUE,BC_VALUE,X(3),GEOMETRIC_TOL,FORCE_X,FORCE_Y,FORCE_Y_AREA,LENGTH,WIDTH,HEIGHT,E,v_X,FORCE_X_AREA
116 REAL(DP) :: FORCE_Z,Iyy
117 REAL(DP),
POINTER :: GEOMETRIC_PARAMETERS(:)
121 TYPE(
field_type),
POINTER :: DEPENDENT_FIELD,GEOMETRIC_FIELD
125 enters(
"LinearElasticity_BoundaryConditionsAnalyticCalculate",err,error,*999)
126 geometric_tol=1.0e-6_dp
128 IF(
ASSOCIATED(equations_set))
THEN 129 IF(
ASSOCIATED(equations_set%ANALYTIC))
THEN 130 dependent_field=>equations_set%DEPENDENT%DEPENDENT_FIELD
131 IF(
ASSOCIATED(dependent_field))
THEN 132 geometric_field=>equations_set%GEOMETRY%GEOMETRIC_FIELD
133 IF(
ASSOCIATED(geometric_field))
THEN 134 CALL field_number_of_components_get(geometric_field,field_u_variable_type,number_of_dimensions,err,error,*999)
135 NULLIFY(geometric_variable)
136 CALL field_variable_get(geometric_field,field_u_variable_type,geometric_variable,err,error,*999)
137 NULLIFY(geometric_parameters)
138 CALL field_parameter_set_data_get(geometric_field,field_u_variable_type,field_values_set_type,geometric_parameters, &
147 bc_x_force_counter = 0
148 DO variable_idx=1,dependent_field%NUMBER_OF_VARIABLES
149 variable_type=dependent_field%VARIABLES(variable_idx)%VARIABLE_TYPE
150 field_variable=>dependent_field%VARIABLE_TYPE_MAP(variable_type)%PTR
151 IF(
ASSOCIATED(field_variable))
THEN 152 DO component_idx=1,field_variable%NUMBER_OF_COMPONENTS
153 IF(field_variable%COMPONENTS(component_idx)%INTERPOLATION_TYPE==field_node_based_interpolation)
THEN 154 domain=>field_variable%COMPONENTS(component_idx)%DOMAIN
155 IF(
ASSOCIATED(domain))
THEN 156 IF(
ASSOCIATED(domain%TOPOLOGY))
THEN 157 domain_nodes=>domain%TOPOLOGY%NODES
158 IF(
ASSOCIATED(domain_nodes))
THEN 160 DO node_idx=1,domain_nodes%NUMBER_OF_NODES
162 DO dim_idx=1,number_of_dimensions
164 local_ny=geometric_variable%COMPONENTS(dim_idx)%PARAM_TO_DOF_MAP%NODE_PARAM2DOF_MAP% &
165 & nodes(node_idx)%DERIVATIVES(1)%VERSIONS(1)
166 x(dim_idx)=geometric_parameters(local_ny)
169 DO deriv_idx=1,domain_nodes%NODES(node_idx)%NUMBER_OF_DERIVATIVES
171 SELECT CASE(equations_set%ANALYTIC%ANALYTIC_FUNCTION_TYPE)
176 SELECT CASE(variable_type)
177 CASE(field_u_variable_type)
178 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
182 CASE(field_deludeln_variable_type)
183 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
193 SELECT CASE(component_idx)
195 SELECT CASE(variable_type)
196 CASE(field_u_variable_type)
197 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
201 CASE(field_deludeln_variable_type)
202 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
208 SELECT CASE(variable_type)
209 CASE(field_u_variable_type)
210 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
212 IF (abs(x(1)-0.0_dp) < geometric_tol)
THEN 213 bc_x_counter = bc_x_counter + 1
215 IF (abs(x(2)-0.0_dp) < geometric_tol)
THEN 216 bc_y_counter = bc_y_counter + 1
219 CASE(field_deludeln_variable_type)
220 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
235 SELECT CASE(component_idx)
237 SELECT CASE(variable_type)
238 CASE(field_u_variable_type)
239 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
243 CASE(field_deludeln_variable_type)
244 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
250 SELECT CASE(variable_type)
251 CASE(field_u_variable_type)
252 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
256 CASE(field_deludeln_variable_type)
257 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
259 IF (abs(x(2)-width) < geometric_tol)
THEN 260 IF (abs(x(1)-length) < geometric_tol)
THEN 261 bc_z_nodes = bc_z_nodes + 1
263 IF (abs(x(3)-height) < geometric_tol)
THEN 264 bc_x_nodes = bc_x_nodes + 1
270 SELECT CASE(variable_type)
271 CASE(field_u_variable_type)
272 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
276 CASE(field_deludeln_variable_type)
277 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
293 SELECT CASE(component_idx)
295 SELECT CASE(variable_type)
296 CASE(field_u_variable_type)
297 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
301 CASE(field_deludeln_variable_type)
302 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
308 SELECT CASE(variable_type)
309 CASE(field_u_variable_type)
310 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
314 CASE(field_deludeln_variable_type)
315 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
321 SELECT CASE(variable_type)
322 CASE(field_u_variable_type)
323 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
327 CASE(field_deludeln_variable_type)
328 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
336 local_error=
"The analytic function type of "// &
339 CALL flagerror(local_error,err,error,*999)
344 CALL flagerror(
"Domain topology nodes is not associated.",err,error,*999)
347 CALL flagerror(
"Domain topology is not associated.",err,error,*999)
350 CALL flagerror(
"Domain is not associated.",err,error,*999)
353 CALL flagerror(
"Only node based interpolation is implemented.",err,error,*999)
357 CALL flagerror(
"Field variable is not associated.",err,error,*999)
364 IF(
ASSOCIATED(boundary_conditions))
THEN 365 DO variable_idx=1,dependent_field%NUMBER_OF_VARIABLES
366 variable_type=dependent_field%VARIABLES(variable_idx)%VARIABLE_TYPE
367 field_variable=>dependent_field%VARIABLE_TYPE_MAP(variable_type)%PTR
368 IF(
ASSOCIATED(field_variable))
THEN 369 CALL field_parameter_set_create(dependent_field,variable_type,field_analytic_values_set_type,err,error,*999)
370 DO component_idx=1,field_variable%NUMBER_OF_COMPONENTS
371 IF(field_variable%COMPONENTS(component_idx)%INTERPOLATION_TYPE==field_node_based_interpolation)
THEN 372 domain=>field_variable%COMPONENTS(component_idx)%DOMAIN
373 IF(
ASSOCIATED(domain))
THEN 374 IF(
ASSOCIATED(domain%TOPOLOGY))
THEN 375 domain_nodes=>domain%TOPOLOGY%NODES
376 IF(
ASSOCIATED(domain_nodes))
THEN 378 DO node_idx=1,domain_nodes%NUMBER_OF_NODES
380 DO dim_idx=1,number_of_dimensions
382 local_ny=geometric_variable%COMPONENTS(dim_idx)%PARAM_TO_DOF_MAP%NODE_PARAM2DOF_MAP% &
383 & nodes(node_idx)%DERIVATIVES(1)%VERSIONS(1)
384 x(dim_idx)=geometric_parameters(local_ny)
387 DO deriv_idx=1,domain_nodes%NODES(node_idx)%NUMBER_OF_DERIVATIVES
389 SELECT CASE(equations_set%ANALYTIC%ANALYTIC_FUNCTION_TYPE)
398 force_x_area = width*height
400 SELECT CASE(variable_type)
402 CASE(field_u_variable_type)
403 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
405 analytic_value=(x(1)*(force_x/force_x_area))/e
406 IF (abs(x(1)-0.0_dp) < geometric_tol)
THEN 411 analytic_value=1.0_dp
414 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
415 & err,error))//
" is invalid." 416 CALL flagerror(local_error,err,error,*999)
418 CASE(field_deludeln_variable_type)
419 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
421 IF (abs(x(1)-0.0_dp) < geometric_tol)
THEN 422 analytic_value=-force_x
424 analytic_value=0.0_dp
426 IF (abs(x(1)-length) < geometric_tol)
THEN 431 analytic_value=1.0_dp
434 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
435 & err,error))//
" is invalid." 436 CALL flagerror(local_error,err,error,*999)
441 CALL flagerror(local_error,err,error,*999)
451 force_y_area=width*height
454 SELECT CASE(component_idx)
457 SELECT CASE(variable_type)
459 CASE(field_u_variable_type)
460 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
462 analytic_value=(-v_x*x(1)*(force_y/force_y_area))/e
463 IF (abs(x(1)-0.0_dp) < geometric_tol)
THEN 468 analytic_value=1.0_dp
470 analytic_value=1.0_dp
472 analytic_value=1.0_dp
475 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
476 & err,error))//
" is invalid." 477 CALL flagerror(local_error,err,error,*999)
479 CASE(field_deludeln_variable_type)
480 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
482 analytic_value=0.0_dp
484 analytic_value=1.0_dp
486 analytic_value=1.0_dp
488 analytic_value=1.0_dp
491 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
492 & err,error))//
" is invalid." 493 CALL flagerror(local_error,err,error,*999)
498 CALL flagerror(local_error,err,error,*999)
502 SELECT CASE(variable_type)
503 CASE(field_u_variable_type)
504 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
506 analytic_value=(x(2)*(force_y/force_y_area))/e
507 IF (abs(x(2)-0.0_dp) < geometric_tol)
THEN 512 analytic_value=0.0_dp
514 analytic_value=0.0_dp
516 analytic_value=0.0_dp
519 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
520 & err,error))//
" is invalid." 521 CALL flagerror(local_error,err,error,*999)
523 CASE(field_deludeln_variable_type)
524 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
526 analytic_value=0.0_dp
528 IF (abs(x(2)-width) < geometric_tol)
THEN 530 IF ((abs(x(1)-0.0_dp) < geometric_tol) .OR. (abs(x(1)-length) < geometric_tol))
THEN 531 bc_value=-force_y/(bc_y_counter-1.0_dp)*0.5_dp
533 bc_value=-force_y/(bc_y_counter-1.0_dp)
535 ELSEIF (abs(x(2)-0) < geometric_tol)
THEN 536 IF ((abs(x(1)-0.0_dp) < geometric_tol) .OR. (abs(x(1)-length) < geometric_tol))
THEN 537 analytic_value=-force_y/(bc_y_counter-1.0_dp)*0.5_dp
539 analytic_value=-force_y/(bc_y_counter-1.0_dp)
543 analytic_value=0.0_dp
545 analytic_value=0.0_dp
547 analytic_value=0.0_dp
550 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
551 & err,error))//
" is invalid." 552 CALL flagerror(local_error,err,error,*999)
557 CALL flagerror(local_error,err,error,*999)
562 CALL flagerror(local_error,err,error,*999)
574 force_y_area=width*height
577 SELECT CASE(component_idx)
580 SELECT CASE(variable_type)
581 CASE(field_u_variable_type)
582 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
584 analytic_value=(-v_x*x(1)*(force_y/force_y_area))/e
585 IF (abs(x(1)-0.0_dp) < geometric_tol)
THEN 590 analytic_value=0.0_dp
592 analytic_value=0.0_dp
594 analytic_value=0.0_dp
596 analytic_value=0.0_dp
598 analytic_value=0.0_dp
600 analytic_value=0.0_dp
602 analytic_value=0.0_dp
605 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
606 & err,error))//
" is invalid." 607 CALL flagerror(local_error,err,error,*999)
609 CASE(field_deludeln_variable_type)
610 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
612 analytic_value=0.0_dp
614 analytic_value=0.0_dp
616 analytic_value=0.0_dp
618 analytic_value=0.0_dp
620 analytic_value=0.0_dp
622 analytic_value=0.0_dp
624 analytic_value=0.0_dp
626 analytic_value=0.0_dp
629 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
630 & err,error))//
" is invalid." 631 CALL flagerror(local_error,err,error,*999)
636 CALL flagerror(local_error,err,error,*999)
640 SELECT CASE(variable_type)
641 CASE(field_u_variable_type)
642 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
644 analytic_value=(x(2)*(force_y/force_y_area))/e
645 IF (abs(x(2)-0.0_dp) < geometric_tol)
THEN 650 analytic_value=0.0_dp
652 analytic_value=0.0_dp
654 analytic_value=0.0_dp
656 analytic_value=0.0_dp
658 analytic_value=0.0_dp
660 analytic_value=0.0_dp
662 analytic_value=0.0_dp
665 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
666 & err,error))//
" is invalid." 667 CALL flagerror(local_error,err,error,*999)
669 CASE(field_deludeln_variable_type)
670 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
672 analytic_value=0.0_dp
673 IF (abs(x(2)-width) < geometric_tol)
THEN 675 IF (((abs(x(1)-0.0_dp) < geometric_tol) .AND. (abs(x(3)-0.0_dp) < geometric_tol)) .OR. &
676 & ((abs(x(1)-length) < geometric_tol) .AND. (abs(x(3)-0.0_dp) < geometric_tol)) .OR. &
677 & ((abs(x(1)-0.0_dp) < geometric_tol) .AND. (abs(x(3)-height) < geometric_tol)) .OR. &
678 & ((abs(x(1)-length) < geometric_tol) .AND. (abs(x(3)-height) < geometric_tol)))
THEN 679 bc_value=-force_y/((bc_x_nodes-1.0_dp)*(bc_z_nodes-1.0_dp))*0.25_dp
680 ELSEIF ((abs(x(1)-0.0_dp) < geometric_tol) .OR. (abs(x(1)-length) < geometric_tol) .OR. &
681 & (abs(x(3)-0.0_dp) < geometric_tol) .OR. (abs(x(3)-height) < geometric_tol))
THEN 682 bc_value=-force_y/((bc_x_nodes-1.0_dp)*(bc_z_nodes-1.0_dp))*0.5_dp
684 bc_value=-force_y/((bc_x_nodes-1.0_dp)*(bc_z_nodes-1.0_dp))
686 ELSEIF (abs(x(2)-0.0_dp) < geometric_tol)
THEN 687 IF (((abs(x(1)-0.0_dp) < geometric_tol) .AND. (abs(x(3)-0.0_dp) < geometric_tol)) .OR. &
688 & ((abs(x(1)-length) < geometric_tol) .AND. (abs(x(3)-0.0_dp) < geometric_tol)) .OR. &
689 & ((abs(x(1)-0.0_dp) < geometric_tol) .AND. (abs(x(3)-height) < geometric_tol)) .OR. &
690 & ((abs(x(1)-length) < geometric_tol) .AND. (abs(x(3)-height) < geometric_tol)))
THEN 691 analytic_value=-force_y/((bc_x_nodes-1.0_dp)*(bc_z_nodes-1.0_dp))*0.25_dp
692 ELSEIF ((abs(x(1)-0.0_dp) < geometric_tol) .OR. (abs(x(1)-length) < geometric_tol) .OR. &
693 & (abs(x(3)-0.0_dp) < geometric_tol) .OR. (abs(x(3)-height) < geometric_tol))
THEN 694 analytic_value=-force_y/((bc_x_nodes-1.0_dp)*(bc_z_nodes-1.0_dp))*0.5_dp
696 analytic_value=-force_y/((bc_x_nodes-1.0_dp)*(bc_z_nodes-1.0_dp))
700 analytic_value=0.0_dp
702 analytic_value=0.0_dp
704 analytic_value=0.0_dp
706 analytic_value=0.0_dp
708 analytic_value=0.0_dp
710 analytic_value=0.0_dp
712 analytic_value=0.0_dp
715 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
716 & err,error))//
" is invalid." 717 CALL flagerror(local_error,err,error,*999)
722 CALL flagerror(local_error,err,error,*999)
726 SELECT CASE(variable_type)
727 CASE(field_u_variable_type)
728 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
730 analytic_value=(-v_x*x(3)*(force_y/force_y_area))/e
731 IF (abs(x(3)-0.0_dp) < geometric_tol)
THEN 736 analytic_value=0.0_dp
738 analytic_value=0.0_dp
740 analytic_value=0.0_dp
742 analytic_value=0.0_dp
744 analytic_value=0.0_dp
746 analytic_value=0.0_dp
748 analytic_value=0.0_dp
751 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
752 & err,error))//
" is invalid." 753 CALL flagerror(local_error,err,error,*999)
755 CASE(field_deludeln_variable_type)
756 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
758 analytic_value=0.0_dp
760 analytic_value=0.0_dp
762 analytic_value=0.0_dp
764 analytic_value=0.0_dp
766 analytic_value=0.0_dp
768 analytic_value=0.0_dp
770 analytic_value=0.0_dp
772 analytic_value=0.0_dp
775 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
776 & err,error))//
" is invalid." 777 CALL flagerror(local_error,err,error,*999)
782 CALL flagerror(local_error,err,error,*999)
787 CALL flagerror(local_error,err,error,*999)
803 iyy = (height*(width**3.0_dp))/12.0_dp
804 SELECT CASE(component_idx)
807 SELECT CASE(variable_type)
808 CASE(field_u_variable_type)
809 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
812 IF (abs(x(1)-0.0_dp) < geometric_tol)
THEN 817 analytic_value=0.0_dp
819 analytic_value=0.0_dp
821 analytic_value=0.0_dp
823 analytic_value=0.0_dp
825 analytic_value=0.0_dp
827 analytic_value=0.0_dp
829 analytic_value=0.0_dp
832 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
833 & err,error))//
" is invalid." 834 CALL flagerror(local_error,err,error,*999)
836 CASE(field_deludeln_variable_type)
837 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
839 analytic_value=0.0_dp
841 analytic_value=0.0_dp
843 analytic_value=0.0_dp
845 analytic_value=0.0_dp
847 analytic_value=0.0_dp
849 analytic_value=0.0_dp
851 analytic_value=0.0_dp
853 analytic_value=0.0_dp
856 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
857 & err,error))//
" is invalid." 858 CALL flagerror(local_error,err,error,*999)
863 CALL flagerror(local_error,err,error,*999)
867 SELECT CASE(variable_type)
868 CASE(field_u_variable_type)
869 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
877 analytic_value=0.0_dp
879 analytic_value=0.0_dp
881 analytic_value=0.0_dp
883 analytic_value=0.0_dp
885 analytic_value=0.0_dp
887 analytic_value=0.0_dp
889 analytic_value=0.0_dp
892 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
893 & err,error))//
" is invalid." 894 CALL flagerror(local_error,err,error,*999)
896 CASE(field_deludeln_variable_type)
897 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
899 analytic_value=0.0_dp
927 analytic_value=0.0_dp
929 analytic_value=0.0_dp
931 analytic_value=0.0_dp
933 analytic_value=0.0_dp
935 analytic_value=0.0_dp
937 analytic_value=0.0_dp
939 analytic_value=0.0_dp
942 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
943 & err,error))//
" is invalid." 944 CALL flagerror(local_error,err,error,*999)
949 CALL flagerror(local_error,err,error,*999)
953 SELECT CASE(variable_type)
954 CASE(field_u_variable_type)
955 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
957 analytic_value=0.0_dp
958 IF ((abs(x(1)-0.0_dp) < geometric_tol) .AND. (abs(x(2)-0.0_dp) < geometric_tol))
THEN 959 analytic_value=(force_z*(3.0_dp*length-x(3))*x(3)**2.0_dp)/(6.0_dp*iyy*e)
961 IF (abs(x(1)-0.0_dp) < geometric_tol)
THEN 966 analytic_value=0.0_dp
968 analytic_value=0.0_dp
970 analytic_value=0.0_dp
972 analytic_value=0.0_dp
974 analytic_value=0.0_dp
976 analytic_value=0.0_dp
978 analytic_value=0.0_dp
981 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
982 & err,error))//
" is invalid." 983 CALL flagerror(local_error,err,error,*999)
985 CASE(field_deludeln_variable_type)
986 SELECT CASE(domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX)
988 IF ((abs(x(1)-length) < geometric_tol) .AND. (abs(x(2)-0.0_dp) < geometric_tol) .AND. &
989 (abs(x(3)-0.0_dp) < geometric_tol))
THEN 993 analytic_value=0.0_dp
995 analytic_value=0.0_dp
997 analytic_value=0.0_dp
999 analytic_value=0.0_dp
1001 analytic_value=0.0_dp
1003 analytic_value=0.0_dp
1005 analytic_value=0.0_dp
1007 analytic_value=0.0_dp
1010 & domain_nodes%NODES(node_idx)%DERIVATIVES(deriv_idx)%GLOBAL_DERIVATIVE_INDEX,
"*", &
1011 & err,error))//
" is invalid." 1012 CALL flagerror(local_error,err,error,*999)
1017 CALL flagerror(local_error,err,error,*999)
1022 CALL flagerror(local_error,err,error,*999)
1031 local_error=
"The analytic function type of "// &
1034 CALL flagerror(local_error,err,error,*999)
1037 local_ny=field_variable%COMPONENTS(component_idx)%PARAM_TO_DOF_MAP% &
1038 & node_param2dof_map%NODES(node_idx)%DERIVATIVES(deriv_idx)%VERSIONS(1)
1039 CALL field_parameter_set_update_local_dof(dependent_field,variable_type, &
1040 & field_analytic_values_set_type,local_ny,analytic_value,err,error,*999)
1043 local_ny=field_variable%COMPONENTS(component_idx)%PARAM_TO_DOF_MAP% &
1044 & node_param2dof_map%NODES(node_idx)%DERIVATIVES(deriv_idx)%VERSIONS(1)
1045 WRITE(*,*) variable_type
1052 CALL flagerror(
"Domain topology nodes is not associated.",err,error,*999)
1055 CALL flagerror(
"Domain topology is not associated.",err,error,*999)
1058 CALL flagerror(
"Domain is not associated.",err,error,*999)
1061 CALL flagerror(
"Only node based interpolation is implemented.",err,error,*999)
1064 CALL field_parameter_set_update_start(dependent_field,variable_type,field_analytic_values_set_type, &
1066 CALL field_parameter_set_update_finish(dependent_field,variable_type,field_analytic_values_set_type, &
1069 CALL flagerror(
"Field variable is not associated.",err,error,*999)
1072 CALL field_parameter_set_data_restore(geometric_field,field_u_variable_type,field_values_set_type, &
1073 & geometric_parameters,err,error,*999)
1075 CALL flagerror(
"Boundary conditions is not associated.",err,error,*999)
1078 CALL flagerror(
"Equations set geometric field is not associated.",err,error,*999)
1081 CALL flagerror(
"Equations set dependent field is not associated.",err,error,*999)
1084 CALL flagerror(
"Equations set analytic is not associated.",err,error,*999)
1087 CALL flagerror(
"Equations set is not associated.",err,error,*999)
1090 exits(
"LinearElasticity_BoundaryConditionsAnalyticCalculate")
1092 999
errors(
"LinearElasticity_BoundaryConditionsAnalyticCalculate",err,error)
1093 exits(
"LinearElasticity_BoundaryConditionsAnalyticCalculate")
1108 INTEGER(INTG),
INTENT(IN) :: ELEMENT_NUMBER
1109 INTEGER(INTG),
INTENT(OUT) :: ERR
1113 INTEGER(INTG) :: FIELD_VAR_TYPE,ng,ni,xi,mi,ns,nhs,ms,mhs,TOTAL_DEPENDENT_BASIS_EP,MESH_COMPONENT
1114 INTEGER(INTG) :: NUMBER_OF_DEPENDENT_COMPONENTS,NUMBER_OF_XI
1115 INTEGER(INTG) :: OFF_DIAG_COMP(3),OFF_DIAG_DEP_VAR(2,2,3),DIAG_SUB_MAT_LOC(3),OFF_DIAG_SUB_MAT_LOC(2,3)
1116 INTEGER(INTG) :: DEPENDENT_BASES_EP(3)
1117 REAL(DP) :: JRWG,C(6,6),JRWG_DIAG_C(3,3),JRWG_OFF_DIAG_C(2,3)
1122 TYPE(
field_type),
POINTER :: DEPENDENT_FIELD,GEOMETRIC_FIELD
1138 TYPE dphi_dx_comp_type
1139 REAL(DP) :: DPHIDX(64,3)
1140 END TYPE dphi_dx_comp_type
1141 TYPE(dphi_dx_comp_type) :: DPHIDX_COMP(3)
1143 enters(
"LINEAR_ELASTICITY_FINITE_ELEMENT_CALCULATE",err,error,*999)
1151 IF(
ASSOCIATED(equations_set))
THEN 1152 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 1153 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
1154 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)/=3)
THEN 1155 CALL flagerror(
"Equations set specification must have three entries for a linear elasticity type equations set.", &
1158 equations=>equations_set%EQUATIONS
1159 IF(
ASSOCIATED(equations))
THEN 1160 dependent_field=>equations%INTERPOLATION%DEPENDENT_FIELD
1161 geometric_field=>equations%INTERPOLATION%GEOMETRIC_FIELD
1163 equations_matrices=>equations%EQUATIONS_MATRICES
1164 equations_matrix=>equations_matrices%LINEAR_MATRICES%MATRICES(1)%PTR
1165 rhs_vector=>equations_matrices%RHS_VECTOR
1166 equations_mapping=>equations%EQUATIONS_MAPPING
1167 linear_mapping=>equations_mapping%LINEAR_MAPPING
1168 field_variable=>linear_mapping%EQUATIONS_MATRIX_TO_VAR_MAPS(1)%VARIABLE
1169 field_var_type=field_variable%VARIABLE_TYPE
1172 number_of_dependent_components=geometric_field%VARIABLE_TYPE_MAP(1)%ptr%NUMBER_OF_COMPONENTS
1176 DO ns=1,number_of_dependent_components
1177 mesh_component=dependent_field%VARIABLE_TYPE_MAP(1)%ptr%COMPONENTS(ns)%mesh_component_number
1178 dependent_bases(ns)%PTR=>dependent_field%DECOMPOSITION%DOMAIN(mesh_component)%PTR% &
1179 & topology%ELEMENTS%ELEMENTS(element_number)%BASIS
1180 dependent_bases_ep(ns)=dependent_bases(ns)%PTR%NUMBER_OF_ELEMENT_PARAMETERS
1183 number_of_xi = dependent_bases(1)%PTR%NUMBER_OF_XI
1184 total_dependent_basis_ep = sum(dependent_bases_ep(1:number_of_xi))
1191 SELECT CASE(equations_set%SPECIFICATION(3))
1200 off_diag_comp = (/0,1,3/)
1201 off_diag_dep_var(1,1,:) = (/1,1,2/)
1202 off_diag_dep_var(1,2,:) = (/2,3,3/)
1203 off_diag_dep_var(2,1,:) = off_diag_dep_var(1,2,:)
1204 off_diag_dep_var(2,2,:) = off_diag_dep_var(1,1,:)
1206 diag_sub_mat_loc(:) = (/0,dependent_bases_ep(1),sum(dependent_bases_ep(1:2))/)
1207 off_diag_sub_mat_loc(1,:) = (/0,0,dependent_bases_ep(1)/)
1208 off_diag_sub_mat_loc(2,:) = (/dependent_bases_ep(1),diag_sub_mat_loc(3),diag_sub_mat_loc(3)/)
1210 IF(equations_matrix%UPDATE_MATRIX)
THEN 1212 geometric_interpolation_parameters=>equations%INTERPOLATION%GEOMETRIC_INTERP_PARAMETERS(field_u_variable_type)%PTR
1214 materials_interpolation_parameters=>equations%INTERPOLATION%MATERIALS_INTERP_PARAMETERS(field_u_variable_type)%PTR
1215 CALL field_interpolation_parameters_element_get(field_values_set_type,element_number, &
1216 & geometric_interpolation_parameters,err,error,*999)
1219 CALL field_interpolation_parameters_element_get(field_values_set_type,element_number, &
1220 & materials_interpolation_parameters,err,error,*999)
1221 geometric_interp_point_metrics=>equations%INTERPOLATION%GEOMETRIC_INTERP_POINT_METRICS(field_u_variable_type)%PTR
1222 materials_interp_point=>equations%INTERPOLATION%MATERIALS_INTERP_POINT(field_u_variable_type)%PTR
1224 DO ng=1,quadrature_schemes(1)%PTR%NUMBER_OF_GAUSS
1227 & geometric_interp_point(field_u_variable_type)%PTR,err,error,*999)
1232 CALL field_interpolated_point_metrics_calculate(number_of_xi,geometric_interp_point_metrics,err,error,*999)
1234 jrwg=quadrature_schemes(1)%PTR%GAUSS_WEIGHTS(ng)*geometric_interp_point_metrics%JACOBIAN
1235 DO xi=1,number_of_xi
1236 dphidx_comp(xi)%DPHIDX = 0.0_dp
1237 DO ns=1,dependent_bases_ep(xi)
1238 DO mi=1,number_of_xi
1239 DO ni=1,number_of_xi
1240 dphidx_comp(xi)%DPHIDX(ns,mi) = dphidx_comp(xi)%DPHIDX(ns,mi)+geometric_interp_point_metrics%DXI_DX(mi,ni)* &
1251 jrwg_diag_c(3,:) = (/jrwg*c(4,4),jrwg*c(5,5),jrwg*c(3,3)/)
1252 jrwg_diag_c(2,:) = (/jrwg*c(6,6),jrwg*c(2,2),jrwg_diag_c(3,2)/)
1253 jrwg_diag_c(1,:) = (/jrwg*c(1,1),jrwg_diag_c(2,1),jrwg_diag_c(3,1)/)
1254 jrwg_off_diag_c(1,:) = (/jrwg*c(1,2),jrwg*c(1,3),jrwg*c(2,3)/)
1255 jrwg_off_diag_c(2,:) = (/jrwg*c(6,6),jrwg*c(4,4),jrwg*c(5,5)/)
1257 DO xi=1,number_of_xi
1258 DO ns=1,dependent_bases_ep(xi)
1259 DO ms=ns,dependent_bases_ep(xi)
1260 equations_matrix%ELEMENT_MATRIX%MATRIX(diag_sub_mat_loc(xi)+ns,diag_sub_mat_loc(xi)+ms) = &
1261 & equations_matrix%ELEMENT_MATRIX%MATRIX(diag_sub_mat_loc(xi)+ns,diag_sub_mat_loc(xi)+ms) + &
1262 & dot_product(dphidx_comp(xi)%DPHIDX(ns,1:number_of_xi)*dphidx_comp(xi)%DPHIDX(ms,1:number_of_xi), &
1263 & jrwg_diag_c(xi,1:number_of_xi))
1268 DO xi=1,off_diag_comp(number_of_xi)
1269 DO ns=1,dependent_bases_ep(off_diag_dep_var(1,1,xi))
1270 DO ms=1,dependent_bases_ep(off_diag_dep_var(1,2,xi))
1271 equations_matrix%ELEMENT_MATRIX%MATRIX(off_diag_sub_mat_loc(1,xi)+ns,off_diag_sub_mat_loc(2,xi)+ms) = &
1272 & equations_matrix%ELEMENT_MATRIX%MATRIX(off_diag_sub_mat_loc(1,xi)+ns,off_diag_sub_mat_loc(2,xi)+ms)+ &
1273 & dot_product(dphidx_comp(off_diag_dep_var(1,1,xi))%DPHIDX(ns,off_diag_dep_var(1,:,xi))* &
1274 & dphidx_comp(off_diag_dep_var(1,2,xi))%DPHIDX(ms,off_diag_dep_var(2,:,xi)),jrwg_off_diag_c(:,xi))
1329 DO mhs=1,total_dependent_basis_ep
1330 DO nhs=mhs,total_dependent_basis_ep
1332 equations_matrix%ELEMENT_MATRIX%MATRIX(mhs,nhs)=equations_matrix%ELEMENT_MATRIX%MATRIX(mhs,nhs)* &
1333 & materials_interp_point%values(1,1)
1340 IF(rhs_vector%UPDATE_VECTOR)
THEN 1341 rhs_vector%ELEMENT_VECTOR%VECTOR=0.0_dp
1345 IF(dependent_field%SCALINGS%SCALING_TYPE/=field_no_scaling)
THEN 1346 dependent_interpolation_parameters=>equations%INTERPOLATION%DEPENDENT_INTERP_PARAMETERS(field_var_type)%PTR
1347 CALL field_interpolationparametersscalefactorselementget(element_number,dependent_interpolation_parameters, &
1349 DO xi=1,number_of_xi
1350 sf(diag_sub_mat_loc(xi)+1:sum(dependent_bases_ep(1:xi)))=dependent_interpolation_parameters%SCALE_FACTORS(:,xi)
1352 DO mhs=1,total_dependent_basis_ep
1353 IF(equations_matrix%UPDATE_MATRIX)
THEN 1354 DO nhs=mhs,total_dependent_basis_ep
1355 equations_matrix%ELEMENT_MATRIX%MATRIX(mhs,nhs)=equations_matrix%ELEMENT_MATRIX%MATRIX(mhs,nhs)*sf(mhs)*sf(nhs)
1359 IF(rhs_vector%UPDATE_VECTOR) rhs_vector%ELEMENT_VECTOR%VECTOR(mhs)=rhs_vector%ELEMENT_VECTOR%VECTOR(mhs)*sf(mhs)
1363 IF(equations_matrix%UPDATE_MATRIX)
THEN 1367 DO mhs=2,total_dependent_basis_ep
1369 equations_matrix%ELEMENT_MATRIX%MATRIX(mhs,nhs) = equations_matrix%ELEMENT_MATRIX%MATRIX(nhs,mhs)
1375 CALL flagerror(
"Not implemented.",err,error,*999)
1377 CALL flagerror(
"Not implemented.",err,error,*999)
1379 local_error=
"Equations set subtype "//
trim(
number_to_vstring(equations_set%SPECIFICATION(3),
"*",err,error))// &
1380 &
" is not valid for a Linear Elasticity equation type of a Elasticty equations set class." 1381 CALL flagerror(local_error,err,error,*999)
1384 CALL flagerror(
"Equations set equations is not associated.",err,error,*999)
1387 CALL flagerror(
"Equations set is not associated.",err,error,*999)
1390 exits(
"LINEAR_ELASTICITY_FINITE_ELEMENT_CALCULATE")
1392 999 errorsexits(
"LINEAR_ELASTICITY_FINITE_ELEMENT_CALCULATE",err,error)
1401 SUBROUTINE linear_elasticity_tensor(EQUATIONS_SET_SUBTYPE,MATERIALS_INTERPOLATED_POINT,ELASTICITY_TENSOR,ERR,ERROR,*)
1404 INTEGER(INTG),
INTENT(IN) :: EQUATIONS_SET_SUBTYPE
1406 REAL(DP),
INTENT(OUT) :: ELASTICITY_TENSOR(:,:)
1407 INTEGER(INTG),
INTENT(OUT) :: ERR
1411 REAL(DP) :: E1,E2,E3,v13,v23,v12,v31,v32,v21,gama
1412 REAL(DP) :: C11,C22,C33,C12,C13,C23,C21,C31,C32,C44,C55,C66
1415 enters(
"LINEAR_ELASTICITY_TENSOR",err,error,*999)
1416 elasticity_tensor=0.0_dp
1417 SELECT CASE(equations_set_subtype)
1421 e1 = materials_interpolated_point%values(1,1)
1422 e2 = materials_interpolated_point%values(2,1)
1423 e3 = materials_interpolated_point%values(3,1)
1424 v13 = materials_interpolated_point%values(4,1)
1425 v23 = materials_interpolated_point%values(5,1)
1426 v12 = materials_interpolated_point%values(6,1)
1430 gama = 1.0_dp/(1.0_dp-v12*v21-v23*v32-v31*v13-2.0_dp*v21*v32*v13)
1431 c11 = e1*(1.0_dp-v23*v32)*gama
1432 c22 = e2*(1.0_dp-v13*v31)*gama
1433 c33 = e3*(1.0_dp-v12*v21)*gama
1434 c12 = e1*(v21+v31*v23)*gama
1435 c13 = e1*(v31+v21*v32)*gama
1436 c23 = e2*(v32+v12*v31)*gama
1440 c44 = e2/(2.0_dp*(1.0_dp+v23))
1441 c55 = e1/(2.0_dp*(1.0_dp+v13))
1442 c66 = e3/(2.0_dp*(1.0_dp+v12))
1443 elasticity_tensor(1:6,1)=(/c11,c21,c31,0.0_dp,0.0_dp,0.0_dp/)
1444 elasticity_tensor(1:6,2)=(/c12,c22,c32,0.0_dp,0.0_dp,0.0_dp/)
1445 elasticity_tensor(1:6,3)=(/c13,c23,c33,0.0_dp,0.0_dp,0.0_dp/)
1446 elasticity_tensor(4,4)=c44
1447 elasticity_tensor(5,5)=c55
1448 elasticity_tensor(6,6)=c66
1451 e1 = materials_interpolated_point%values(2,1)
1452 v12 = materials_interpolated_point%values(3,1)
1454 gama = 1.0_dp/(1.0_dp-v12*v21)
1459 c66 = e1/(2.0_dp*(1.0_dp+v12))
1460 elasticity_tensor(1,1)=c11
1461 elasticity_tensor(1,2)=c21
1462 elasticity_tensor(2,1)=c21
1463 elasticity_tensor(2,2)=c22
1464 elasticity_tensor(6,6)=c66
1467 e1 = materials_interpolated_point%values(2,1)
1469 v12 = materials_interpolated_point%values(3,1)
1471 gama = 1.0_dp/(1.0_dp-v12-v21)
1472 c11 = e1*gama*(1.0_dp-v12)/(1.0_dp+v12)
1473 c22 = e2*gama*(1.0_dp-v21)/(1.0_dp+v21)
1476 c66 = e1/(2.0_dp*(1.0_dp+v12))
1477 elasticity_tensor(1,1)=c11
1478 elasticity_tensor(1,2)=c21
1479 elasticity_tensor(2,1)=c21
1480 elasticity_tensor(2,2)=c22
1481 elasticity_tensor(6,6)=c66
1484 e1 = materials_interpolated_point%values(2,1)
1486 elasticity_tensor(1,1)=c11
1488 CALL flagerror(
"Not implemented.",err,error,*999)
1490 CALL flagerror(
"Not implemented.",err,error,*999)
1492 local_error=
"Equations set subtype "//
trim(
number_to_vstring(equations_set_subtype,
"*",err,error))// &
1493 &
" is not valid for a Linear Elasticity equation type of a Elasticty equations set class." 1494 CALL flagerror(local_error,err,error,*999)
1497 exits(
"LINEAR_ELASTICITY_TENSOR")
1499 999 errorsexits(
"LINEAR_ELASTICITY_TENSOR",err,error)
1513 INTEGER(INTG),
INTENT(OUT) :: ERR
1516 INTEGER(INTG) :: component_idx,GEOMETRIC_COMPONENT_NUMBER,GEOMETRIC_MESH_COMPONENT,GEOMETRIC_SCALING_TYPE, &
1517 & NUMBER_OF_COMPONENTS,NUMBER_OF_DIMENSIONS
1519 TYPE(
field_type),
POINTER :: ANALYTIC_FIELD,DEPENDENT_FIELD,GEOMETRIC_FIELD
1526 enters(
"LINEAR_ELASTICITY_EQUATIONS_SET_SETUP",err,error,*999)
1529 NULLIFY(equations_mapping)
1530 NULLIFY(equations_matrices)
1531 NULLIFY(geometric_decomposition)
1533 IF(
ASSOCIATED(equations_set))
THEN 1534 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 1535 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
1536 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)/=3)
THEN 1537 CALL flagerror(
"Equations set specification must have three entries for a linear elasticity type equations set.", &
1542 SELECT CASE(equations_set%SPECIFICATION(3))
1547 SELECT CASE(equations_set_setup%SETUP_TYPE)
1549 SELECT CASE(equations_set_setup%ACTION_TYPE)
1557 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
1558 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
1559 &
" is invalid for a linear elasticity equation." 1560 CALL flagerror(local_error,err,error,*999)
1565 SELECT CASE(equations_set_setup%ACTION_TYPE)
1567 IF(equations_set%DEPENDENT%DEPENDENT_FIELD_AUTO_CREATED)
THEN 1569 CALL field_create_start(equations_set_setup%FIELD_USER_NUMBER,equations_set%REGION,equations_set%DEPENDENT% &
1570 & dependent_field,err,error,*999)
1571 CALL field_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_general_type,err,error,*999)
1572 CALL field_dependent_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_dependent_type,err,error,*999)
1573 CALL field_mesh_decomposition_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_decomposition,err,error,*999)
1574 CALL field_mesh_decomposition_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,geometric_decomposition, &
1576 CALL field_geometric_field_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,equations_set%GEOMETRY% &
1577 & geometric_field,err,error,*999)
1578 CALL field_number_of_variables_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,2,err,error,*999)
1579 CALL field_variable_types_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,(/field_u_variable_type, &
1580 & field_deludeln_variable_type/),err,error,*999)
1581 CALL field_dimension_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
1582 & field_vector_dimension_type,err,error,*999)
1583 CALL field_dimension_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
1584 & field_vector_dimension_type,err,error,*999)
1585 CALL field_data_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
1586 & field_dp_type,err,error,*999)
1587 CALL field_data_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
1588 & field_dp_type,err,error,*999)
1589 CALL field_number_of_components_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
1590 & number_of_dimensions,err,error,*999)
1591 number_of_components=number_of_dimensions
1592 CALL field_number_of_components_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
1593 & number_of_components,err,error,*999)
1594 CALL field_number_of_components_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
1595 & number_of_components,err,error,*999)
1597 DO component_idx=1,number_of_dimensions
1598 CALL field_component_mesh_component_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
1599 & component_idx,geometric_mesh_component,err,error,*999)
1600 CALL field_component_mesh_component_set(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
1601 & component_idx,geometric_mesh_component,err,error,*999)
1602 CALL field_component_mesh_component_set(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
1603 & component_idx,geometric_mesh_component,err,error,*999)
1605 SELECT CASE(equations_set%SOLUTION_METHOD)
1607 DO component_idx=1,number_of_components
1608 CALL field_component_interpolation_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
1609 & component_idx,field_node_based_interpolation,err,error,*999)
1610 CALL field_component_interpolation_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD, &
1611 & field_deludeln_variable_type,component_idx,field_node_based_interpolation,err,error,*999)
1614 CALL field_scaling_type_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_scaling_type,err,error,*999)
1615 CALL field_scaling_type_set(equations_set%DEPENDENT%DEPENDENT_FIELD,geometric_scaling_type,err,error,*999)
1617 CALL flagerror(
"Not implemented.",err,error,*999)
1619 CALL flagerror(
"Not implemented.",err,error,*999)
1621 CALL flagerror(
"Not implemented.",err,error,*999)
1623 CALL flagerror(
"Not implemented.",err,error,*999)
1625 CALL flagerror(
"Not implemented.",err,error,*999)
1627 local_error=
"The solution method of "//
trim(
number_to_vstring(equations_set%SOLUTION_METHOD,
"*",err,error))// &
1629 CALL flagerror(local_error,err,error,*999)
1633 CALL field_type_check(equations_set_setup%FIELD,field_general_type,err,error,*999)
1634 CALL field_dependent_type_check(equations_set_setup%FIELD,field_dependent_type,err,error,*999)
1635 CALL field_number_of_variables_check(equations_set_setup%FIELD,2,err,error,*999)
1636 CALL field_variable_types_check(equations_set_setup%FIELD,(/field_u_variable_type,field_deludeln_variable_type/), &
1638 CALL field_dimension_check(equations_set_setup%FIELD,field_u_variable_type,field_vector_dimension_type, &
1640 CALL field_dimension_check(equations_set_setup%FIELD,field_deludeln_variable_type,field_vector_dimension_type, &
1642 CALL field_data_type_check(equations_set_setup%FIELD,field_u_variable_type,field_dp_type,err,error,*999)
1643 CALL field_data_type_check(equations_set_setup%FIELD,field_deludeln_variable_type,field_dp_type,err,error,*999)
1644 CALL field_number_of_components_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
1645 & number_of_dimensions,err,error,*999)
1646 number_of_components=number_of_dimensions
1647 CALL field_number_of_components_check(equations_set_setup%FIELD,field_u_variable_type,number_of_components, &
1649 CALL field_number_of_components_check(equations_set_setup%FIELD,field_deludeln_variable_type,number_of_components, &
1651 SELECT CASE(equations_set%SOLUTION_METHOD)
1653 CALL field_component_interpolation_check(equations_set_setup%FIELD,field_u_variable_type,1, &
1654 & field_node_based_interpolation,err,error,*999)
1655 CALL field_component_interpolation_check(equations_set_setup%FIELD,field_deludeln_variable_type,1, &
1656 & field_node_based_interpolation,err,error,*999)
1658 CALL flagerror(
"Not implemented.",err,error,*999)
1660 CALL flagerror(
"Not implemented.",err,error,*999)
1662 CALL flagerror(
"Not implemented.",err,error,*999)
1664 CALL flagerror(
"Not implemented.",err,error,*999)
1666 CALL flagerror(
"Not implemented.",err,error,*999)
1668 local_error=
"The solution method of "//
trim(
number_to_vstring(equations_set%SOLUTION_METHOD,
"*",err,error))// &
1670 CALL flagerror(local_error,err,error,*999)
1674 IF(equations_set%DEPENDENT%DEPENDENT_FIELD_AUTO_CREATED)
THEN 1675 CALL field_create_finish(equations_set%DEPENDENT%DEPENDENT_FIELD,err,error,*999)
1678 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
1679 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
1680 &
" is invalid for a linear elasticity equation" 1681 CALL flagerror(local_error,err,error,*999)
1684 SELECT CASE(equations_set_setup%ACTION_TYPE)
1686 equations_materials=>equations_set%MATERIALS
1687 IF(
ASSOCIATED(equations_materials))
THEN 1688 IF(equations_materials%MATERIALS_FIELD_AUTO_CREATED)
THEN 1691 CALL field_create_start(equations_set_setup%FIELD_USER_NUMBER,equations_set%REGION,equations_materials% &
1692 & materials_field,err,error,*999)
1693 CALL field_type_set_and_lock(equations_materials%MATERIALS_FIELD,field_material_type,err,error,*999)
1694 CALL field_dependent_type_set_and_lock(equations_materials%MATERIALS_FIELD,field_independent_type,err,error,*999)
1695 CALL field_mesh_decomposition_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_decomposition,err,error,*999)
1696 CALL field_mesh_decomposition_set_and_lock(equations_materials%MATERIALS_FIELD,geometric_decomposition, &
1698 CALL field_geometric_field_set_and_lock(equations_materials%MATERIALS_FIELD,equations_set%GEOMETRY% &
1699 & geometric_field,err,error,*999)
1700 CALL field_number_of_variables_set_and_lock(equations_materials%MATERIALS_FIELD,1,err,error,*999)
1701 CALL field_variable_types_set_and_lock(equations_materials%MATERIALS_FIELD,(/field_u_variable_type/), &
1703 CALL field_dimension_set_and_lock(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
1704 & field_vector_dimension_type,err,error,*999)
1705 CALL field_data_type_set_and_lock(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
1706 & field_dp_type,err,error,*999)
1707 CALL field_number_of_components_set_and_lock(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
1709 CALL field_component_mesh_component_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
1710 & 1,geometric_component_number,err,error,*999)
1711 DO component_idx=1,6
1713 CALL field_component_mesh_component_set(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
1714 & component_idx,geometric_component_number,err,error,*999)
1715 CALL field_component_interpolation_set(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
1716 & component_idx,field_constant_interpolation,err,error,*999)
1719 CALL field_scaling_type_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_scaling_type,err,error,*999)
1720 CALL field_scaling_type_set(equations_materials%MATERIALS_FIELD,geometric_scaling_type,err,error,*999)
1723 CALL field_type_check(equations_set_setup%FIELD,field_material_type,err,error,*999)
1724 CALL field_dependent_type_check(equations_set_setup%FIELD,field_independent_type,err,error,*999)
1725 CALL field_number_of_variables_check(equations_set_setup%FIELD,1,err,error,*999)
1726 CALL field_variable_types_check(equations_set_setup%FIELD,(/field_u_variable_type/),err,error,*999)
1727 CALL field_dimension_check(equations_set_setup%FIELD,field_u_variable_type,field_vector_dimension_type, &
1729 CALL field_data_type_check(equations_set_setup%FIELD,field_u_variable_type,field_dp_type,err,error,*999)
1730 CALL field_number_of_components_check(equations_set_setup%FIELD,field_u_variable_type,6,err,error,*999)
1733 CALL flagerror(
"Equations materials is not associated.",err,error,*999)
1736 equations_materials=>equations_set%MATERIALS
1737 IF(
ASSOCIATED(equations_materials))
THEN 1738 IF(equations_materials%MATERIALS_FIELD_AUTO_CREATED)
THEN 1740 CALL field_create_finish(equations_materials%MATERIALS_FIELD,err,error,*999)
1742 DO component_idx=1,3
1743 CALL field_component_values_initialise(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
1744 & field_values_set_type,component_idx,30.0e6_dp,err,error,*999)
1746 DO component_idx=4,6
1747 CALL field_component_values_initialise(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
1748 & field_values_set_type,component_idx,0.25_dp,err,error,*999)
1752 CALL flagerror(
"Equations set materials is not associated.",err,error,*999)
1755 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
1756 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
1757 &
" is invalid for a linear elasticity equation." 1758 CALL flagerror(local_error,err,error,*999)
1761 SELECT CASE(equations_set_setup%ACTION_TYPE)
1768 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
1769 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
1770 &
" is invalid for a linear elasticity equation." 1771 CALL flagerror(local_error,err,error,*999)
1775 SELECT CASE(equations_set_setup%ACTION_TYPE)
1777 IF(equations_set%DEPENDENT%DEPENDENT_FINISHED)
THEN 1778 dependent_field=>equations_set%DEPENDENT%DEPENDENT_FIELD
1779 IF(
ASSOCIATED(dependent_field))
THEN 1780 geometric_field=>equations_set%GEOMETRY%GEOMETRIC_FIELD
1781 IF(
ASSOCIATED(geometric_field))
THEN 1782 CALL field_number_of_components_get(geometric_field,field_u_variable_type,number_of_dimensions,err,error,*999)
1784 SELECT CASE(equations_set_setup%ANALYTIC_FUNCTION_TYPE)
1787 IF(number_of_dimensions/=3)
THEN 1788 local_error=
"The number of geometric dimensions of "// &
1790 &
" is invalid. The analytic function type of "// &
1792 &
" requires that there be 3 geometric dimensions." 1793 CALL flagerror(local_error,err,error,*999)
1800 IF(number_of_dimensions/=3)
THEN 1801 local_error=
"The number of geometric dimensions of "// &
1803 &
" is invalid. The analytic function type of "// &
1805 &
" requires that there be 3 geometric dimensions." 1806 CALL flagerror(local_error,err,error,*999)
1812 local_error=
"The specified analytic function type of "// &
1814 &
" is invalid for a standard Linear Elasticity equation." 1815 CALL flagerror(local_error,err,error,*999)
1818 CALL flagerror(
"Equations set geometric field is not associated.",err,error,*999)
1821 CALL flagerror(
"Equations set dependent field is not associated.",err,error,*999)
1824 CALL flagerror(
"Equations set dependent field has not been finished.",err,error,*999)
1827 IF(
ASSOCIATED(equations_set%ANALYTIC))
THEN 1828 analytic_field=>equations_set%ANALYTIC%ANALYTIC_FIELD
1829 IF(
ASSOCIATED(analytic_field))
THEN 1830 IF(equations_set%ANALYTIC%ANALYTIC_FIELD_AUTO_CREATED)
THEN 1831 CALL field_create_finish(equations_set%DEPENDENT%DEPENDENT_FIELD,err,error,*999)
1835 CALL flagerror(
"Equations set analytic is not associated.",err,error,*999)
1838 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
1839 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
1840 &
" is invalid for a standard Linear Elasticity equation." 1841 CALL flagerror(local_error,err,error,*999)
1845 SELECT CASE(equations_set_setup%ACTION_TYPE)
1847 IF(equations_set%DEPENDENT%DEPENDENT_FINISHED)
THEN 1853 CALL flagerror(
"Equations set dependent field has not bee finished.",err,error,*999)
1856 SELECT CASE(equations_set%SOLUTION_METHOD)
1870 SELECT CASE(equations%SPARSITY_TYPE)
1880 local_error=
"The equations matrices sparsity type of "// &
1882 CALL flagerror(local_error,err,error,*999)
1886 CALL flagerror(
"Not implemented.",err,error,*999)
1888 CALL flagerror(
"Not implemented.",err,error,*999)
1890 CALL flagerror(
"Not implemented.",err,error,*999)
1892 CALL flagerror(
"Not implemented.",err,error,*999)
1894 CALL flagerror(
"Not implemented.",err,error,*999)
1896 local_error=
"The solution method of "//
trim(
number_to_vstring(equations_set%SOLUTION_METHOD,
"*",err,error))// &
1898 CALL flagerror(local_error,err,error,*999)
1901 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
1902 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
1903 &
" is invalid for a linear elasticity equation." 1904 CALL flagerror(local_error,err,error,*999)
1907 local_error=
"The setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
1908 &
" is invalid for a linear elasticity equation." 1909 CALL flagerror(local_error,err,error,*999)
1916 SELECT CASE(equations_set_setup%SETUP_TYPE)
1918 SELECT CASE(equations_set_setup%ACTION_TYPE)
1926 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
1927 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
1928 &
" is invalid for a linear elasticity equation." 1929 CALL flagerror(local_error,err,error,*999)
1934 SELECT CASE(equations_set_setup%ACTION_TYPE)
1936 IF(equations_set%DEPENDENT%DEPENDENT_FIELD_AUTO_CREATED)
THEN 1938 CALL field_create_start(equations_set_setup%FIELD_USER_NUMBER,equations_set%REGION,equations_set%DEPENDENT% &
1939 & dependent_field,err,error,*999)
1940 CALL field_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_general_type,err,error,*999)
1941 CALL field_dependent_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_dependent_type,err,error,*999)
1942 CALL field_mesh_decomposition_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_decomposition,err,error,*999)
1943 CALL field_mesh_decomposition_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,geometric_decomposition, &
1945 CALL field_geometric_field_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,equations_set%GEOMETRY% &
1946 & geometric_field,err,error,*999)
1947 CALL field_number_of_variables_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,2,err,error,*999)
1948 CALL field_variable_types_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,(/field_u_variable_type, &
1949 & field_deludeln_variable_type/),err,error,*999)
1950 CALL field_dimension_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
1951 & field_vector_dimension_type,err,error,*999)
1952 CALL field_dimension_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
1953 & field_vector_dimension_type,err,error,*999)
1954 CALL field_data_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
1955 & field_dp_type,err,error,*999)
1956 CALL field_data_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
1957 & field_dp_type,err,error,*999)
1958 CALL field_number_of_components_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
1959 & number_of_dimensions,err,error,*999)
1960 number_of_components=number_of_dimensions
1961 CALL field_number_of_components_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
1962 & number_of_components,err,error,*999)
1963 CALL field_number_of_components_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
1964 & number_of_components,err,error,*999)
1966 DO component_idx=1,number_of_dimensions
1967 CALL field_component_mesh_component_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
1968 & component_idx,geometric_mesh_component,err,error,*999)
1969 CALL field_component_mesh_component_set(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
1970 & component_idx,geometric_mesh_component,err,error,*999)
1971 CALL field_component_mesh_component_set(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
1972 & component_idx,geometric_mesh_component,err,error,*999)
1974 SELECT CASE(equations_set%SOLUTION_METHOD)
1976 DO component_idx=1,number_of_components
1977 CALL field_component_interpolation_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
1978 & component_idx,field_node_based_interpolation,err,error,*999)
1979 CALL field_component_interpolation_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD, &
1980 & field_deludeln_variable_type,component_idx,field_node_based_interpolation,err,error,*999)
1983 CALL field_scaling_type_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_scaling_type,err,error,*999)
1984 CALL field_scaling_type_set(equations_set%DEPENDENT%DEPENDENT_FIELD,geometric_scaling_type,err,error,*999)
1986 CALL flagerror(
"Not implemented.",err,error,*999)
1988 CALL flagerror(
"Not implemented.",err,error,*999)
1990 CALL flagerror(
"Not implemented.",err,error,*999)
1992 CALL flagerror(
"Not implemented.",err,error,*999)
1994 CALL flagerror(
"Not implemented.",err,error,*999)
1996 local_error=
"The solution method of "//
trim(
number_to_vstring(equations_set%SOLUTION_METHOD,
"*",err,error))// &
1998 CALL flagerror(local_error,err,error,*999)
2002 CALL field_type_check(equations_set_setup%FIELD,field_general_type,err,error,*999)
2003 CALL field_dependent_type_check(equations_set_setup%FIELD,field_dependent_type,err,error,*999)
2004 CALL field_number_of_variables_check(equations_set_setup%FIELD,2,err,error,*999)
2005 CALL field_variable_types_check(equations_set_setup%FIELD,(/field_u_variable_type,field_deludeln_variable_type/), &
2007 CALL field_dimension_check(equations_set_setup%FIELD,field_u_variable_type,field_vector_dimension_type, &
2009 CALL field_dimension_check(equations_set_setup%FIELD,field_deludeln_variable_type,field_vector_dimension_type, &
2011 CALL field_data_type_check(equations_set_setup%FIELD,field_u_variable_type,field_dp_type,err,error,*999)
2012 CALL field_data_type_check(equations_set_setup%FIELD,field_deludeln_variable_type,field_dp_type,err,error,*999)
2013 CALL field_number_of_components_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
2014 & number_of_dimensions,err,error,*999)
2015 number_of_components=number_of_dimensions
2016 CALL field_number_of_components_check(equations_set_setup%FIELD,field_u_variable_type,number_of_components, &
2018 CALL field_number_of_components_check(equations_set_setup%FIELD,field_deludeln_variable_type,number_of_components, &
2020 SELECT CASE(equations_set%SOLUTION_METHOD)
2022 CALL field_component_interpolation_check(equations_set_setup%FIELD,field_u_variable_type,1, &
2023 & field_node_based_interpolation,err,error,*999)
2024 CALL field_component_interpolation_check(equations_set_setup%FIELD,field_deludeln_variable_type,1, &
2025 & field_node_based_interpolation,err,error,*999)
2027 CALL flagerror(
"Not implemented.",err,error,*999)
2029 CALL flagerror(
"Not implemented.",err,error,*999)
2031 CALL flagerror(
"Not implemented.",err,error,*999)
2033 CALL flagerror(
"Not implemented.",err,error,*999)
2035 CALL flagerror(
"Not implemented.",err,error,*999)
2037 local_error=
"The solution method of "//
trim(
number_to_vstring(equations_set%SOLUTION_METHOD,
"*",err,error))// &
2039 CALL flagerror(local_error,err,error,*999)
2043 IF(equations_set%DEPENDENT%DEPENDENT_FIELD_AUTO_CREATED)
THEN 2044 CALL field_create_finish(equations_set%DEPENDENT%DEPENDENT_FIELD,err,error,*999)
2047 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2048 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2049 &
" is invalid for a linear elasticity equation" 2050 CALL flagerror(local_error,err,error,*999)
2053 SELECT CASE(equations_set_setup%ACTION_TYPE)
2055 equations_materials=>equations_set%MATERIALS
2056 IF(
ASSOCIATED(equations_materials))
THEN 2057 IF(equations_materials%MATERIALS_FIELD_AUTO_CREATED)
THEN 2060 CALL field_create_start(equations_set_setup%FIELD_USER_NUMBER,equations_set%REGION,equations_materials% &
2061 & materials_field,err,error,*999)
2062 CALL field_type_set_and_lock(equations_materials%MATERIALS_FIELD,field_material_type,err,error,*999)
2063 CALL field_dependent_type_set_and_lock(equations_materials%MATERIALS_FIELD,field_independent_type,err,error,*999)
2064 CALL field_mesh_decomposition_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_decomposition,err,error,*999)
2065 CALL field_mesh_decomposition_set_and_lock(equations_materials%MATERIALS_FIELD,geometric_decomposition, &
2067 CALL field_geometric_field_set_and_lock(equations_materials%MATERIALS_FIELD,equations_set%GEOMETRY% &
2068 & geometric_field,err,error,*999)
2069 CALL field_number_of_variables_set_and_lock(equations_materials%MATERIALS_FIELD,1,err,error,*999)
2070 CALL field_variable_types_set_and_lock(equations_materials%MATERIALS_FIELD,(/field_u_variable_type/), &
2072 CALL field_dimension_set_and_lock(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2073 & field_vector_dimension_type,err,error,*999)
2074 CALL field_data_type_set_and_lock(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2075 & field_dp_type,err,error,*999)
2076 CALL field_number_of_components_set_and_lock(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2078 CALL field_component_mesh_component_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
2079 & 1,geometric_component_number,err,error,*999)
2080 DO component_idx=1,6
2082 CALL field_component_mesh_component_set(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2083 & component_idx,geometric_component_number,err,error,*999)
2084 CALL field_component_interpolation_set(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2085 & component_idx,field_constant_interpolation,err,error,*999)
2088 CALL field_scaling_type_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_scaling_type,err,error,*999)
2089 CALL field_scaling_type_set(equations_materials%MATERIALS_FIELD,geometric_scaling_type,err,error,*999)
2092 CALL field_type_check(equations_set_setup%FIELD,field_material_type,err,error,*999)
2093 CALL field_dependent_type_check(equations_set_setup%FIELD,field_independent_type,err,error,*999)
2094 CALL field_number_of_variables_check(equations_set_setup%FIELD,1,err,error,*999)
2095 CALL field_variable_types_check(equations_set_setup%FIELD,(/field_u_variable_type/),err,error,*999)
2096 CALL field_dimension_check(equations_set_setup%FIELD,field_u_variable_type,field_vector_dimension_type, &
2098 CALL field_data_type_check(equations_set_setup%FIELD,field_u_variable_type,field_dp_type,err,error,*999)
2101 CALL field_number_of_components_check(equations_set_setup%FIELD,field_u_variable_type,3,err,error,*999)
2104 CALL flagerror(
"Equations materials is not associated.",err,error,*999)
2107 equations_materials=>equations_set%MATERIALS
2108 IF(
ASSOCIATED(equations_materials))
THEN 2109 IF(equations_materials%MATERIALS_FIELD_AUTO_CREATED)
THEN 2111 CALL field_create_finish(equations_materials%MATERIALS_FIELD,err,error,*999)
2113 CALL field_component_values_initialise(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2114 & field_values_set_type,1,30.0e6_dp,err,error,*999)
2115 CALL field_component_values_initialise(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2116 & field_values_set_type,2,0.25_dp,err,error,*999)
2119 CALL flagerror(
"Equations set materials is not associated.",err,error,*999)
2122 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2123 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2124 &
" is invalid for a linear elasticity equation." 2125 CALL flagerror(local_error,err,error,*999)
2128 SELECT CASE(equations_set_setup%ACTION_TYPE)
2135 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2136 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2137 &
" is invalid for a linear elasticity equation." 2138 CALL flagerror(local_error,err,error,*999)
2142 SELECT CASE(equations_set_setup%ACTION_TYPE)
2144 IF(equations_set%DEPENDENT%DEPENDENT_FINISHED)
THEN 2145 dependent_field=>equations_set%DEPENDENT%DEPENDENT_FIELD
2146 IF(
ASSOCIATED(dependent_field))
THEN 2147 geometric_field=>equations_set%GEOMETRY%GEOMETRIC_FIELD
2148 IF(
ASSOCIATED(geometric_field))
THEN 2149 CALL field_number_of_components_get(geometric_field,field_u_variable_type,number_of_dimensions,err,error,*999)
2151 SELECT CASE(equations_set_setup%ANALYTIC_FUNCTION_TYPE)
2155 IF(number_of_dimensions/=2)
THEN 2156 local_error=
"The number of geometric dimensions of "// &
2158 &
" is invalid. The analytic function type of "// &
2160 &
" requires that there be 2 geometric dimensions." 2161 CALL flagerror(local_error,err,error,*999)
2167 local_error=
"The specified analytic function type of "// &
2169 &
" is invalid for a standard Linear Elasticity equation." 2170 CALL flagerror(local_error,err,error,*999)
2173 CALL flagerror(
"Equations set geometric field is not associated.",err,error,*999)
2176 CALL flagerror(
"Equations set dependent field is not associated.",err,error,*999)
2179 CALL flagerror(
"Equations set dependent field has not been finished.",err,error,*999)
2182 IF(
ASSOCIATED(equations_set%ANALYTIC))
THEN 2183 analytic_field=>equations_set%ANALYTIC%ANALYTIC_FIELD
2184 IF(
ASSOCIATED(analytic_field))
THEN 2185 IF(equations_set%ANALYTIC%ANALYTIC_FIELD_AUTO_CREATED)
THEN 2186 CALL field_create_finish(equations_set%DEPENDENT%DEPENDENT_FIELD,err,error,*999)
2190 CALL flagerror(
"Equations set analytic is not associated.",err,error,*999)
2193 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2194 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2195 &
" is invalid for a standard Linear Elasticity equation." 2196 CALL flagerror(local_error,err,error,*999)
2201 SELECT CASE(equations_set_setup%ACTION_TYPE)
2203 IF(equations_set%DEPENDENT%DEPENDENT_FINISHED)
THEN 2209 CALL flagerror(
"Equations set dependent field has not bee finished.",err,error,*999)
2212 SELECT CASE(equations_set%SOLUTION_METHOD)
2226 SELECT CASE(equations%SPARSITY_TYPE)
2236 local_error=
"The equations matrices sparsity type of "// &
2238 CALL flagerror(local_error,err,error,*999)
2242 CALL flagerror(
"Not implemented.",err,error,*999)
2244 CALL flagerror(
"Not implemented.",err,error,*999)
2246 CALL flagerror(
"Not implemented.",err,error,*999)
2248 CALL flagerror(
"Not implemented.",err,error,*999)
2250 CALL flagerror(
"Not implemented.",err,error,*999)
2252 local_error=
"The solution method of "//
trim(
number_to_vstring(equations_set%SOLUTION_METHOD,
"*",err,error))// &
2254 CALL flagerror(local_error,err,error,*999)
2257 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2258 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2259 &
" is invalid for a linear elasticity equation." 2260 CALL flagerror(local_error,err,error,*999)
2263 local_error=
"The setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2264 &
" is invalid for a linear elasticity equation." 2265 CALL flagerror(local_error,err,error,*999)
2272 SELECT CASE(equations_set_setup%SETUP_TYPE)
2274 SELECT CASE(equations_set_setup%ACTION_TYPE)
2282 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2283 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2284 &
" is invalid for a linear elasticity equation." 2285 CALL flagerror(local_error,err,error,*999)
2290 SELECT CASE(equations_set_setup%ACTION_TYPE)
2292 IF(equations_set%DEPENDENT%DEPENDENT_FIELD_AUTO_CREATED)
THEN 2294 CALL field_create_start(equations_set_setup%FIELD_USER_NUMBER,equations_set%REGION,equations_set%DEPENDENT% &
2295 & dependent_field,err,error,*999)
2296 CALL field_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_general_type,err,error,*999)
2297 CALL field_dependent_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_dependent_type,err,error,*999)
2298 CALL field_mesh_decomposition_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_decomposition,err,error,*999)
2299 CALL field_mesh_decomposition_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,geometric_decomposition, &
2301 CALL field_geometric_field_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,equations_set%GEOMETRY% &
2302 & geometric_field,err,error,*999)
2303 CALL field_number_of_variables_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,2,err,error,*999)
2304 CALL field_variable_types_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,(/field_u_variable_type, &
2305 & field_deludeln_variable_type/),err,error,*999)
2306 CALL field_dimension_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
2307 & field_vector_dimension_type,err,error,*999)
2308 CALL field_dimension_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
2309 & field_vector_dimension_type,err,error,*999)
2310 CALL field_data_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
2311 & field_dp_type,err,error,*999)
2312 CALL field_data_type_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
2313 & field_dp_type,err,error,*999)
2314 CALL field_number_of_components_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
2315 & number_of_dimensions,err,error,*999)
2316 number_of_components=number_of_dimensions
2317 CALL field_number_of_components_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
2318 & number_of_components,err,error,*999)
2319 CALL field_number_of_components_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
2320 & number_of_components,err,error,*999)
2322 DO component_idx=1,number_of_dimensions
2323 CALL field_component_mesh_component_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
2324 & component_idx,geometric_mesh_component,err,error,*999)
2325 CALL field_component_mesh_component_set(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
2326 & component_idx,geometric_mesh_component,err,error,*999)
2327 CALL field_component_mesh_component_set(equations_set%DEPENDENT%DEPENDENT_FIELD,field_deludeln_variable_type, &
2328 & component_idx,geometric_mesh_component,err,error,*999)
2330 SELECT CASE(equations_set%SOLUTION_METHOD)
2332 DO component_idx=1,number_of_components
2333 CALL field_component_interpolation_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD,field_u_variable_type, &
2334 & component_idx,field_node_based_interpolation,err,error,*999)
2335 CALL field_component_interpolation_set_and_lock(equations_set%DEPENDENT%DEPENDENT_FIELD, &
2336 & field_deludeln_variable_type,component_idx,field_node_based_interpolation,err,error,*999)
2339 CALL field_scaling_type_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_scaling_type,err,error,*999)
2340 CALL field_scaling_type_set(equations_set%DEPENDENT%DEPENDENT_FIELD,geometric_scaling_type,err,error,*999)
2342 CALL flagerror(
"Not implemented.",err,error,*999)
2344 CALL flagerror(
"Not implemented.",err,error,*999)
2346 CALL flagerror(
"Not implemented.",err,error,*999)
2348 CALL flagerror(
"Not implemented.",err,error,*999)
2350 CALL flagerror(
"Not implemented.",err,error,*999)
2352 local_error=
"The solution method of "//
trim(
number_to_vstring(equations_set%SOLUTION_METHOD,
"*",err,error))// &
2354 CALL flagerror(local_error,err,error,*999)
2358 CALL field_type_check(equations_set_setup%FIELD,field_general_type,err,error,*999)
2359 CALL field_dependent_type_check(equations_set_setup%FIELD,field_dependent_type,err,error,*999)
2360 CALL field_number_of_variables_check(equations_set_setup%FIELD,2,err,error,*999)
2361 CALL field_variable_types_check(equations_set_setup%FIELD,(/field_u_variable_type,field_deludeln_variable_type/), &
2363 CALL field_dimension_check(equations_set_setup%FIELD,field_u_variable_type,field_vector_dimension_type, &
2365 CALL field_dimension_check(equations_set_setup%FIELD,field_deludeln_variable_type,field_vector_dimension_type, &
2367 CALL field_data_type_check(equations_set_setup%FIELD,field_u_variable_type,field_dp_type,err,error,*999)
2368 CALL field_data_type_check(equations_set_setup%FIELD,field_deludeln_variable_type,field_dp_type,err,error,*999)
2369 CALL field_number_of_components_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
2370 & number_of_dimensions,err,error,*999)
2371 number_of_components=number_of_dimensions
2372 CALL field_number_of_components_check(equations_set_setup%FIELD,field_u_variable_type,number_of_components, &
2374 CALL field_number_of_components_check(equations_set_setup%FIELD,field_deludeln_variable_type,number_of_components, &
2376 SELECT CASE(equations_set%SOLUTION_METHOD)
2378 CALL field_component_interpolation_check(equations_set_setup%FIELD,field_u_variable_type,1, &
2379 & field_node_based_interpolation,err,error,*999)
2380 CALL field_component_interpolation_check(equations_set_setup%FIELD,field_deludeln_variable_type,1, &
2381 & field_node_based_interpolation,err,error,*999)
2383 CALL flagerror(
"Not implemented.",err,error,*999)
2385 CALL flagerror(
"Not implemented.",err,error,*999)
2387 CALL flagerror(
"Not implemented.",err,error,*999)
2389 CALL flagerror(
"Not implemented.",err,error,*999)
2391 CALL flagerror(
"Not implemented.",err,error,*999)
2393 local_error=
"The solution method of "//
trim(
number_to_vstring(equations_set%SOLUTION_METHOD,
"*",err,error))// &
2395 CALL flagerror(local_error,err,error,*999)
2399 IF(equations_set%DEPENDENT%DEPENDENT_FIELD_AUTO_CREATED)
THEN 2400 CALL field_create_finish(equations_set%DEPENDENT%DEPENDENT_FIELD,err,error,*999)
2403 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2404 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2405 &
" is invalid for a linear elasticity equation" 2406 CALL flagerror(local_error,err,error,*999)
2409 SELECT CASE(equations_set_setup%ACTION_TYPE)
2411 equations_materials=>equations_set%MATERIALS
2412 IF(
ASSOCIATED(equations_materials))
THEN 2413 IF(equations_materials%MATERIALS_FIELD_AUTO_CREATED)
THEN 2416 CALL field_create_start(equations_set_setup%FIELD_USER_NUMBER,equations_set%REGION,equations_materials% &
2417 & materials_field,err,error,*999)
2418 CALL field_type_set_and_lock(equations_materials%MATERIALS_FIELD,field_material_type,err,error,*999)
2419 CALL field_dependent_type_set_and_lock(equations_materials%MATERIALS_FIELD,field_independent_type,err,error,*999)
2420 CALL field_mesh_decomposition_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_decomposition,err,error,*999)
2421 CALL field_mesh_decomposition_set_and_lock(equations_materials%MATERIALS_FIELD,geometric_decomposition, &
2423 CALL field_geometric_field_set_and_lock(equations_materials%MATERIALS_FIELD,equations_set%GEOMETRY% &
2424 & geometric_field,err,error,*999)
2425 CALL field_number_of_variables_set_and_lock(equations_materials%MATERIALS_FIELD,1,err,error,*999)
2426 CALL field_variable_types_set_and_lock(equations_materials%MATERIALS_FIELD,(/field_u_variable_type/), &
2428 CALL field_dimension_set_and_lock(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2429 & field_vector_dimension_type,err,error,*999)
2430 CALL field_data_type_set_and_lock(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2431 & field_dp_type,err,error,*999)
2432 CALL field_number_of_components_set_and_lock(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2434 CALL field_component_mesh_component_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,field_u_variable_type, &
2435 & 1,geometric_component_number,err,error,*999)
2436 DO component_idx=1,6
2438 CALL field_component_mesh_component_set(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2439 & component_idx,geometric_component_number,err,error,*999)
2440 CALL field_component_interpolation_set(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2441 & component_idx,field_constant_interpolation,err,error,*999)
2444 CALL field_scaling_type_get(equations_set%GEOMETRY%GEOMETRIC_FIELD,geometric_scaling_type,err,error,*999)
2445 CALL field_scaling_type_set(equations_materials%MATERIALS_FIELD,geometric_scaling_type,err,error,*999)
2448 CALL field_type_check(equations_set_setup%FIELD,field_material_type,err,error,*999)
2449 CALL field_dependent_type_check(equations_set_setup%FIELD,field_independent_type,err,error,*999)
2450 CALL field_number_of_variables_check(equations_set_setup%FIELD,1,err,error,*999)
2451 CALL field_variable_types_check(equations_set_setup%FIELD,(/field_u_variable_type/),err,error,*999)
2452 CALL field_dimension_check(equations_set_setup%FIELD,field_u_variable_type,field_vector_dimension_type, &
2454 CALL field_data_type_check(equations_set_setup%FIELD,field_u_variable_type,field_dp_type,err,error,*999)
2456 CALL field_number_of_components_check(equations_set_setup%FIELD,field_u_variable_type,2,err,error,*999)
2459 CALL flagerror(
"Equations materials is not associated.",err,error,*999)
2462 equations_materials=>equations_set%MATERIALS
2463 IF(
ASSOCIATED(equations_materials))
THEN 2464 IF(equations_materials%MATERIALS_FIELD_AUTO_CREATED)
THEN 2466 CALL field_create_finish(equations_materials%MATERIALS_FIELD,err,error,*999)
2468 CALL field_component_values_initialise(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2469 & field_values_set_type,1,30.0e6_dp,err,error,*999)
2470 CALL field_component_values_initialise(equations_materials%MATERIALS_FIELD,field_u_variable_type, &
2471 & field_values_set_type,2,0.25_dp,err,error,*999)
2474 CALL flagerror(
"Equations set materials is not associated.",err,error,*999)
2477 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2478 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2479 &
" is invalid for a linear elasticity equation." 2480 CALL flagerror(local_error,err,error,*999)
2483 SELECT CASE(equations_set_setup%ACTION_TYPE)
2490 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2491 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2492 &
" is invalid for a linear elasticity equation." 2493 CALL flagerror(local_error,err,error,*999)
2497 SELECT CASE(equations_set_setup%ACTION_TYPE)
2499 IF(equations_set%DEPENDENT%DEPENDENT_FINISHED)
THEN 2500 dependent_field=>equations_set%DEPENDENT%DEPENDENT_FIELD
2501 IF(
ASSOCIATED(dependent_field))
THEN 2502 geometric_field=>equations_set%GEOMETRY%GEOMETRIC_FIELD
2503 IF(
ASSOCIATED(geometric_field))
THEN 2504 CALL field_number_of_components_get(geometric_field,field_u_variable_type,number_of_dimensions,err,error,*999)
2506 SELECT CASE(equations_set_setup%ANALYTIC_FUNCTION_TYPE)
2509 IF(number_of_dimensions/=1)
THEN 2510 local_error=
"The number of geometric dimensions of "// &
2512 &
" is invalid. The analytic function type of "// &
2514 &
" requires that there be 1 geometric dimension." 2515 CALL flagerror(local_error,err,error,*999)
2521 local_error=
"The specified analytic function type of "// &
2523 &
" is invalid for a standard Linear Elasticity equation." 2524 CALL flagerror(local_error,err,error,*999)
2527 CALL flagerror(
"Equations set geometric field is not associated.",err,error,*999)
2530 CALL flagerror(
"Equations set dependent field is not associated.",err,error,*999)
2533 CALL flagerror(
"Equations set dependent field has not been finished.",err,error,*999)
2536 IF(
ASSOCIATED(equations_set%ANALYTIC))
THEN 2537 analytic_field=>equations_set%ANALYTIC%ANALYTIC_FIELD
2538 IF(
ASSOCIATED(analytic_field))
THEN 2539 IF(equations_set%ANALYTIC%ANALYTIC_FIELD_AUTO_CREATED)
THEN 2540 CALL field_create_finish(equations_set%DEPENDENT%DEPENDENT_FIELD,err,error,*999)
2544 CALL flagerror(
"Equations set analytic is not associated.",err,error,*999)
2547 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2548 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2549 &
" is invalid for a standard Linear Elasticity equation." 2550 CALL flagerror(local_error,err,error,*999)
2554 SELECT CASE(equations_set_setup%ACTION_TYPE)
2556 IF(equations_set%DEPENDENT%DEPENDENT_FINISHED)
THEN 2562 CALL flagerror(
"Equations set dependent field has not bee finished.",err,error,*999)
2565 SELECT CASE(equations_set%SOLUTION_METHOD)
2579 SELECT CASE(equations%SPARSITY_TYPE)
2589 local_error=
"The equations matrices sparsity type of "// &
2591 CALL flagerror(local_error,err,error,*999)
2595 CALL flagerror(
"Not implemented.",err,error,*999)
2597 CALL flagerror(
"Not implemented.",err,error,*999)
2599 CALL flagerror(
"Not implemented.",err,error,*999)
2601 CALL flagerror(
"Not implemented.",err,error,*999)
2603 CALL flagerror(
"Not implemented.",err,error,*999)
2605 local_error=
"The solution method of "//
trim(
number_to_vstring(equations_set%SOLUTION_METHOD,
"*",err,error))// &
2607 CALL flagerror(local_error,err,error,*999)
2610 local_error=
"The action type of "//
trim(
number_to_vstring(equations_set_setup%ACTION_TYPE,
"*",err,error))// &
2611 &
" for a setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2612 &
" is invalid for a linear elasticity equation." 2613 CALL flagerror(local_error,err,error,*999)
2616 local_error=
"The setup type of "//
trim(
number_to_vstring(equations_set_setup%SETUP_TYPE,
"*",err,error))// &
2617 &
" is invalid for a linear elasticity equation." 2618 CALL flagerror(local_error,err,error,*999)
2621 CALL flagerror(
"Not implemented.",err,error,*999)
2623 CALL flagerror(
"Not implemented.",err,error,*999)
2625 local_error=
"Equations set subtype "//
trim(
number_to_vstring(equations_set%SPECIFICATION(3),
"*",err,error))// &
2626 &
" is not valid for a linear elasticity equation type of an elasticity equation set class." 2627 CALL flagerror(local_error,err,error,*999)
2630 CALL flagerror(
"Equations set is not associated.",err,error,*999)
2633 exits(
"LINEAR_ELASTICITY_EQUATIONS_SET_SETUP")
2635 999 errorsexits(
"LINEAR_ELASTICITY_EQUATIONS_SET_SETUP",err,error)
2648 INTEGER(INTG),
INTENT(IN) :: SOLUTION_METHOD
2649 INTEGER(INTG),
INTENT(OUT) :: ERR
2654 enters(
"LinearElasticity_EquationsSetSolutionMethodSet",err,error,*999)
2656 IF(
ASSOCIATED(equations_set))
THEN 2657 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 2658 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
2659 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)/=3)
THEN 2660 CALL flagerror(
"Equations set specification must have three entries for a linear elasticity type equations set.", &
2663 SELECT CASE(equations_set%SPECIFICATION(3))
2665 SELECT CASE(solution_method)
2669 CALL flagerror(
"Not implemented.",err,error,*999)
2671 CALL flagerror(
"Not implemented.",err,error,*999)
2673 CALL flagerror(
"Not implemented.",err,error,*999)
2675 CALL flagerror(
"Not implemented.",err,error,*999)
2677 CALL flagerror(
"Not implemented.",err,error,*999)
2679 local_error=
"The specified solution method of "//
trim(
number_to_vstring(solution_method,
"*",err,error))//
" is invalid." 2680 CALL flagerror(local_error,err,error,*999)
2683 SELECT CASE(solution_method)
2687 CALL flagerror(
"Not implemented.",err,error,*999)
2689 CALL flagerror(
"Not implemented.",err,error,*999)
2691 CALL flagerror(
"Not implemented.",err,error,*999)
2693 CALL flagerror(
"Not implemented.",err,error,*999)
2695 CALL flagerror(
"Not implemented.",err,error,*999)
2697 local_error=
"The specified solution method of "//
trim(
number_to_vstring(solution_method,
"*",err,error))//
" is invalid." 2698 CALL flagerror(local_error,err,error,*999)
2701 SELECT CASE(solution_method)
2705 CALL flagerror(
"Not implemented.",err,error,*999)
2707 CALL flagerror(
"Not implemented.",err,error,*999)
2709 CALL flagerror(
"Not implemented.",err,error,*999)
2711 CALL flagerror(
"Not implemented.",err,error,*999)
2713 CALL flagerror(
"Not implemented.",err,error,*999)
2715 local_error=
"The specified solution method of "//
trim(
number_to_vstring(solution_method,
"*",err,error))//
" is invalid." 2716 CALL flagerror(local_error,err,error,*999)
2719 SELECT CASE(solution_method)
2723 CALL flagerror(
"Not implemented.",err,error,*999)
2725 CALL flagerror(
"Not implemented.",err,error,*999)
2727 CALL flagerror(
"Not implemented.",err,error,*999)
2729 CALL flagerror(
"Not implemented.",err,error,*999)
2731 CALL flagerror(
"Not implemented.",err,error,*999)
2733 local_error=
"The specified solution method of "//
trim(
number_to_vstring(solution_method,
"*",err,error))//
" is invalid." 2734 CALL flagerror(local_error,err,error,*999)
2737 CALL flagerror(
"Not implemented.",err,error,*999)
2739 CALL flagerror(
"Not implemented.",err,error,*999)
2741 local_error=
"Equations set subtype of "//
trim(
number_to_vstring(equations_set%SPECIFICATION(3),
"*",err,error))// &
2742 &
" is not valid for a linear elasticity equation type of an elasticity equations set class." 2743 CALL flagerror(local_error,err,error,*999)
2746 CALL flagerror(
"Equations set is not associated.",err,error,*999)
2749 exits(
"LinearElasticity_EquationsSetSolutionMethodSet")
2751 999
errors(
"LinearElasticity_EquationsSetSolutionMethodSet",err,error)
2752 exits(
"LinearElasticity_EquationsSetSolutionMethodSet")
2766 INTEGER(INTG),
INTENT(IN) :: specification(:)
2767 INTEGER(INTG),
INTENT(OUT) :: err
2772 enters(
"LinearElasticity_EquationsSetSpecificationSet",err,error,*999)
2774 IF(
ASSOCIATED(equationsset))
THEN 2775 IF(
SIZE(specification,1)/=3)
THEN 2776 CALL flagerror(
"Equations set specification must have three entries for a linear elasticity type equations set.", &
2779 SELECT CASE(specification(3))
2786 CALL flagerror(
"Not implemented.",err,error,*999)
2788 CALL flagerror(
"Not implemented.",err,error,*999)
2790 localerror=
"The third equations set specification of "//
trim(
numbertovstring(specification(3),
"*",err,error))// &
2791 &
" is not valid for a linear elasticity equations set." 2792 CALL flagerror(localerror,err,error,*999)
2795 IF(
ALLOCATED(equationsset%specification))
THEN 2796 CALL flagerror(
"Equations set specification is already allocated.",err,error,*999)
2798 ALLOCATE(equationsset%specification(3),stat=err)
2799 IF(err/=0)
CALL flagerror(
"Could not allocate equations set specification.",err,error,*999)
2803 CALL flagerror(
"Equations set is not associated.",err,error,*999)
2806 exits(
"LinearElasticity_EquationsSetSpecificationSet")
2808 999
errors(
"LinearElasticity_EquationsSetSpecificationSet",err,error)
2809 exits(
"LinearElasticity_EquationsSetSpecificationSet")
2824 INTEGER(INTG),
INTENT(OUT) :: ERR
2833 enters(
"LINEAR_ELASTICITY_PROBLEM_SETUP",err,error,*999)
2835 NULLIFY(control_loop)
2837 NULLIFY(solver_equations)
2839 IF(
ASSOCIATED(problem))
THEN 2840 IF(.NOT.
ALLOCATED(problem%SPECIFICATION))
THEN 2841 CALL flagerror(
"Problem specification is not allocated.",err,error,*999)
2842 ELSE IF(
SIZE(problem%SPECIFICATION,1)<3)
THEN 2843 CALL flagerror(
"Problem specification must have three entries for a linear elasticity problem.",err,error,*999)
2845 SELECT CASE(problem%SPECIFICATION(3))
2847 SELECT CASE(problem_setup%SETUP_TYPE)
2849 SELECT CASE(problem_setup%ACTION_TYPE)
2855 local_error=
"The action type of "//
trim(
number_to_vstring(problem_setup%ACTION_TYPE,
"*",err,error))// &
2857 &
" is invalid for a linear elasticity problem." 2858 CALL flagerror(local_error,err,error,*999)
2861 SELECT CASE(problem_setup%ACTION_TYPE)
2867 control_loop_root=>problem%CONTROL_LOOP
2871 local_error=
"The action type of "//
trim(
number_to_vstring(problem_setup%ACTION_TYPE,
"*",err,error))// &
2873 &
" is invalid for a linear elasticity problem." 2874 CALL flagerror(local_error,err,error,*999)
2878 control_loop_root=>problem%CONTROL_LOOP
2880 SELECT CASE(problem_setup%ACTION_TYPE)
2896 local_error=
"The action type of "//
trim(
number_to_vstring(problem_setup%ACTION_TYPE,
"*",err,error))// &
2898 &
" is invalid for a linear elasticity problem." 2899 CALL flagerror(local_error,err,error,*999)
2902 SELECT CASE(problem_setup%ACTION_TYPE)
2905 control_loop_root=>problem%CONTROL_LOOP
2917 control_loop_root=>problem%CONTROL_LOOP
2926 local_error=
"The action type of "//
trim(
number_to_vstring(problem_setup%ACTION_TYPE,
"*",err,error))// &
2928 &
" is invalid for a linear elasticity problem." 2929 CALL flagerror(local_error,err,error,*999)
2932 local_error=
"The setup type of "//
trim(
number_to_vstring(problem_setup%SETUP_TYPE,
"*",err,error))// &
2933 &
" is invalid for a linear elasticity problem." 2934 CALL flagerror(local_error,err,error,*999)
2938 &
" is not valid for a linear elasticity type of an elasticity problem class." 2939 CALL flagerror(local_error,err,error,*999)
2942 CALL flagerror(
"Problem is not associated.",err,error,*999)
2945 exits(
"LINEAR_ELASTICITY_PROBLEM_SETUP")
2947 999 errorsexits(
"LINEAR_ELASTICITY_PROBLEM_SETUP",err,error)
2960 INTEGER(INTG),
INTENT(IN) :: problemSpecification(:)
2961 INTEGER(INTG),
INTENT(OUT) :: err
2965 INTEGER(INTG) :: problemSubtype
2967 enters(
"LinearElasticity_ProblemSpecificationSet",err,error,*999)
2969 IF(
ASSOCIATED(problem))
THEN 2970 IF(
SIZE(problemspecification,1)==3)
THEN 2971 problemsubtype=problemspecification(3)
2972 SELECT CASE(problemsubtype)
2976 localerror=
"The third problem specification of "//
trim(
numbertovstring(problemsubtype,
"*",err,error))// &
2977 &
" is not valid for a linear elasticity problem." 2978 CALL flagerror(localerror,err,error,*999)
2980 ELSE IF(
SIZE(problemspecification,1)<3)
THEN 2984 CALL flagerror(
"Linear elasticity problem specification may only have 3 entries.",err,error,*999)
2987 IF(
ALLOCATED(problem%specification))
THEN 2988 CALL flagerror(
"Problem specification is already allocated.",err,error,*999)
2990 ALLOCATE(problem%specification(3),stat=err)
2991 IF(err/=0)
CALL flagerror(
"Could not allocate problem specification.",err,error,*999)
2995 CALL flagerror(
"Problem is not associated.",err,error,*999)
2998 exits(
"LinearElasticity_ProblemSpecificationSet")
3000 999
errors(
"LinearElasticity_ProblemSpecificationSet",err,error)
3001 exits(
"LinearElasticity_ProblemSpecificationSet")
integer(intg), parameter equations_set_setup_dependent_type
Dependent variables.
integer(intg), parameter equations_set_fem_solution_method
Finite Element Method solution method.
This module contains all basis function routines.
integer(intg), parameter equations_set_setup_materials_type
Materials setup.
Contains information on the boundary conditions for the solver equations.
subroutine, public enters(NAME, ERR, ERROR,)
Records the entry into the named procedure and initialises the error code.
subroutine, public solvers_create_finish(SOLVERS, ERR, ERROR,)
Finish the creation of solvers.
Contains information on the equations mapping i.e., how field variable DOFS are mapped to the rows an...
Contains information about the equations in an equations set.
integer(intg), parameter equations_set_gfem_solution_method
Grid-based Finite Element Method solution method.
integer(intg), parameter global_deriv_s1_s2_s3
Cross derivative in the s1, s2 and s3 direction i.e., d^3u/ds1ds2ds3.
integer(intg), parameter problem_setup_control_type
Solver setup for a problem.
integer(intg), parameter equations_set_shell_subtype
This module handles all problem wide constants.
integer(intg), parameter, public control_loop_node
The identifier for a each "leaf" node in a control loop.
integer(intg), parameter no_global_deriv
No global derivative i.e., u.
Converts a number to its equivalent varying string representation.
subroutine, public equations_create_start(EQUATIONS_SET, EQUATIONS, ERR, ERROR,)
Start the creation of equations for the equation set.
Contains information on the mesh decomposition.
integer(intg), parameter problem_no_subtype
subroutine, public linear_elasticity_finite_element_calculate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element stiffness matrices and RHS for a linear elasticity finite element equations se...
subroutine, public equations_matrices_create_start(EQUATIONS, EQUATIONS_MATRICES, ERR, ERROR,)
Starts the creation of the equations matrices and rhs for the the equations.
Contains information on the type of solver to be used.
integer(intg), parameter, public solver_petsc_library
PETSc solver library.
subroutine, public solvers_number_set(SOLVERS, NUMBER_OF_SOLVERS, ERR, ERROR,)
Sets/changes the number of solvers.
integer(intg), parameter no_part_deriv
No partial derivative i.e., u.
integer(intg), parameter equations_set_linear_elasticity_three_dim_2
This module handles all equations matrix and rhs routines.
subroutine, public solver_type_set(SOLVER, SOLVE_TYPE, ERR, ERROR,)
Sets/changes the type for a solver.
integer(intg), parameter equations_static
The equations are static and have no time dependence.
Contains information on an equations set.
This module handles all equations routines.
integer(intg), parameter equations_set_two_dimensional_plane_stress_subtype
integer(intg), parameter equations_set_setup_source_type
Source setup.
This module contains all string manipulation and transformation routines.
subroutine, public solvers_create_start(CONTROL_LOOP, SOLVERS, ERR, ERROR,)
Start the creation of a solvers for the control loop.
Contains information on the solvers to be used in a control loop.
integer(intg), parameter equations_set_linear_elasticity_type
subroutine, public linearelasticity_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for a linear elasticity type problem.
subroutine, public linear_elasticity_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the Linear elasticity equation type of an elasticity equations set class. ...
integer(intg), parameter equations_set_plate_subtype
integer(intg), parameter first_part_deriv
First partial derivative i.e., du/ds.
This module contains routines for timing the program.
subroutine, public linearelasticity_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a linear elasticity equation type of an elasticity equations set ...
integer(intg), parameter solver_equations_static
Solver equations are static.
subroutine, public equations_time_dependence_type_set(EQUATIONS, TIME_DEPENDENCE_TYPE, ERR, ERROR,)
Sets/changes the time dependence type for equations.
subroutine, public solver_equations_sparsity_type_set(SOLVER_EQUATIONS, SPARSITY_TYPE, ERR, ERROR,)
Sets/changes the sparsity type for solver equations.
This module contains all mathematics support routines.
subroutine, public solvers_solver_get(SOLVERS, SOLVER_INDEX, SOLVER, ERR, ERROR,)
Returns a pointer to the specified solver in the list of solvers.
Contains information for a field defined on a region.
integer(intg), parameter, public equations_matrices_full_matrices
Use fully populated equation matrices.
subroutine, public equations_mapping_rhs_variable_type_set(EQUATIONS_MAPPING, RHS_VARIABLE_TYPE, ERR, ERROR,)
Sets the mapping between a dependent field variable and the equations set rhs vector.
integer(intg), parameter solver_equations_linear
Solver equations are linear.
integer(intg), parameter global_deriv_s2
First global derivative in the s2 direction i.e., du/ds2.
Contains information on a control loop.
This module provides an iso_varying_string module, conformant to the API specified in ISO/IEC 1539-2:...
subroutine, public solver_equations_create_finish(SOLVER_EQUATIONS, ERR, ERROR,)
Finishes the process of creating solver equations.
integer(intg), parameter, public solver_sparse_matrices
Use sparse solver matrices.
integer(intg), parameter global_deriv_s2_s3
Global Cross derivative in the s2 and s3 direction i.e., d^2u/ds2ds3.
subroutine, public solver_equations_create_start(SOLVER, SOLVER_EQUATIONS, ERR, ERROR,)
Starts the process of creating solver equations.
integer(intg), parameter, public basis_default_quadrature_scheme
Identifier for the default quadrature scheme.
integer(intg), parameter problem_setup_solvers_type
Solver setup for a problem.
integer(intg), parameter equations_set_setup_equations_type
Equations setup.
This module contains all program wide constants.
subroutine, public solver_library_type_set(SOLVER, SOLVER_LIBRARY_TYPE, ERR, ERROR,)
Sets/changes the type of library type to use for the solver.
subroutine, public equationsmapping_linearmatricesnumberset(EQUATIONS_MAPPING, NUMBER_OF_LINEAR_EQUATIONS_MATRICES, ERR, ERROR,)
Sets/changes the number of linear equations matrices.
integer(intg), parameter problem_setup_initial_type
Initial setup for a problem.
Contains the interpolated point coordinate metrics. Old CMISS name GL,GU,RG.
integer(intg), parameter equations_set_one_dimensional_subtype
subroutine linear_elasticity_tensor(EQUATIONS_SET_SUBTYPE, MATERIALS_INTERPOLATED_POINT, ELASTICITY_TENSOR, ERR, ERROR,)
Evaluates the linear elasticity tensor.
subroutine, public equationsmapping_linearmatricesvariabletypesset(EQUATIONS_MAPPING, LINEAR_MATRIX_VARIABLE_TYPES, ERR, ERROR,)
Sets the mapping between the dependent field variable types and the linear equations matrices...
subroutine, public solver_equations_linearity_type_set(SOLVER_EQUATIONS, LINEARITY_TYPE, ERR, ERROR,)
Sets/changes the linearity type for solver equations.
integer(intg), parameter equations_set_setup_start_action
Start setup action.
subroutine, public exits(NAME)
Records the exit out of the named procedure.
recursive subroutine, public control_loop_solvers_get(CONTROL_LOOP, SOLVERS, ERR, ERROR,)
Returns a pointer to the solvers for a control loop.
This module contains all type definitions in order to avoid cyclic module references.
integer(intg), parameter equations_set_elasticity_class
Contains information on the equations matrices and vectors.
integer(intg), parameter, public equations_matrix_fem_structure
Finite element matrix structure.
This module contains all the low-level base routines e.g., all debug, control, and low-level communic...
subroutine, public equations_matrices_linear_storage_type_set(EQUATIONS_MATRICES, STORAGE_TYPE, ERR, ERROR,)
Sets the storage type (sparsity) of the linear equations matrices.
subroutine, public equationsmatrices_linearstructuretypeset(EQUATIONS_MATRICES, STRUCTURE_TYPE, ERR, ERROR,)
Sets the structure (sparsity) of the linear equations matrices.
subroutine, public equations_mapping_create_finish(EQUATIONS_MAPPING, ERR, ERROR,)
Finishes the process of creating an equations mapping.
Returns the specified control loop as indexed by the control loop identifier from the control loop ro...
subroutine, public equations_set_equations_get(EQUATIONS_SET, EQUATIONS, ERR, ERROR,)
Gets the equations for an equations set.
integer(intg), dimension(4) partial_derivative_first_derivative_map
PARTIAL_DERIVATIVE_FIRST_DERIVATIVE_MAP(nic) gives the partial derivative index for the first derivat...
subroutine, public equations_create_finish(EQUATIONS, ERR, ERROR,)
Finish the creation of equations.
This module handles all domain mappings routines.
integer(intg), parameter problem_setup_finish_action
Finish setup action.
This module handles all equations mapping routines.
Contains information about the solver equations for a solver.
A buffer type to allow for an array of pointers to a BASIS_TYPE.
integer(intg), parameter, public matrix_compressed_row_storage_type
Matrix compressed row storage type.
integer(intg), parameter equations_set_gfv_solution_method
Grid-based Finite Volume solution method.
integer(intg), parameter equations_set_setup_geometry_type
Geometry setup.
integer(intg), parameter global_deriv_s1_s2
Global Cross derivative in the s1 and s2 direction i.e., d^2u/ds1ds2.
Contains information for a problem.
integer(intg), parameter equations_linear
The equations are linear.
Contains the topology information for the nodes of a domain.
subroutine, public equations_matrices_create_finish(EQUATIONS_MATRICES, ERR, ERROR,)
Finishes the creation of the equations matrices and RHS for the the equations.
This module handles all distributed matrix vector routines.
integer(intg), parameter equations_set_two_dimensional_plane_strain_subtype
integer(intg), parameter equations_set_linear_elasticity_two_dim_1
A buffer type to allow for an array of pointers to a QUADRATURE_SCHEME_TYPE.
integer(intg), parameter global_deriv_s1
First global derivative in the s1 direction i.e., du/ds1.
This module handles all boundary conditions routines.
This module handles all solver routines.
subroutine, public equations_mapping_create_start(EQUATIONS, EQUATIONS_MAPPING, ERR, ERROR,)
Finishes the process of creating an equations mapping for a equations set equations.
Contains the interpolated value (and the derivatives wrt xi) of a field at a point. Old CMISS name XG.
integer(intg), parameter equations_set_three_dimensional_subtype
Contains information about an equations matrix.
This module contains all routines dealing with (non-distributed) matrix and vectors types...
subroutine, public equations_linearity_type_set(EQUATIONS, LINEARITY_TYPE, ERR, ERROR,)
Sets/changes the linearity type for equations.
subroutine, public control_loop_create_start(PROBLEM, CONTROL_LOOP, ERR, ERROR,)
Start the process of creating a control loop for a problem.
integer(intg), parameter problem_setup_solver_equations_type
Solver equations setup for a problem.
Sets a boundary condition on the specified local DOF.
subroutine, public linearelasticity_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a linear elasticity equation type of an elasticity equations set...
subroutine, public linearelasticity_boundaryconditionsanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Calculates the analytic solution and sets the boundary conditions for an analytic problem...
integer(intg), parameter equations_set_linear_elasticity_three_dim_1
Contains information for a field variable defined on a field.
integer(intg), parameter equations_set_fd_solution_method
Finite Difference solution method.
integer(intg), parameter, public equations_matrices_sparse_matrices
Use sparse equations matrices.
integer(intg), parameter global_deriv_s3
First global derivative in the s3 direction i.e., du/ds3.
Contains the parameters required to interpolate a field variable within an element. Old CMISS name XE.
Contains information on the setup information for an equations set.
A pointer to the domain decomposition for this domain.
integer(intg), parameter problem_setup_start_action
Start setup action.
subroutine, public solver_equations_time_dependence_type_set(SOLVER_EQUATIONS, TIME_DEPENDENCE_TYPE, ERR, ERROR,)
Sets/changes the time dependence type for solver equations.
This module handles all control loop routines.
integer(intg), parameter, public boundary_condition_fixed
The dof is fixed as a boundary condition.
subroutine, public errors(NAME, ERR, ERROR)
Records the exiting error of the subroutine.
This module defines all constants shared across equations set routines.
integer(intg), parameter equations_set_bem_solution_method
Boundary Element Method solution method.
subroutine, public solver_solver_equations_get(SOLVER, SOLVER_EQUATIONS, ERR, ERROR,)
Returns a pointer to the solver equations for a solver.
This module handles all linear elasticity routines.
integer(intg), parameter problem_linear_elasticity_type
integer(intg), parameter equations_set_fv_solution_method
Finite Volume solution method.
integer(intg), parameter, public matrix_block_storage_type
Matrix block storage type.
integer(intg), parameter equations_set_setup_initial_type
Initial setup.
recursive subroutine, public control_loop_create_finish(CONTROL_LOOP, ERR, ERROR,)
Finish the process of creating a control loop.
integer(intg), parameter global_deriv_s1_s3
Global Cross derivative in the s1 and s3 direction i.e., d^2u/ds1ds3.
integer(intg), parameter problem_elasticity_class
subroutine, public linear_elasticity_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the linear elasticity problem.
integer(intg), parameter equations_set_setup_analytic_type
Analytic setup.
Flags an error condition.
integer(intg), parameter, public solver_linear_type
A linear solver.
Contains information of the RHS vector for equations matrices.
Contains information for mapping field variables to the linear matrices in the equations set of the m...
This module contains all kind definitions.
integer(intg), parameter equations_set_linear_elasticity_one_dim_1
integer(intg), parameter equations_set_setup_finish_action
Finish setup action.