162 INTEGER(INTG),
INTENT(OUT) :: ERR
166 enters(
"EQUATIONS_CREATE_FINISH",err,error,*999)
168 IF(
ASSOCIATED(equations))
THEN 169 IF(equations%EQUATIONS_FINISHED)
THEN 170 CALL flagerror(
"Equations have already been finished.",err,error,*999)
173 equations%EQUATIONS_FINISHED=.true.
176 CALL flagerror(
"Equations is not associated.",err,error,*999)
179 exits(
"EQUATIONS_CREATE_FINISH")
181 999 errorsexits(
"EQUATIONS_CREATE_FINISH",err,error)
196 INTEGER(INTG),
INTENT(OUT) :: ERR
200 enters(
"EQUATIONS_CREATE_START",err,error,*999)
202 IF(
ASSOCIATED(equations_set))
THEN 203 IF(
ASSOCIATED(equations_set%EQUATIONS))
THEN 204 CALL flagerror(
"Equations are already associated for the equations set.",err,error,*999)
206 IF(
ASSOCIATED(equations))
THEN 207 CALL flagerror(
"Equations is already associated.",err,error,*999)
212 equations=>equations_set%EQUATIONS
216 CALL flagerror(
"Equations set is not associated.",err,error,*999)
219 exits(
"EQUATIONS_CREATE_START")
221 999 errorsexits(
"EQUATIONS_CREATE_START",err,error)
235 INTEGER(INTG),
INTENT(OUT) :: ERR
239 enters(
"EQUATIONS_DESTROY",err,error,*999)
241 IF(
ASSOCIATED(equations))
THEN 244 CALL flagerror(
"Equations is not associated.",err,error,*999)
247 exits(
"EQUATIONS_DESTROY")
249 999 errorsexits(
"EQUATIONS_DESTROY",err,error)
263 INTEGER(INTG),
INTENT(OUT) :: ERR
267 enters(
"EQUATIONS_FINALISE",err,error,*999)
269 IF(
ASSOCIATED(equations))
THEN 273 DEALLOCATE(equations)
276 exits(
"EQUATIONS_FINALISE")
278 999 errorsexits(
"EQUATIONS_FINALISE",err,error)
291 INTEGER(INTG),
INTENT(OUT) :: ERR
294 INTEGER(INTG) :: DUMMY_ERR
297 enters(
"EQUATIONS_INITIALISE",err,error,*998)
299 IF(
ASSOCIATED(equations_set))
THEN 300 IF(
ASSOCIATED(equations_set%EQUATIONS))
THEN 301 CALL flagerror(
"Equations is already associated for this equations set.",err,error,*998)
303 ALLOCATE(equations_set%EQUATIONS,stat=err)
304 IF(err/=0)
CALL flagerror(
"Could not allocate equations.",err,error,*999)
305 equations_set%EQUATIONS%EQUATIONS_SET=>equations_set
311 NULLIFY(equations_set%EQUATIONS%INTERPOLATION)
312 NULLIFY(equations_set%EQUATIONS%EQUATIONS_MAPPING)
313 NULLIFY(equations_set%EQUATIONS%EQUATIONS_MATRICES)
314 equations_set%EQUATIONS%EQUATIONS_FINISHED=.false.
318 CALL flagerror(
"Equations set is not associated",err,error,*998)
321 exits(
"EQUATIONS_INITIALISE")
324 998 errorsexits(
"EQUATIONS_INITIALISE",err,error)
338 INTEGER(INTG),
INTENT(OUT) :: ERR
342 enters(
"EQUATIONS_INTERPOLATION_FINALISE",err,error,*999)
344 IF(
ASSOCIATED(equations_interpolation))
THEN 345 CALL field_interpolation_parameters_finalise(equations_interpolation%GEOMETRIC_INTERP_PARAMETERS,err,error,*999)
346 CALL field_interpolation_parameters_finalise(equations_interpolation%FIBRE_INTERP_PARAMETERS,err,error,*999)
347 CALL field_interpolation_parameters_finalise(equations_interpolation%DEPENDENT_INTERP_PARAMETERS,err,error,*999)
348 CALL field_interpolation_parameters_finalise(equations_interpolation%INDEPENDENT_INTERP_PARAMETERS,err,error,*999)
349 CALL field_interpolation_parameters_finalise(equations_interpolation%MATERIALS_INTERP_PARAMETERS,err,error,*999)
350 CALL field_interpolation_parameters_finalise(equations_interpolation%SOURCE_INTERP_PARAMETERS,err,error,*999)
351 CALL field_interpolated_points_finalise(equations_interpolation%GEOMETRIC_INTERP_POINT,err,error,*999)
352 CALL field_interpolated_points_finalise(equations_interpolation%DEPENDENT_INTERP_POINT,err,error,*999)
353 CALL field_interpolated_points_finalise(equations_interpolation%INDEPENDENT_INTERP_POINT,err,error,*999)
354 CALL field_interpolated_points_finalise(equations_interpolation%FIBRE_INTERP_POINT,err,error,*999)
355 CALL field_interpolated_points_finalise(equations_interpolation%MATERIALS_INTERP_POINT,err,error,*999)
356 CALL field_interpolated_points_finalise(equations_interpolation%SOURCE_INTERP_POINT,err,error,*999)
357 CALL field_physical_points_finalise(equations_interpolation%DEPENDENT_PHYSICAL_POINT,err,error,*999)
358 CALL field_interpolatedpointsmetricsfinalise(equations_interpolation%DEPENDENT_INTERP_POINT_METRICS,err,error,*999)
359 CALL field_interpolatedpointsmetricsfinalise(equations_interpolation%INDEPENDENT_INTERP_POINT_METRICS,err,error,*999)
360 CALL field_interpolatedpointsmetricsfinalise(equations_interpolation%GEOMETRIC_INTERP_POINT_METRICS,err,error,*999)
361 CALL field_interpolatedpointsmetricsfinalise(equations_interpolation%FIBRE_INTERP_POINT_METRICS,err,error,*999)
362 DEALLOCATE(equations_interpolation)
365 exits(
"EQUATIONS_INTERPOLATION_FINALISE")
367 999 errorsexits(
"EQUATIONS_INTERPOLATION_FINALISE",err,error)
380 INTEGER(INTG),
INTENT(OUT) :: ERR
383 INTEGER(INTG) :: DUMMY_ERR
387 enters(
"EQUATIONS_INTERPOLATION_INITIALISE",err,error,*998)
389 IF(
ASSOCIATED(equations))
THEN 390 equations_set=>equations%EQUATIONS_SET
391 IF(
ASSOCIATED(equations_set))
THEN 392 IF(
ASSOCIATED(equations%INTERPOLATION))
THEN 393 CALL flagerror(
"Interpolation is already associated for these equations.",err,error,*998)
395 ALLOCATE(equations%INTERPOLATION,stat=err)
396 IF(err/=0)
CALL flagerror(
"Could not allocate equations interpolation",err,error,*999)
397 equations%INTERPOLATION%EQUATIONS=>equations
398 NULLIFY(equations%INTERPOLATION%GEOMETRIC_INTERP_PARAMETERS)
399 NULLIFY(equations%INTERPOLATION%FIBRE_INTERP_PARAMETERS)
400 NULLIFY(equations%INTERPOLATION%DEPENDENT_INTERP_PARAMETERS)
401 NULLIFY(equations%INTERPOLATION%INDEPENDENT_INTERP_PARAMETERS)
402 NULLIFY(equations%INTERPOLATION%MATERIALS_INTERP_PARAMETERS)
403 NULLIFY(equations%INTERPOLATION%SOURCE_INTERP_PARAMETERS)
404 NULLIFY(equations%INTERPOLATION%GEOMETRIC_INTERP_POINT)
405 NULLIFY(equations%INTERPOLATION%FIBRE_INTERP_POINT)
406 NULLIFY(equations%INTERPOLATION%DEPENDENT_INTERP_POINT)
407 NULLIFY(equations%INTERPOLATION%INDEPENDENT_INTERP_POINT)
408 NULLIFY(equations%INTERPOLATION%MATERIALS_INTERP_POINT)
409 NULLIFY(equations%INTERPOLATION%SOURCE_INTERP_POINT)
410 NULLIFY(equations%INTERPOLATION%DEPENDENT_PHYSICAL_POINT)
411 NULLIFY(equations%INTERPOLATION%DEPENDENT_INTERP_POINT_METRICS)
412 NULLIFY(equations%INTERPOLATION%INDEPENDENT_INTERP_POINT_METRICS)
413 NULLIFY(equations%INTERPOLATION%GEOMETRIC_INTERP_POINT_METRICS)
414 NULLIFY(equations%INTERPOLATION%FIBRE_INTERP_POINT_METRICS)
416 equations%INTERPOLATION%GEOMETRIC_FIELD=>equations_set%GEOMETRY%GEOMETRIC_FIELD
417 equations%INTERPOLATION%FIBRE_FIELD=>equations_set%GEOMETRY%FIBRE_FIELD
418 equations%INTERPOLATION%DEPENDENT_FIELD=>equations_set%DEPENDENT%DEPENDENT_FIELD
419 IF(
ASSOCIATED(equations_set%INDEPENDENT))
THEN 420 equations%INTERPOLATION%INDEPENDENT_FIELD=>equations_set%INDEPENDENT%INDEPENDENT_FIELD
422 NULLIFY(equations%INTERPOLATION%INDEPENDENT_FIELD)
424 IF(
ASSOCIATED(equations_set%MATERIALS))
THEN 425 equations%INTERPOLATION%MATERIALS_FIELD=>equations_set%MATERIALS%MATERIALS_FIELD
427 NULLIFY(equations%INTERPOLATION%MATERIALS_FIELD)
429 IF(
ASSOCIATED(equations_set%SOURCE))
THEN 430 equations%INTERPOLATION%SOURCE_FIELD=>equations_set%SOURCE%SOURCE_FIELD
432 NULLIFY(equations%INTERPOLATION%SOURCE_FIELD)
435 CALL field_interpolation_parameters_initialise(equations%INTERPOLATION%GEOMETRIC_FIELD, &
436 & equations%INTERPOLATION%GEOMETRIC_INTERP_PARAMETERS,err,error,*999)
437 CALL field_interpolated_points_initialise(equations%INTERPOLATION%GEOMETRIC_INTERP_PARAMETERS, &
438 & equations%INTERPOLATION%GEOMETRIC_INTERP_POINT,err,error,*999)
439 CALL field_interpolatedpointsmetricsinitialise(equations%INTERPOLATION%GEOMETRIC_INTERP_POINT, &
440 & equations%INTERPOLATION%GEOMETRIC_INTERP_POINT_METRICS,err,error,*999)
441 CALL field_interpolation_parameters_initialise(equations%INTERPOLATION%DEPENDENT_FIELD, &
442 & equations%INTERPOLATION%DEPENDENT_INTERP_PARAMETERS,err,error,*999)
443 CALL field_interpolated_points_initialise(equations%INTERPOLATION%DEPENDENT_INTERP_PARAMETERS, &
444 & equations%INTERPOLATION%DEPENDENT_INTERP_POINT,err,error,*999)
448 IF(equations%INTERPOLATION%DEPENDENT_FIELD%TYPE==field_geometric_type.OR. &
449 & equations%INTERPOLATION%DEPENDENT_FIELD%TYPE==field_fibre_type.OR. &
450 & equations%INTERPOLATION%DEPENDENT_FIELD%TYPE==field_geometric_general_type)
THEN 451 CALL field_interpolatedpointsmetricsinitialise(equations%INTERPOLATION%DEPENDENT_INTERP_POINT, &
452 & equations%INTERPOLATION%DEPENDENT_INTERP_POINT_METRICS,err,error,*999)
454 IF(
ASSOCIATED(equations%INTERPOLATION%FIBRE_FIELD))
THEN 455 CALL field_interpolation_parameters_initialise(equations%INTERPOLATION%FIBRE_FIELD, &
456 & equations%INTERPOLATION%FIBRE_INTERP_PARAMETERS,err,error,*999)
457 CALL field_interpolated_points_initialise(equations%INTERPOLATION%FIBRE_INTERP_PARAMETERS, &
458 & equations%INTERPOLATION%FIBRE_INTERP_POINT,err,error,*999)
459 CALL field_interpolatedpointsmetricsinitialise(equations%INTERPOLATION%FIBRE_INTERP_POINT, &
460 & equations%INTERPOLATION%FIBRE_INTERP_POINT_METRICS,err,error,*999)
462 IF(
ASSOCIATED(equations%INTERPOLATION%INDEPENDENT_FIELD))
THEN 463 CALL field_interpolation_parameters_initialise(equations%INTERPOLATION%INDEPENDENT_FIELD, &
464 & equations%INTERPOLATION%INDEPENDENT_INTERP_PARAMETERS,err,error,*999)
465 CALL field_interpolated_points_initialise(equations%INTERPOLATION%INDEPENDENT_INTERP_PARAMETERS, &
466 & equations%INTERPOLATION%INDEPENDENT_INTERP_POINT,err,error,*999)
467 IF(equations%INTERPOLATION%INDEPENDENT_FIELD%TYPE==field_geometric_type.OR. &
468 & equations%INTERPOLATION%INDEPENDENT_FIELD%TYPE==field_fibre_type)
THEN 469 CALL field_interpolatedpointsmetricsinitialise(equations%INTERPOLATION%INDEPENDENT_INTERP_POINT, &
470 & equations%INTERPOLATION%INDEPENDENT_INTERP_POINT_METRICS,err,error,*999)
473 IF(
ASSOCIATED(equations%INTERPOLATION%MATERIALS_FIELD))
THEN 474 CALL field_interpolation_parameters_initialise(equations%INTERPOLATION%MATERIALS_FIELD, &
475 & equations%INTERPOLATION%MATERIALS_INTERP_PARAMETERS,err,error,*999)
476 CALL field_interpolated_points_initialise(equations%INTERPOLATION%MATERIALS_INTERP_PARAMETERS, &
477 & equations%INTERPOLATION%MATERIALS_INTERP_POINT,err,error,*999)
479 IF(
ASSOCIATED(equations%INTERPOLATION%SOURCE_FIELD))
THEN 480 CALL field_interpolation_parameters_initialise(equations%INTERPOLATION%SOURCE_FIELD, &
481 & equations%INTERPOLATION%SOURCE_INTERP_PARAMETERS,err,error,*999)
482 CALL field_interpolated_points_initialise(equations%INTERPOLATION%SOURCE_INTERP_PARAMETERS, &
483 & equations%INTERPOLATION%SOURCE_INTERP_POINT,err,error,*999)
488 CALL flagerror(
"Equations equation set is not associated",err,error,*998)
491 CALL flagerror(
"Equations is not associated",err,error,*998)
494 exits(
"EQUATIONS_INTERPOLATION_INITIALISE")
497 998 errorsexits(
"EQUATIONS_INTERPOLATION_INITIALISE",err,error)
510 INTEGER(INTG),
INTENT(OUT) :: LINEARITY_TYPE
511 INTEGER(INTG),
INTENT(OUT) :: ERR
515 enters(
"EQUATIONS_LINEARITY_TYPE_GET",err,error,*999)
517 IF(
ASSOCIATED(equations))
THEN 518 IF(equations%EQUATIONS_FINISHED)
THEN 519 linearity_type=equations%LINEARITY
521 CALL flagerror(
"Equations has not been finished.",err,error,*999)
524 CALL flagerror(
"Equations is not associated.",err,error,*999)
527 exits(
"EQUATIONS_LINEARITY_TYPE_GET")
529 999 errorsexits(
"EQUATIONS_LINEARITY_TYPE_GET",err,error)
542 INTEGER(INTG),
INTENT(IN) :: LINEARITY_TYPE
543 INTEGER(INTG),
INTENT(OUT) :: ERR
548 enters(
"EQUATIONS_LINEARITY_TYPE_SET",err,error,*999)
550 IF(
ASSOCIATED(equations))
THEN 551 IF(equations%EQUATIONS_FINISHED)
THEN 552 CALL flagerror(
"Equations has already been finished.",err,error,*999)
554 SELECT CASE(linearity_type)
562 local_error=
"The specified linearity type of "//
trim(
number_to_vstring(linearity_type,
"*",err,error))// &
564 CALL flagerror(local_error,err,error,*999)
568 CALL flagerror(
"Equations is not associated.",err,error,*999)
571 exits(
"EQUATIONS_LINEARITY_TYPE_SET")
573 999 errorsexits(
"EQUATIONS_LINEARITY_TYPE_SET",err,error)
586 INTEGER(INTG),
INTENT(OUT) :: LUMPING_TYPE
587 INTEGER(INTG),
INTENT(OUT) :: ERR
591 enters(
"EQUATIONS_LUMPING_TYPE_GET",err,error,*999)
593 IF(
ASSOCIATED(equations))
THEN 594 IF(equations%EQUATIONS_FINISHED)
THEN 595 lumping_type=equations%LUMPING_TYPE
597 CALL flagerror(
"Equations has not been finished.",err,error,*999)
600 CALL flagerror(
"Equations is not associated.",err,error,*999)
603 exits(
"EQUATIONS_LUMPING_TYPE_GET")
605 999 errorsexits(
"EQUATIONS_LUMPING_TYPE_GET",err,error)
618 INTEGER(INTG),
INTENT(IN) :: LUMPING_TYPE
619 INTEGER(INTG),
INTENT(OUT) :: ERR
624 enters(
"EQUATIONS_LUMPING_TYPE_SET",err,error,*999)
626 IF(
ASSOCIATED(equations))
THEN 627 IF(equations%EQUATIONS_FINISHED)
THEN 628 CALL flagerror(
"Equations has already been finished.",err,error,*999)
632 SELECT CASE(lumping_type)
638 local_error=
"The specified lumping type of "//
trim(
number_to_vstring(lumping_type,
"*",err,error))// &
640 CALL flagerror(local_error,err,error,*999)
643 local_error=
"Invalid equations time dependence. The equations time dependence of "// &
645 &
" does not correspond to dynamic equations. You can only set lumping for dynamic equations." 646 CALL flagerror(local_error,err,error,*999)
650 CALL flagerror(
"Equations is not associated.",err,error,*999)
653 exits(
"EQUATIONS_LUMPING_TYPE_SET")
655 999 errorsexits(
"EQUATIONS_LUMPING_TYPE_SET",err,error)
668 INTEGER(INTG),
INTENT(OUT) :: OUTPUT_TYPE
669 INTEGER(INTG),
INTENT(OUT) :: ERR
673 enters(
"EQUATIONS_OUTPUT_TYPE_GET",err,error,*999)
675 IF(
ASSOCIATED(equations))
THEN 676 IF(equations%EQUATIONS_FINISHED)
THEN 677 output_type=equations%OUTPUT_TYPE
679 CALL flagerror(
"Equations has not been finished.",err,error,*999)
682 CALL flagerror(
"Equations is not associated.",err,error,*999)
685 exits(
"EQUATIONS_OUTPUT_TYPE_GET")
687 999 errorsexits(
"EQUATIONS_OUTPUT_TYPE_GET",err,error)
700 INTEGER(INTG),
INTENT(IN) :: OUTPUT_TYPE
701 INTEGER(INTG),
INTENT(OUT) :: ERR
706 enters(
"EQUATIONS_OUTPUT_TYPE_SET",err,error,*999)
708 IF(
ASSOCIATED(equations))
THEN 709 IF(equations%EQUATIONS_FINISHED)
THEN 710 CALL flagerror(
"Equations has already been finished.",err,error,*999)
712 SELECT CASE(output_type)
724 local_error=
"The specified output type of "//
trim(
number_to_vstring(output_type,
"*",err,error))//
" is invalid" 725 CALL flagerror(local_error,err,error,*999)
729 CALL flagerror(
"Equations is not associated.",err,error,*999)
732 exits(
"EQUATIONS_OUTPUT_TYPE_SET")
734 999 errorsexits(
"EQUATIONS_OUTPUT_TYPE_SET",err,error)
748 INTEGER(INTG),
INTENT(OUT) :: SPARSITY_TYPE
749 INTEGER(INTG),
INTENT(OUT) :: ERR
753 enters(
"EQUATIONS_SPARSITY_TYPE_GET",err,error,*999)
755 IF(
ASSOCIATED(equations))
THEN 756 IF(equations%EQUATIONS_FINISHED)
THEN 757 sparsity_type=equations%SPARSITY_TYPE
759 CALL flagerror(
"Equations has not been finished.",err,error,*999)
762 CALL flagerror(
"Equations is not associated.",err,error,*999)
765 exits(
"EQUATIONS_SPARSITY_TYPE_GET")
767 999 errorsexits(
"EQUATIONS_SPARSITY_TYPE_GET",err,error)
780 INTEGER(INTG),
INTENT(IN) :: SPARSITY_TYPE
781 INTEGER(INTG),
INTENT(OUT) :: ERR
786 enters(
"EQUATIONS_SPARSITY_TYPE_SET",err,error,*999)
788 IF(
ASSOCIATED(equations))
THEN 789 IF(equations%EQUATIONS_FINISHED)
THEN 790 CALL flagerror(
"Equations has already been finished.",err,error,*999)
792 SELECT CASE(sparsity_type)
798 local_error=
"The specified sparsity type of "//
trim(
number_to_vstring(sparsity_type,
"*",err,error))// &
800 CALL flagerror(local_error,err,error,*999)
804 CALL flagerror(
"Equations is not associated.",err,error,*999)
807 exits(
"EQUATIONS_SPARSITY_TYPE_SET")
809 999 errorsexits(
"EQUATIONS_SPARSITY_TYPE_SET",err,error)
822 INTEGER(INTG),
INTENT(OUT) :: TIME_DEPENDENCE_TYPE
823 INTEGER(INTG),
INTENT(OUT) :: ERR
827 enters(
"EQUATIONS_TIME_DEPENDENCE_TYPE_GET",err,error,*999)
829 IF(
ASSOCIATED(equations))
THEN 830 IF(equations%EQUATIONS_FINISHED)
THEN 831 time_dependence_type=equations%TIME_DEPENDENCE
833 CALL flagerror(
"Equations has not been finished.",err,error,*999)
836 CALL flagerror(
"Equations is not associated.",err,error,*999)
839 exits(
"EQUATIONS_TIME_DEPENDENCE_TYPE_GET")
841 999 errorsexits(
"EQUATIONS_TIME_DEPENDENCE_TYPE_GET",err,error)
854 INTEGER(INTG),
INTENT(IN) :: TIME_DEPENDENCE_TYPE
855 INTEGER(INTG),
INTENT(OUT) :: ERR
860 enters(
"EQUATIONS_TIME_DEPENDENCE_TYPE_SET",err,error,*999)
862 IF(
ASSOCIATED(equations))
THEN 863 IF(equations%EQUATIONS_FINISHED)
THEN 864 CALL flagerror(
"Equations has already been finished.",err,error,*999)
866 SELECT CASE(time_dependence_type)
876 local_error=
"The specified time dependence type of "//
trim(
number_to_vstring(time_dependence_type,
"*",err,error))// &
878 CALL flagerror(local_error,err,error,*999)
882 CALL flagerror(
"Equations is not associated.",err,error,*999)
885 exits(
"EQUATIONS_TIME_DEPENDENCE_TYPE_SET")
887 999 errorsexits(
"EQUATIONS_TIME_DEPENDENCE_TYPE_SET",err,error)
901 INTEGER(INTG),
INTENT(OUT) :: ERR
905 enters(
"EQUATIONS_SET_EQUATIONS_GET",err,error,*999)
907 IF(
ASSOCIATED(equations_set))
THEN 908 IF(equations_set%EQUATIONS_SET_FINISHED)
THEN 909 IF(
ASSOCIATED(equations))
THEN 910 CALL flagerror(
"Equations is already associated.",err,error,*999)
912 equations=>equations_set%EQUATIONS
913 IF(.NOT.
ASSOCIATED(equations))
CALL flagerror(
"Equations set equations is not associated.",err,error,*999)
916 CALL flagerror(
"Equations set has not been finished.",err,error,*999)
919 CALL flagerror(
"Equations set is not associated.",err,error,*999)
922 exits(
"EQUATIONS_SET_EQUATIONS_GET")
924 999 errorsexits(
"EQUATIONS_SET_EQUATIONS_GET",err,error)
938 INTEGER(INTG),
INTENT(IN) :: derivedType
940 INTEGER(INTG),
INTENT(OUT) :: err
946 INTEGER(INTG) :: fieldVariableType
948 enters(
"Equations_DerivedVariableGet",err,error,*999)
950 NULLIFY(derivedfield)
953 IF(
ASSOCIATED(equations))
THEN 954 equationsset=>equations%equations_set
955 IF(
ASSOCIATED(equationsset))
THEN 956 IF(.NOT.equationsset%EQUATIONS_SET_FINISHED)
THEN 957 CALL flagerror(
"Equations set has not been finished.",err,error,*999)
960 CALL flagerror(
"Equations set is not associated.",err,error,*999)
962 IF(
ASSOCIATED(fieldvariable))
THEN 963 CALL flagerror(
"Derived field variable is already associated.",err,error,*999)
966 CALL flagerror(
"Equations are not associated.",err,error,*999)
969 IF(
ASSOCIATED(equationsset%derived))
THEN 970 IF(equationsset%derived%derivedFinished)
THEN 971 IF(
ASSOCIATED(equationsset%derived%derivedField))
THEN 973 fieldvariabletype=equationsset%derived%variableTypes(derivedtype)
974 IF(fieldvariabletype/=0)
THEN 975 CALL field_variable_get(equationsset%derived%derivedField,fieldvariabletype,fieldvariable,err,error,*999)
977 CALL flagerror(
"The field variable type for the derived variable type of "// &
983 & err,error))//
" inclusive.",err,error,*999)
986 CALL flagerror(
"Equations set derived field is not associated",err,error,*999)
989 CALL flagerror(
"Equations set derived information is not finished",err,error,*999)
993 exits(
"Equations_DerivedVariableGet")
995 999 errorsexits(
"Equations_DerivedVariableGet",err,error)
1008 INTEGER(INTG),
INTENT(OUT) :: numberOfMatrices
1010 INTEGER(INTG),
INTENT(OUT) :: err
1015 enters(
"Equations_NumberOfLinearMatricesGet",err,error,*999)
1017 IF(
ASSOCIATED(equations))
THEN 1018 equationsmatrices=>equations%equations_matrices
1019 IF(
ASSOCIATED(equationsmatrices))
THEN 1020 linearmatrices=>equationsmatrices%linear_matrices
1021 IF(
ASSOCIATED(linearmatrices))
THEN 1022 numberofmatrices=linearmatrices%number_of_linear_matrices
1027 CALL flagerror(
"The equations matrices are not associated.",err,error,*999)
1030 CALL flagerror(
"The equations equations are not associated.",err,error,*999)
1033 exits(
"Equations_NumberOfLinearMatricesGet")
1035 999 errorsexits(
"Equations_NumberOfLinearMatricesGet",err,error)
1049 INTEGER(INTG),
INTENT(OUT) :: numberOfMatrices
1051 INTEGER(INTG),
INTENT(OUT) :: err
1056 enters(
"Equations_NumberOfJacobianMatricesGet",err,error,*999)
1058 IF(
ASSOCIATED(equations))
THEN 1059 equationsmatrices=>equations%equations_matrices
1060 IF(
ASSOCIATED(equationsmatrices))
THEN 1061 nonlinearmatrices=>equationsmatrices%nonlinear_matrices
1062 IF(
ASSOCIATED(nonlinearmatrices))
THEN 1063 numberofmatrices=nonlinearmatrices%number_of_jacobians
1068 CALL flagerror(
"The equations matrices are not associated.",err,error,*999)
1071 CALL flagerror(
"The equations are not associated.",err,error,*999)
1074 exits(
"Equations_NumberOfJacobianMatricesGet")
1076 999 errorsexits(
"Equations_NumberOfJacobianMatricesGet",err,error)
1090 INTEGER(INTG),
INTENT(OUT) :: numberOfMatrices
1092 INTEGER(INTG),
INTENT(OUT) :: err
1097 enters(
"Equations_NumberOfDynamicMatricesGet",err,error,*999)
1099 IF(
ASSOCIATED(equations))
THEN 1100 equationsmatrices=>equations%equations_matrices
1101 IF(
ASSOCIATED(equationsmatrices))
THEN 1102 dynamicmatrices=>equationsmatrices%dynamic_matrices
1103 IF(
ASSOCIATED(dynamicmatrices))
THEN 1104 numberofmatrices=dynamicmatrices%number_of_dynamic_matrices
1109 CALL flagerror(
"The equations matrices are not associated.",err,error,*999)
1112 CALL flagerror(
"The equations are not associated.",err,error,*999)
1115 exits(
"Equations_NumberOfDynamicMatricesGet")
1117 999 errorsexits(
"Equations_NumberOfDynamicMatricesGet",err,error)
1131 INTEGER(INTG),
INTENT(IN) :: matrixIndex
1134 INTEGER(INTG),
INTENT(OUT) :: err
1140 enters(
"Equations_LinearMatrixGet",err,error,*999)
1142 IF(
ASSOCIATED(equations))
THEN 1143 equationsmatrices=>equations%equations_matrices
1144 IF(
ASSOCIATED(equationsmatrices))
THEN 1145 linearmatrices=>equationsmatrices%linear_matrices
1146 IF(
ASSOCIATED(linearmatrices))
THEN 1147 IF(matrixindex>0.AND.matrixindex<=linearmatrices%number_of_linear_matrices)
THEN 1148 IF(.NOT.
ASSOCIATED(matrix))
THEN 1149 equationsmatrix=>linearmatrices%matrices(matrixindex)%ptr
1150 IF(
ASSOCIATED(equationsmatrix))
THEN 1151 matrix=>equationsmatrix%matrix
1153 CALL flagerror(
"The equations matrix is not associated.",err,error,*999)
1156 CALL flagerror(
"The matrix is already associated.",err,error,*999)
1159 CALL flagerror(
"Invalid matrix index. The matrix index must be greater than zero and less than or equal to "// &
1160 &
trim(
numbertovstring(linearmatrices%number_of_linear_matrices,
"*",err,error))//
".",err,error,*999)
1163 CALL flagerror(
"The equations linear matrices are not associated.",err,error,*999)
1166 CALL flagerror(
"The equations matrices are not associated.",err,error,*999)
1169 CALL flagerror(
"The equations are not associated.",err,error,*999)
1172 exits(
"Equations_LinearMatrixGet")
1174 999 errorsexits(
"Equations_LinearMatrixGet",err,error)
1188 INTEGER(INTG),
INTENT(IN) :: residualIndex
1189 INTEGER(INTG),
INTENT(IN) :: variableType
1192 INTEGER(INTG),
INTENT(OUT) :: err
1194 INTEGER(INTG) :: matrixIndex,variableIndex
1199 enters(
"Equations_JacobianMatrixGet",err,error,*999)
1202 IF(
ASSOCIATED(equations))
THEN 1203 equationsmapping=>equations%equations_mapping
1204 IF(
ASSOCIATED(equationsmapping))
THEN 1205 nonlinearmapping=>equationsmapping%nonlinear_mapping
1206 IF(.NOT.
ASSOCIATED(nonlinearmapping))
THEN 1207 CALL flagerror(
"The equations nonlinear mapping is not associated.",err,error,*999)
1210 CALL flagerror(
"The equations mapping is not associated.",err,error,*999)
1213 CALL flagerror(
"The equations are not associated.",err,error,*999)
1215 IF(
ASSOCIATED(matrix))
THEN 1216 CALL flagerror(
"The matrix is already associated.",err,error,*999)
1219 IF(residualindex/=1)
THEN 1220 CALL flagerror(
"Multiple residual vectors are not yet implemented.",err,error,*999)
1225 DO variableindex=1,nonlinearmapping%number_of_residual_variables
1226 IF(nonlinearmapping%residual_variables(variableindex)%ptr%variable_type==variabletype)
THEN 1227 matrixindex=nonlinearmapping%var_to_jacobian_map(variableindex)%jacobian_number
1230 IF(matrixindex==0)
THEN 1231 CALL flagerror(
"Equations do not have a Jacobian matrix for residual index "// &
1237 equationsjacobian=>nonlinearmapping%jacobian_to_var_map(matrixindex)%jacobian
1238 IF(
ASSOCIATED(equationsjacobian))
THEN 1239 matrix=>equationsjacobian%jacobian
1241 CALL flagerror(
"The equations Jacobian matrix is not associated.",err,error,*999)
1244 exits(
"Equations_JacobianMatrixGet")
1246 999 errorsexits(
"Equations_JacobianMatrixGet",err,error)
1260 INTEGER(INTG),
INTENT(IN) :: matrixIndex
1263 INTEGER(INTG),
INTENT(OUT) :: err
1269 enters(
"Equations_DynamicMatrixGet",err,error,*999)
1271 IF(
ASSOCIATED(equations))
THEN 1272 equationsmatrices=>equations%equations_matrices
1273 IF(
ASSOCIATED(equationsmatrices))
THEN 1274 dynamicmatrices=>equationsmatrices%dynamic_matrices
1275 IF(
ASSOCIATED(dynamicmatrices))
THEN 1276 IF(matrixindex>0.AND.matrixindex<=dynamicmatrices%number_of_dynamic_matrices)
THEN 1277 IF(.NOT.
ASSOCIATED(matrix))
THEN 1278 equationsmatrix=>dynamicmatrices%matrices(matrixindex)%ptr
1279 IF(
ASSOCIATED(equationsmatrix))
THEN 1280 matrix=>equationsmatrix%matrix
1282 CALL flagerror(
"The equations matrix is not associated.",err,error,*999)
1285 CALL flagerror(
"The matrix is already associated.",err,error,*999)
1288 CALL flagerror(
"Invalid matrix index. The matrix index must be greater than zero and less than or equal to "// &
1289 &
trim(
numbertovstring(dynamicmatrices%number_of_dynamic_matrices,
"*",err,error))//
".",err,error,*999)
1292 CALL flagerror(
"The equations dynamic matrices are not associated.",err,error,*999)
1295 CALL flagerror(
"The equations matrices are not associated.",err,error,*999)
1298 CALL flagerror(
"The equations are not associated.",err,error,*999)
1301 exits(
"Equations_DynamicMatrixGet")
1303 999 errorsexits(
"Equations_DynamicMatrixGet",err,error)
1317 INTEGER(INTG),
INTENT(IN) :: matrixType
1320 INTEGER(INTG),
INTENT(OUT) :: err
1322 INTEGER(INTG) :: matrixIndex
1329 enters(
"Equations_DynamicMatrixGetByType",err,error,*999)
1332 IF(
ASSOCIATED(equations))
THEN 1333 equationsmatrices=>equations%equations_matrices
1334 IF(
ASSOCIATED(equationsmatrices))
THEN 1335 dynamicmatrices=>equationsmatrices%dynamic_matrices
1336 IF(.NOT.
ASSOCIATED(dynamicmatrices))
THEN 1337 CALL flagerror(
"The equations dynamic matrices are not associated.",err,error,*999)
1340 CALL flagerror(
"The equations matrices are not associated.",err,error,*999)
1342 equationsmapping=>equations%equations_mapping
1343 IF(
ASSOCIATED(equationsmapping))
THEN 1344 dynamicmapping=>equationsmapping%DYNAMIC_MAPPING
1345 IF(.NOT.
ASSOCIATED(dynamicmapping))
THEN 1346 CALL flagerror(
"The equations dynamic mapping is not associated.",err,error,*999)
1349 CALL flagerror(
"The equations mapping is not associated.",err,error,*999)
1352 CALL flagerror(
"The equations are not associated.",err,error,*999)
1354 IF(
ASSOCIATED(matrix))
THEN 1355 CALL flagerror(
"The matrix is already associated.",err,error,*999)
1360 SELECT CASE(matrixtype)
1362 matrixindex=dynamicmapping%stiffness_matrix_number
1364 matrixindex=dynamicmapping%damping_matrix_number
1366 matrixindex=dynamicmapping%mass_matrix_number
1369 &
" specified.",err,error,*999)
1371 IF(matrixindex==0)
THEN 1372 CALL flagerror(
"The equations dynamic matrices do not have a matrix with the specified type of "// &
1375 equationsmatrix=>dynamicmatrices%matrices(matrixindex)%ptr
1376 IF(
ASSOCIATED(equationsmatrix))
THEN 1377 matrix=>equationsmatrix%matrix
1379 CALL flagerror(
"The equations dynamic matrix for index "// &
1384 exits(
"Equations_DynamicMatrixGetByType")
1386 999 errorsexits(
"Equations_DynamicMatrixGetByType",err,error)
1400 INTEGER(INTG),
INTENT(IN) :: matrixIndex
1401 INTEGER(INTG),
INTENT(INOUT) :: matrixType
1403 INTEGER(INTG),
INTENT(OUT) :: err
1408 enters(
"Equations_DynamicMatrixTypeGet",err,error,*999)
1410 IF(
ASSOCIATED(equations))
THEN 1411 equationsmapping=>equations%equations_mapping
1412 IF(
ASSOCIATED(equationsmapping))
THEN 1413 dynamicmapping=>equationsmapping%DYNAMIC_MAPPING
1414 IF(
ASSOCIATED(dynamicmapping))
THEN 1415 IF(matrixindex>0.AND.matrixindex<=dynamicmapping%number_of_dynamic_equations_matrices)
THEN 1416 IF(matrixindex==dynamicmapping%stiffness_matrix_number)
THEN 1418 ELSE IF(matrixindex==dynamicmapping%damping_matrix_number)
THEN 1420 ELSE IF(matrixindex==dynamicmapping%mass_matrix_number)
THEN 1423 CALL flagerror(
"Could not find dynamic matrix type.",err,error,*999)
1426 CALL flagerror(
"Invalid matrix index. The matrix index must be greater than zero and less than or equal to "// &
1427 &
trim(
numbertovstring(dynamicmapping%number_of_dynamic_equations_matrices,
"*",err,error))//
".",err,error,*999)
1430 CALL flagerror(
"The equations dynamic mapping is not associated.",err,error,*999)
1433 CALL flagerror(
"The equations mapping is not associated.",err,error,*999)
1436 CALL flagerror(
"The equations are not associated.",err,error,*999)
1439 exits(
"Equations_DynamicMatrixTypeGet")
1441 999 errorsexits(
"Equations_DynamicMatrixTypeGet",err,error)
1457 INTEGER(INTG),
INTENT(OUT) :: err
1462 enters(
"Equations_RhsVectorGet",err,error,*999)
1464 IF(
ASSOCIATED(equations))
THEN 1465 equationsmatrices=>equations%equations_matrices
1466 IF(
ASSOCIATED(equationsmatrices))
THEN 1467 rhsvector=>equationsmatrices%rhs_vector
1468 IF(
ASSOCIATED(rhsvector))
THEN 1469 IF(.NOT.
ASSOCIATED(vector))
THEN 1470 vector=>rhsvector%vector
1472 CALL flagerror(
"The vector is already associated.",err,error,*999)
1475 CALL flagerror(
"The equations matrices right hand side vector is not associated.",err,error,*999)
1478 CALL flagerror(
"The equations matrices are not associated.",err,error,*999)
1481 CALL flagerror(
"The equations are not associated.",err,error,*999)
1484 exits(
"Equations_RhsVectorGet")
1486 999 errorsexits(
"Equations_RhsVectorGet",err,error)
1500 INTEGER(INTG),
INTENT(IN) :: residualIndex
1503 INTEGER(INTG),
INTENT(OUT) :: err
1508 enters(
"Equations_ResidualVectorGet",err,error,*999)
1510 IF(
ASSOCIATED(equations))
THEN 1511 equationsmatrices=>equations%equations_matrices
1512 IF(
ASSOCIATED(equationsmatrices))
THEN 1513 nonlinearmatrices=>equationsmatrices%nonlinear_matrices
1514 IF(
ASSOCIATED(nonlinearmatrices))
THEN 1515 IF(.NOT.
ASSOCIATED(vector))
THEN 1516 IF(residualindex==1)
THEN 1517 vector=>nonlinearmatrices%residual
1519 CALL flagerror(
"Multiple residual vectors are not yet implemented.",err,error,*999)
1522 CALL flagerror(
"The vector is already associated.",err,error,*999)
1525 CALL flagerror(
"The equations matrices nonlinear matrices are not associated.",err,error,*999)
1528 CALL flagerror(
"The equations matrices are not associated.",err,error,*999)
1531 CALL flagerror(
"The equations are not associated.",err,error,*999)
1534 exits(
"Equations_ResidualVectorGet")
1536 999 errorsexits(
"Equations_ResidualVectorGet",err,error)
1550 INTEGER(INTG),
INTENT(IN) :: residualIndex
1551 INTEGER(INTG),
INTENT(OUT) :: numberOfVariables
1553 INTEGER(INTG),
INTENT(OUT) :: err
1558 enters(
"Equations_ResidualNumberOfVariablesGet",err,error,*999)
1561 IF(
ASSOCIATED(equations))
THEN 1562 equationsmapping=>equations%equations_mapping
1563 IF(
ASSOCIATED(equationsmapping))
THEN 1564 nonlinearmapping=>equationsmapping%nonlinear_mapping
1565 IF(.NOT.
ASSOCIATED(nonlinearmapping))
THEN 1566 CALL flagerror(
"The equations nonlinear mapping is not associated.",err,error,*999)
1569 CALL flagerror(
"The equations mapping is not associated.",err,error,*999)
1572 CALL flagerror(
"The equations are not associated.",err,error,*999)
1575 IF(residualindex==1)
THEN 1576 numberofvariables=nonlinearmapping%number_of_residual_variables
1578 CALL flagerror(
"Multiple residual vectors are not yet implemented.",err,error,*999)
1581 exits(
"Equations_ResidualNumberOfVariablesGet")
1583 999 errorsexits(
"Equations_ResidualNumberOfVariablesGet",err,error)
1597 INTEGER(INTG),
INTENT(IN) :: residualIndex
1598 INTEGER(INTG),
INTENT(OUT) :: residualVariables(:)
1600 INTEGER(INTG),
INTENT(OUT) :: err
1602 INTEGER(INTG) :: numberOfVariables,variableIdx
1606 enters(
"Equations_ResidualVariablesGet",err,error,*999)
1609 IF(
ASSOCIATED(equations))
THEN 1610 equationsmapping=>equations%equations_mapping
1611 IF(
ASSOCIATED(equationsmapping))
THEN 1612 nonlinearmapping=>equationsmapping%nonlinear_mapping
1613 IF(.NOT.
ASSOCIATED(nonlinearmapping))
THEN 1614 CALL flagerror(
"The equations nonlinear mapping is not associated.",err,error,*999)
1617 CALL flagerror(
"The equations mapping is not associated.",err,error,*999)
1620 CALL flagerror(
"The equations are not associated.",err,error,*999)
1623 IF(residualindex==1)
THEN 1624 numberofvariables=nonlinearmapping%number_of_residual_variables
1625 IF(
SIZE(residualvariables,1)>=numberofvariables)
THEN 1626 DO variableidx=1,numberofvariables
1627 residualvariables(variableidx)=nonlinearmapping%residual_variables(variableidx)%ptr%variable_type
1630 CALL flagerror(
"residualVariables array must have size of at least "// &
1634 CALL flagerror(
"Multiple residual vectors are not yet implemented.",err,error,*999)
1637 exits(
"Equations_ResidualVariablesGet")
1639 999 errorsexits(
"Equations_ResidualVariablesGet",err,error)
1655 INTEGER(INTG),
INTENT(OUT) :: err
1660 enters(
"Equations_SourceVectorGet",err,error,*999)
1662 IF(
ASSOCIATED(equations))
THEN 1663 equationsmatrices=>equations%equations_matrices
1664 IF(
ASSOCIATED(equationsmatrices))
THEN 1665 matricessource=>equationsmatrices%source_vector
1666 IF(
ASSOCIATED(matricessource))
THEN 1667 IF(.NOT.
ASSOCIATED(vector))
THEN 1668 vector=>matricessource%vector
1670 CALL flagerror(
"The vector is already associated.",err,error,*999)
1673 CALL flagerror(
"The equations matrices source vector is not associated.",err,error,*999)
1676 CALL flagerror(
"The equations matrices are not associated.",err,error,*999)
1679 CALL flagerror(
"The equations are not associated.",err,error,*999)
1682 exits(
"Equations_SourceVectorGet")
1684 999 errorsexits(
"Equations_SourceVectorGet",err,error)
subroutine, public enters(NAME, ERR, ERROR,)
Records the entry into the named procedure and initialises the error code.
Contains information on the Jacobian matrix for nonlinear problems.
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, public equations_full_matrices
Use fully populated matrices for the equations.
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.
subroutine, public equations_destroy(EQUATIONS, ERR, ERROR,)
Destroys equations.
subroutine equations_interpolation_initialise(EQUATIONS, ERR, ERROR,)
Initialises the interpolation information for equations.
This module handles all equations matrix and rhs routines.
subroutine, public equations_finalise(EQUATIONS, ERR, ERROR,)
Finalise the equations and deallocate all memory.
subroutine, public equations_initialise(EQUATIONS_SET, ERR, ERROR,)
Initialises the equations for an equations set.
subroutine, public equations_sparsity_type_get(EQUATIONS, SPARSITY_TYPE, ERR, ERROR,)
Gets the sparsity type for equations.
integer(intg), parameter equations_static
The equations are static and have no time dependence.
Contains information on an equations set.
subroutine, public equations_sourcevectorget(equations, vector, err, error,)
Get the source vector for equations.
This module handles all equations routines.
This module contains all string manipulation and transformation routines.
subroutine, public equations_derivedvariableget(equations, derivedType, fieldVariable, err, error,)
Gets the field variable for the derived variable type.
Contains information of the source vector for equations matrices.
subroutine, public equations_time_dependence_type_set(EQUATIONS, TIME_DEPENDENCE_TYPE, ERR, ERROR,)
Sets/changes the time dependence type for equations.
integer(intg), parameter, public equations_timing_output
Timing information output.
Contains information for a field defined on a region.
integer(intg), parameter, public equations_sparse_matrices
Use sparse matrices for the equations.
subroutine, public equations_numberoflinearmatricesget(equations, numberOfMatrices, err, error,)
Get the number of linear matrices in the equations.
subroutine, public equations_linearmatrixget(equations, matrixIndex, matrix, err, error,)
Get a linear equations matrix from equations.
subroutine, public equations_residualnumberofvariablesget(equations, residualIndex, numberOfVariables, err, error,)
Get the number of field variables that contribute to the residual vector.
This module provides an iso_varying_string module, conformant to the API specified in ISO/IEC 1539-2:...
subroutine, public equations_lumping_type_get(EQUATIONS, LUMPING_TYPE, ERR, ERROR,)
Gets the lumping type for equations.
integer(intg), parameter, public equations_matrix_output
All below and equation matrices output.
Contains information for mapping field variables to the dynamic matrices in the equations set of the ...
integer(intg), parameter, public equations_element_matrix_output
All below and element matrices output.
integer(intg), parameter equations_set_number_of_derived_types
integer(intg), parameter, public equations_lumped_matrices
The equations matrices are "mass" lumped.
subroutine, public equations_dynamicmatrixgetbytype(equations, matrixType, matrix, err, error,)
Get a dynamic equations matrix from equations using the dynamic matrix type.
subroutine, public equations_output_type_get(EQUATIONS, OUTPUT_TYPE, ERR, ERROR,)
Gets the output type for equations.
integer(intg), parameter equations_second_order_dynamic
The equations are a second order dynamic.
integer(intg), parameter equations_first_order_dynamic
The equations are first order dynamic.
Contains information on the interpolation for the equations.
subroutine, public exits(NAME)
Records the exit out of the named procedure.
This module contains all type definitions in order to avoid cyclic module references.
Contains information on the equations mapping for nonlinear matrices i.e., how a field variable is ma...
Contains information on the equations matrices and vectors.
subroutine, public equations_linearity_type_get(EQUATIONS, LINEARITY_TYPE, ERR, ERROR,)
Gets the linearity type for equations.
subroutine, public equations_dynamicmatrixget(equations, matrixIndex, matrix, err, error,)
Get a dynamic equations matrix from equations using the dynamic matrix index.
This module contains all the low-level base routines e.g., all debug, control, and low-level communic...
Contains information of the linear matrices for equations matrices.
integer(intg), parameter equations_matrix_stiffness
A stiffness matrix (multiplies displacement values)
subroutine, public equations_mapping_destroy(EQUATIONS_MAPPING, ERR, ERROR,)
Destroy an equations mapping.
subroutine, public equations_output_type_set(EQUATIONS, OUTPUT_TYPE, ERR, ERROR,)
Sets/changes the output type for the equations.
integer(intg), parameter, public equations_unlumped_matrices
The equations matrices are not lumped.
subroutine, public equations_set_equations_get(EQUATIONS_SET, EQUATIONS, ERR, ERROR,)
Gets the equations for an equations set.
subroutine, public equations_rhsvectorget(equations, vector, err, error,)
Get the right hand side vector for equations.
subroutine, public equations_create_finish(EQUATIONS, ERR, ERROR,)
Finish the creation of equations.
This module handles all equations mapping routines.
integer(intg), parameter equations_matrix_mass
A mass matrix (multiplies acceleration values)
subroutine, public equations_time_dependence_type_get(EQUATIONS, TIME_DEPENDENCE_TYPE, ERR, ERROR,)
Gets the time dependence type for equations.
subroutine, public equations_lumping_type_set(EQUATIONS, LUMPING_TYPE, ERR, ERROR,)
Sets/changes the matrix lumping for the equations.
integer(intg), parameter equations_linear
The equations are linear.
Contains the information for a vector that is distributed across a number of domains.
subroutine, public equations_dynamicmatrixtypeget(equations, matrixIndex, matrixType, err, error,)
Get the type of a dynamic matrix, eg. stiffness, damping or mass.
integer(intg), parameter, public equations_nodal_matrix_output
All below and nodal matrices output.
Contains information about an equations matrix.
integer(intg), parameter equations_matrix_damping
A damping matrix (multiplies velocity values)
subroutine, public equations_linearity_type_set(EQUATIONS, LINEARITY_TYPE, ERR, ERROR,)
Sets/changes the linearity type for equations.
subroutine, public equations_jacobianmatrixget(equations, residualIndex, variableType, matrix, err, error,)
Get a Jacobian matrix from equations.
integer(intg), parameter, public equations_no_output
No output.
subroutine equations_interpolation_finalise(EQUATIONS_INTERPOLATION, ERR, ERROR,)
Finalises the interpolation information for equations and deallocates all memory. ...
Contains information for a field variable defined on a field.
integer(intg), parameter equations_nonlinear_bcs
The equations have non-linear boundary conditions.
subroutine, public equations_numberofjacobianmatricesget(equations, numberOfMatrices, err, error,)
Get the number of Jacobian matrices in the equations.
Contains information of the nolinear matrices and vectors for equations matrices. ...
This module defines all constants shared across equations set routines.
Contains the information for a matrix that is distributed across a number of domains.
subroutine, public equations_matrices_destroy(EQUATIONS_MATRICES, ERR, ERROR,)
Destroy the equations matrices.
subroutine, public equations_numberofdynamicmatricesget(equations, numberOfMatrices, err, error,)
Get the number of dynamic matrices in the equations.
integer(intg), parameter equations_quasistatic
The equations are quasi-static.
Flags an error condition.
Contains information of the RHS vector for equations matrices.
integer(intg), parameter equations_nonlinear
The equations are non-linear.
subroutine, public equations_sparsity_type_set(EQUATIONS, SPARSITY_TYPE, ERR, ERROR,)
Sets/changes the sparsity type for the equations.
subroutine, public equations_residualvectorget(equations, residualIndex, vector, err, error,)
Get a residual vector for nonlinear equations.
subroutine, public equations_residualvariablesget(equations, residualIndex, residualVariables, err, error,)
Get the field variables that contribute to the residual vector.
This module contains all kind definitions.
Contains information of the dynamic matrices for equations matrices.