120 & normal,time,variable_type,global_derivative,component_number,analytic_parameters,materials_parameters,
VALUE,err,error,*)
124 INTEGER(INTG),
INTENT(IN) :: ANALYTIC_FUNCTION_TYPE
125 REAL(DP),
INTENT(IN) :: POSITION(:)
126 REAL(DP),
INTENT(IN) :: TANGENTS(:,:)
127 REAL(DP),
INTENT(IN) :: NORMAL(:)
128 REAL(DP),
INTENT(IN) :: TIME
129 INTEGER(INTG),
INTENT(IN) :: VARIABLE_TYPE
130 INTEGER(INTG),
INTENT(IN) :: GLOBAL_DERIVATIVE
131 INTEGER(INTG),
INTENT(IN) :: COMPONENT_NUMBER
132 REAL(DP),
INTENT(IN) :: ANALYTIC_PARAMETERS(:)
133 REAL(DP),
INTENT(IN) :: MATERIALS_PARAMETERS(:)
134 REAL(DP),
INTENT(OUT) ::
VALUE 135 INTEGER(INTG),
INTENT(OUT) :: ERR
140 enters(
"FLUID_MECHANICS_ANALYTIC_FUNCTIONS_EVALUATE",err,error,*999)
142 IF(
ASSOCIATED(equations_set))
THEN 143 SELECT CASE(equations_set%specification(2))
145 CALL flagerror(
"Not implemented.",err,error,*999)
147 CALL flagerror(
"Not implemented.",err,error,*999)
149 CALL flagerror(
"Not implemented.",err,error,*999)
151 CALL flagerror(
"Not implemented.",err,error,*999)
153 CALL flagerror(
"Not implemented.",err,error,*999)
156 & tangents,normal,time,variable_type,global_derivative,component_number,analytic_parameters, &
157 & materials_parameters,
VALUE,err,error,*999)
159 CALL flagerror(
"Not implemented.",err,error,*999)
161 local_error=
"The second equations set specification of "// &
163 &
" is not valid for a fluid mechanics equations set." 164 CALL flagerror(local_error,err,error,*999)
167 CALL flagerror(
"Equations set is not associated.",err,error,*999)
170 exits(
"FLUID_MECHANICS_ANALYTIC_FUNCTIONS_EVALUATE")
172 999 errorsexits(
"FLUID_MECHANICS_ANALYTIC_FUNCTIONS_EVALUATE",err,error)
186 INTEGER(INTG),
INTENT(IN) :: specification(:)
187 INTEGER(INTG),
INTENT(OUT) :: err
192 enters(
"FluidMechanics_EquationsSetSpecificationSet",err,error,*999)
194 IF(
ASSOCIATED(equationsset))
THEN 195 IF(
SIZE(specification,1)<2)
THEN 196 CALL flagerror(
"Equations set specification must have at least two entries for a fluid mechanics equations set.", &
199 SELECT CASE(specification(2))
203 CALL navierstokes_equationssetspecificationset(equationsset,specification,err,error,*999)
217 localerror=
"The second equations set specification of "//
trim(
numbertovstring(specification(2),
"*",err,error))// &
218 &
" is not valid for a fluid mechanics equations set." 219 CALL flagerror(localerror,err,error,*999)
222 CALL flagerror(
"Equations set is not associated.",err,error,*999)
225 exits(
"FluidMechanics_EquationsSetSpecificationSet")
227 999
errors(
"FluidMechanics_EquationsSetSpecificationSet",err,error)
228 exits(
"FluidMechanics_EquationsSetSpecificationSet")
242 INTEGER(INTG),
INTENT(IN) :: ELEMENT_NUMBER
243 INTEGER(INTG),
INTENT(OUT) :: ERR
248 enters(
"FLUID_MECHANICS_FINITE_ELEMENT_CALCULATE",err,error,*999)
250 IF(
ASSOCIATED(equations_set))
THEN 251 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 252 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
253 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 254 CALL flagerror(
"Equations set specification must have at least two entries for a fluid mechanics class equations set.", &
257 SELECT CASE(equations_set%SPECIFICATION(2))
261 CALL flagerror(
"There are no finite element matrices to be calculated for Navier-Stokes equation.",err,error,*999)
265 CALL flagerror(
"There is no element stiffness matrix to be calculated for Darcy pressure.",err,error,*999)
269 CALL flagerror(
"There are no finite element matrices to be calculated for Burgers equation.",err,error,*999)
271 CALL flagerror(
"There are no finite element matrices to be calculated for Characteristic equations.",err,error,*999)
275 local_error=
"Equations set type "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
276 &
" is not valid for a fluid mechanics equation set class." 277 CALL flagerror(local_error,err,error,*999)
280 CALL flagerror(
"Equations set is not associated",err,error,*999)
283 exits(
"FLUID_MECHANICS_FINITE_ELEMENT_CALCULATE")
285 999 errorsexits(
"FLUID_MECHANICS_FINITE_ELEMENT_CALCULATE",err,error)
298 INTEGER(INTG),
INTENT(IN) :: ELEMENT_NUMBER
299 INTEGER(INTG),
INTENT(OUT) :: ERR
304 enters(
"FluidMechanics_FiniteElementJacobianEvaluate",err,error,*999)
306 IF(
ASSOCIATED(equations_set))
THEN 307 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 308 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
309 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 310 CALL flagerror(
"Equations set specification must have at least two entries for a fluid mechanics class equations set.", &
313 SELECT CASE(equations_set%SPECIFICATION(2))
315 CALL flagerror(
"There is no Jacobian to be evaluated for Stokes.",err,error,*999)
317 CALL navierstokes_finiteelementjacobianevaluate(equations_set,element_number,err,error,*999)
319 CALL flagerror(
"Not implemented.",err,error,*999)
321 CALL flagerror(
"Not implemented.",err,error,*999)
323 CALL flagerror(
"There is no Jacobian to be evaluated for Poiseuille.",err,error,*999)
327 CALL flagerror(
"Not implemented.",err,error,*999)
329 local_error=
"Equations set type "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
330 &
" is not valid for a fluid mechanics equation set class." 331 CALL flagerror(local_error,err,error,*999)
334 CALL flagerror(
"Equations set is not associated",err,error,*999)
337 exits(
"FluidMechanics_FiniteElementJacobianEvaluate")
339 999
errors(
"FluidMechanics_FiniteElementJacobianEvaluate",err,error)
340 exits(
"FluidMechanics_FiniteElementJacobianEvaluate")
354 INTEGER(INTG),
INTENT(IN) :: ELEMENT_NUMBER
355 INTEGER(INTG),
INTENT(OUT) :: ERR
360 enters(
"FluidMechanics_FiniteElementResidualEvaluate",err,error,*999)
362 IF(
ASSOCIATED(equations_set))
THEN 363 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 364 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
365 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 366 CALL flagerror(
"Equations set specification must have at least two entries for a fluid mechanics class equations set.", &
369 SELECT CASE(equations_set%SPECIFICATION(2))
371 CALL flagerror(
"There is no residual to be evaluated for Stokes.",err,error,*999)
373 CALL navierstokes_finiteelementresidualevaluate(equations_set,element_number,err,error,*999)
375 CALL flagerror(
"Not implemented.",err,error,*999)
379 CALL flagerror(
"There is no residual to be evaluated for Poiseuille.",err,error,*999)
383 CALL flagerror(
"Not implemented.",err,error,*999)
385 local_error=
"Equations set type "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
386 &
" is not valid for a fluid mechanics equation set class." 387 CALL flagerror(local_error,err,error,*999)
390 CALL flagerror(
"Equations set is not associated",err,error,*999)
393 exits(
"FluidMechanics_FiniteElementResidualEvaluate")
395 999
errors(
"FluidMechanics_FiniteElementResidualEvaluate",err,error)
396 exits(
"FluidMechanics_FiniteElementResidualEvaluate")
410 INTEGER(INTG),
INTENT(IN) :: nodeNumber
411 INTEGER(INTG),
INTENT(OUT) :: err
416 enters(
"FluidMechanics_NodalJacobianEvaluate",err,error,*999)
418 IF(
ASSOCIATED(equationsset))
THEN 419 IF(.NOT.
ALLOCATED(equationsset%specification))
THEN 420 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
421 ELSE IF(
SIZE(equationsset%specification,1)<2)
THEN 422 CALL flagerror(
"Equations set specification must have at least two entries for a fluid mechanics class equations set.", &
425 SELECT CASE(equationsset%specification(2))
427 CALL flagerror(
"Not implemented.",err,error,*999)
429 CALL flagerror(
"Not implemented.",err,error,*999)
431 CALL flagerror(
"Not implemented.",err,error,*999)
433 CALL flagerror(
"Not implemented.",err,error,*999)
435 CALL flagerror(
"Not implemented.",err,error,*999)
437 CALL flagerror(
"Not implemented.",err,error,*999)
441 localerror=
"Equations set type "//
trim(
number_to_vstring(equationsset%specification(2),
"*",err,error))// &
442 &
" is not valid for a fluid mechanics equation set class." 443 CALL flagerror(localerror,err,error,*999)
446 CALL flagerror(
"Equations set is not associated",err,error,*999)
449 exits(
"FluidMechanics_NodalJacobianEvaluate")
451 999 errorsexits(
"FluidMechanics_NodalJacobianEvaluate",err,error)
464 INTEGER(INTG),
INTENT(IN) :: nodeNumber
465 INTEGER(INTG),
INTENT(OUT) :: err
470 enters(
"FluidMechanics_NodalResidualEvaluate",err,error,*999)
472 IF(
ASSOCIATED(equationsset))
THEN 473 IF(.NOT.
ALLOCATED(equationsset%specification))
THEN 474 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
475 ELSE IF(
SIZE(equationsset%specification,1)<2)
THEN 476 CALL flagerror(
"Equations set specification must have at least two entries for a fluid mechanics class equations set.", &
479 SELECT CASE(equationsset%specification(2))
481 CALL flagerror(
"Not implemented.",err,error,*999)
483 CALL flagerror(
"Not implemented.",err,error,*999)
485 CALL flagerror(
"Not implemented.",err,error,*999)
487 CALL flagerror(
"Not implemented.",err,error,*999)
489 CALL flagerror(
"Not implemented.",err,error,*999)
491 CALL flagerror(
"Not implemented.",err,error,*999)
495 localerror=
"Equations set type "//
trim(
number_to_vstring(equationsset%specification(2),
"*",err,error))// &
496 &
" is not valid for a fluid mechanics equation set class." 497 CALL flagerror(localerror,err,error,*999)
500 CALL flagerror(
"Equations set is not associated",err,error,*999)
503 exits(
"FluidMechanics_NodalResidualEvaluate")
505 999 errorsexits(
"FluidMechanics_NodalResidualEvaluate",err,error)
519 INTEGER(INTG),
INTENT(OUT) :: ERR
524 enters(
"FLUID_MECHANICS_EQUATIONS_SET_SETUP",err,error,*999)
526 IF(
ASSOCIATED(equations_set))
THEN 527 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 528 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
529 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 530 CALL flagerror(
"Equations set specification must have at least two entries for a fluid mechanics class equations set.", &
533 SELECT CASE(equations_set%SPECIFICATION(2))
537 CALL navier_stokes_equations_set_setup(equations_set,equations_set_setup,err,error,*999)
551 local_error=
"Equation set type "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
552 &
" is not valid for a fluid mechanics equation set class." 553 CALL flagerror(local_error,err,error,*999)
556 CALL flagerror(
"Equations set is not associated.",err,error,*999)
559 exits(
"FLUID_MECHANICS_EQUATIONS_SET_SETUP")
561 999 errorsexits(
"FLUID_MECHANICS_EQUATIONS_SET_SETUP",err,error)
575 INTEGER(INTG),
INTENT(IN) :: SOLUTION_METHOD
576 INTEGER(INTG),
INTENT(OUT) :: ERR
581 enters(
"FLUID_MECHANICS_EQUATIONS_SOLUTION_METHOD_SET",err,error,*999)
583 IF(
ASSOCIATED(equations_set))
THEN 584 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 585 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
586 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 587 CALL flagerror(
"Equations set specification must have at least two entries for a fluid mechanics class equations set.", &
590 SELECT CASE(equations_set%SPECIFICATION(2))
594 CALL navierstokes_equationssetsolutionmethodset(equations_set,solution_method,err,error,*999)
606 local_error=
"Equations set equation type of "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
607 &
" is not valid for a fluid mechancis equations set class." 608 CALL flagerror(local_error,err,error,*999)
611 CALL flagerror(
"Equations set is not associated.",err,error,*999)
614 exits(
"FluidMechanics_EquationsSetSolutionMethodSet")
616 999
errors(
"FluidMechanics_EquationsSetSolutionMethodSet",err,error)
617 exits(
"FluidMechanics_EquationsSetSolutionMethodSet")
632 INTEGER(INTG),
INTENT(OUT) :: ERR
637 enters(
"FluidMechanics_BoundaryConditionsAnalyticCalculate",err,error,*999)
639 IF(
ASSOCIATED(equations_set))
THEN 640 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 641 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
642 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 643 CALL flagerror(
"Equations set specification must have at least two entries for a fluid mechanics class equations set.", &
646 SELECT CASE(equations_set%SPECIFICATION(2))
652 CALL navierstokes_boundaryconditionsanalyticcalculate(equations_set,boundary_conditions,err,error,*999)
656 CALL flagerror(
"Not implemented.",err,error,*999)
660 CALL flagerror(
"Not implemented.",err,error,*999)
662 local_error=
"Equations set equation type of "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
663 &
" is not valid for a fluid mechanics equations set class." 664 CALL flagerror(local_error,err,error,*999)
667 CALL flagerror(
"Equations set is not associated",err,error,*999)
670 exits(
"FluidMechanics_BoundaryConditionsAnalyticCalculate")
672 999
errors(
"FluidMechanics_BoundaryConditionsAnalyticCalculate",err,error)
673 exits(
"FluidMechanics_BoundaryConditionsAnalyticCalculate")
687 INTEGER(INTG),
INTENT(IN) :: problemSpecification(:)
688 INTEGER(INTG),
INTENT(OUT) :: err
692 INTEGER(INTG) :: problemType
694 enters(
"FluidMechanics_ProblemSpecificationSet",err,error,*999)
696 IF(
ASSOCIATED(problem))
THEN 697 IF(
SIZE(problemspecification,1)>=2)
THEN 698 problemtype=problemspecification(2)
699 SELECT CASE(problemtype)
703 CALL navierstokes_problemspecificationset(problem,problemspecification,err,error,*999)
711 localerror=
"The second problem specification of "//
trim(
numbertovstring(problemtype,
"*",err,error))// &
712 &
" is not valid for a fluid mechanics problem." 713 CALL flagerror(localerror,err,error,*999)
716 CALL flagerror(
"Fluid mechanics problem specification must have a type set.",err,error,*999)
719 CALL flagerror(
"Problem is not associated",err,error,*999)
722 exits(
"FluidMechanics_ProblemSpecificationSet")
724 999
errors(
"FluidMechanics_ProblemSpecificationSet",err,error)
725 exits(
"FluidMechanics_ProblemSpecificationSet")
740 INTEGER(INTG),
INTENT(OUT) :: ERR
745 enters(
"FLUID_MECHANICS_PROBLEM_SETUP",err,error,*999)
747 IF(
ASSOCIATED(problem))
THEN 748 IF(.NOT.
ALLOCATED(problem%specification))
THEN 749 CALL flagerror(
"Problem specification is not allocated.",err,error,*999)
750 ELSE IF(
SIZE(problem%specification,1)<2)
THEN 751 CALL flagerror(
"Problem specification must have at least two entries for a fluid mechanics problem.",err,error,*999)
753 SELECT CASE(problem%SPECIFICATION(2))
757 CALL navier_stokes_problem_setup(problem,problem_setup,err,error,*999)
766 &
" is not valid for a fluid mechanics problem class." 767 CALL flagerror(local_error,err,error,*999)
770 CALL flagerror(
"Problem is not associated.",err,error,*999)
773 exits(
"FLUID_MECHANICS_PROBLEM_SETUP")
775 999 errorsexits(
"FLUID_MECHANICS_PROBLEM_SETUP",err,error)
789 INTEGER(INTG),
INTENT(OUT) :: ERR
794 enters(
"FLUID_MECHANICS_POST_SOLVE",err,error,*999)
796 IF(
ASSOCIATED(control_loop%PROBLEM))
THEN 797 IF(.NOT.
ALLOCATED(control_loop%problem%specification))
THEN 798 CALL flagerror(
"Problem specification is not allocated.",err,error,*999)
799 ELSE IF(
SIZE(control_loop%problem%specification,1)<2)
THEN 800 CALL flagerror(
"Problem specification must have at least two entries for a fluid mechanics problem.",err,error,*999)
802 SELECT CASE(control_loop%PROBLEM%SPECIFICATION(2))
806 CALL navier_stokes_post_solve(solver,err,error,*999)
814 local_error=
"Problem type "//
trim(
number_to_vstring(control_loop%PROBLEM%SPECIFICATION(2),
"*",err,error))// &
815 &
" is not valid for a fluid mechanics problem class." 816 CALL flagerror(local_error,err,error,*999)
819 CALL flagerror(
"Problem is not associated.",err,error,*999)
822 exits(
"FLUID_MECHANICS_POST_SOLVE")
824 999 errorsexits(
"FLUID_MECHANICS_POST_SOLVE",err,error)
838 INTEGER(INTG),
INTENT(OUT) :: ERR
843 enters(
"FLUID_MECHANICS_PRE_SOLVE",err,error,*999)
845 IF(
ASSOCIATED(control_loop%PROBLEM))
THEN 846 IF(.NOT.
ALLOCATED(control_loop%problem%specification))
THEN 847 CALL flagerror(
"Problem specification is not allocated.",err,error,*999)
848 ELSE IF(
SIZE(control_loop%problem%specification,1)<2)
THEN 849 CALL flagerror(
"Problem specification must have at least two entries for a fluid mechanics problem.",err,error,*999)
851 SELECT CASE(control_loop%PROBLEM%SPECIFICATION(2))
855 CALL navier_stokes_pre_solve(solver,err,error,*999)
863 local_error=
"Problem type "//
trim(
number_to_vstring(control_loop%PROBLEM%SPECIFICATION(2),
"*",err,error))// &
864 &
" is not valid for a fluid mechanics problem class." 865 CALL flagerror(local_error,err,error,*999)
868 CALL flagerror(
"Problem is not associated.",err,error,*999)
871 exits(
"FLUID_MECHANICS_PRE_SOLVE")
873 999 errorsexits(
"FLUID_MECHANICS_PRE_SOLVE",err,error)
886 INTEGER(INTG),
INTENT(OUT) :: ERR
891 enters(
"FLUID_MECHANICS_CONTROL_LOOP_PRE_LOOP",err,error,*999)
893 IF(
ASSOCIATED(control_loop%PROBLEM))
THEN 894 SELECT CASE(control_loop%LOOP_TYPE)
896 IF(.NOT.
ALLOCATED(control_loop%problem%specification))
THEN 897 CALL flagerror(
"Problem specification is not allocated.",err,error,*999)
898 ELSE IF(
SIZE(control_loop%problem%specification,1)<2)
THEN 899 CALL flagerror(
"Problem specification must have at least two entries for a fluid mechanics problem.",err,error,*999)
901 SELECT CASE(control_loop%PROBLEM%SPECIFICATION(2))
913 local_error=
"Problem type "//
trim(
number_to_vstring(control_loop%PROBLEM%SPECIFICATION(2),
"*",err,error))// &
914 &
" is not valid for a fluid mechanics problem class." 915 CALL flagerror(local_error,err,error,*999)
921 CALL flagerror(
"Problem is not associated.",err,error,*999)
924 exits(
"FLUID_MECHANICS_CONTROL_LOOP_PRE_LOOP")
926 999 errorsexits(
"FLUID_MECHANICS_CONTROL_LOOP_PRE_LOOP",err,error)
939 INTEGER(INTG),
INTENT(OUT) :: ERR
944 enters(
"FLUID_MECHANICS_CONTROL_LOOP_POST_LOOP",err,error,*999)
946 IF(
ASSOCIATED(control_loop%PROBLEM))
THEN 947 SELECT CASE(control_loop%LOOP_TYPE)
949 IF(.NOT.
ALLOCATED(control_loop%problem%specification))
THEN 950 CALL flagerror(
"Problem specification is not allocated.",err,error,*999)
951 ELSE IF(
SIZE(control_loop%problem%specification,1)<2)
THEN 952 CALL flagerror(
"Problem specification must have at least two entries for a fluid mechanics problem.",err,error,*999)
954 SELECT CASE(control_loop%PROBLEM%SPECIFICATION(2))
958 CALL navierstokes_controllooppostloop(control_loop,err,error,*999)
966 local_error=
"The second problem specification of "// &
968 &
" is not valid for a fluid mechanics problem." 969 CALL flagerror(local_error,err,error,*999)
975 CALL flagerror(
"Problem is not associated.",err,error,*999)
978 exits(
"FLUID_MECHANICS_CONTROL_LOOP_POST_LOOP")
980 999 errorsexits(
"FLUID_MECHANICS_CONTROL_LOOP_POST_LOOP",err,error)
994 INTEGER(INTG),
INTENT(OUT) :: err
999 enters(
"FluidMechanics_FiniteElementPreResidualEvaluate",err,error,*999)
1001 IF(
ASSOCIATED(equationsset))
THEN 1002 SELECT CASE(equationsset%specification(2))
1006 CALL navierstokes_finiteelementpreresidualevaluate(equationsset,err,error,*999)
1018 localerror=
"The second equations set specificaiton of "// &
1020 &
" is not valid for a fluid mechanics equation set." 1021 CALL flagerror(localerror,err,error,*999)
1024 CALL flagerror(
"Equations set is not associated",err,error,*999)
1027 exits(
"FluidMechanics_FiniteElementPreResidualEvaluate")
1029 999
errors(
"FluidMechanics_FiniteElementPreResidualEvaluate",err,error)
1030 exits(
"FluidMechanics_FiniteElementPreResidualEvaluate")
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 poiseuille_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a Poiseuille fluid mechanics equations set.
subroutine, public burgers_equation_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the Burgers equation type of a fluid mechanics equations set class.
subroutine, public fluidmechanics_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for a fluid mechanics problem class.
This module handles pure advection equation routines.
subroutine, public poiseuille_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for a Poiseuille problem.
integer(intg), parameter problem_control_time_loop_type
Time control loop.
This module handles all problem wide constants.
integer(intg), parameter problem_poiseuille_equation_type
Converts a number to its equivalent varying string representation.
Contains information on the type of solver to be used.
subroutine, public fluid_mechanics_pre_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the output type for a fluid mechanics problem class.
subroutine, public stokes_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the Stokes problem.
subroutine, public fluid_mechanics_control_loop_post_loop(CONTROL_LOOP, ERR, ERROR,)
Executes after each loop of a control loop, ie after each time step for a time loop.
subroutine, public stokes_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the standard Stokes fluid setup.
subroutine, public stokes_pre_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the Stokes problem pre solve.
subroutine, public fluidmechanics_finiteelementpreresidualevaluate(equationsSet, err, error,)
Pre-residual steps for an fluid mechanics class finite element equation set.
Contains information on an equations set.
This module contains all string manipulation and transformation routines.
subroutine, public darcy_control_time_loop_pre_loop(CONTROL_LOOP, ERR, ERROR,)
subroutine, public darcy_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a Darcy equation type of a fluid mechanics equations set class...
subroutine, public poiseuille_finiteelementcalculate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element stiffness matrices and RHS for a Poiseuille equation finite element equations ...
integer(intg), parameter problem_control_simple_type
Simple, one iteration control loop.
integer(intg), parameter problem_stokes_equation_type
integer(intg), parameter equations_set_stree_equation_type
subroutine, public stokes_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a Stokes flow equation type of an fluid mechanics equations set ...
subroutine, public stree_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a Stree type of a fluid mechanics equations set.
subroutine, public poiseuille_post_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the Poiseuille problem post solve.
subroutine, public darcypressure_equationssetspecificationset(equationsSet, specification, err, error,)
Sets/changes the equation specification for a Darcy pressure type of a fluid mechanics equations set...
Contains information on a control loop.
subroutine, public burgers_boundaryconditionsanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Calculates the analytic solution and sets the boundary conditions for an analytic problem...
subroutine, public burgers_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a burgers equation type of an fluid mechanics equations set clas...
This module provides an iso_varying_string module, conformant to the API specified in ISO/IEC 1539-2:...
subroutine, public fluidmechanics_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the problem specification for a fluid mechanics equation set class.
subroutine, public stokes_post_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the Stokes problem post solve.
subroutine, public fluidmechanics_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a fluid mechanics equation set class.
subroutine, public darcy_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for a Darcy problem.
subroutine, public burgers_finiteelementresidualevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Evaluates the residual element stiffness matrices and RHS for a Burgers equation finite element equat...
subroutine, public poiseuille_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a Poiseuille equation type of an fluid mechanics equations set c...
This module handles all Stree equation routines.
subroutine, public darcypressure_finiteelementresidualevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element residual vector and RHS for a Darcy pressure equation finite element equations...
This module handles all Darcy equations routines.
integer(intg), parameter problem_navier_stokes_equation_type
subroutine, public darcy_equation_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the Darcy equations problem.
integer(intg), parameter problem_darcy_equation_type
subroutine, public darcy_boundaryconditionsanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Calculates the analytic solution and sets the boundary conditions for an analytic problem...
subroutine, public burgers_equation_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the Burgers problem.
integer(intg), parameter problem_burgers_equation_type
subroutine, public exits(NAME)
Records the exit out of the named procedure.
subroutine, public darcy_equation_finite_element_calculate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element stiffness matrices and RHS for a Darcy equation finite element equations set...
subroutine, public fluidmechanics_boundaryconditionsanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Sets the analytic boundary conditions for a fluid mechanics equation set class.
This module contains all type definitions in order to avoid cyclic module references.
subroutine, public stree_finite_element_calculate(equationsSet, nodeNumber, err, error,)
Evaluates the residual nodal stiffness matrices and RHS for a Stree equation nodal equations set...
This module contains all the low-level base routines e.g., all debug, control, and low-level communic...
subroutine, public burgers_equation_pre_solve(SOLVER, ERR, ERROR,)
Sets up the BURGERS problem pre-solve.
This module handles all fluid mechanics class routines.
subroutine, public stokes_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a Stokes flow equation of a fluid mechanics equations set...
This module handles all Darcy pressure equations routines.
This module handles all Stokes fluid routines.
subroutine, public burgers_finiteelementjacobianevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Evaluates the Jacobian element stiffness matrices for a BURGERS equation finite element equations set...
subroutine, public stree_equationssetsetup(equationsSet, equationsSetSetup, err, error,)
Sets up the Stree equations fluid setup.
subroutine, public darcy_pressure_equation_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the Darcy pressure equation type of a fluid mechanics equations set class.
subroutine, public stokes_finite_element_calculate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element stiffness matrices and RHS for a Stokes fluid finite element equations set...
subroutine, public fluidmechanics_finiteelementresidualevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Evaluates the element residual and rhs vectors for the given element number for a fluid mechanics cla...
subroutine, public poiseuille_pre_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the Poiseuille problem pre solve.
integer(intg), parameter equations_set_darcy_equation_type
subroutine, public burgers_equation_post_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the Burgers problem post solve.
subroutine, public fluidmechanics_nodaljacobianevaluate(equationsSet, nodeNumber, err, error,)
Evaluates the nodal Jacobian matrix for the given node number for a fluid mechanics class nodal equat...
subroutine, public fluid_mechanics_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the problem for a fluid mechanics problem class.
subroutine, public poiseuille_boundaryconditionsanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Calculates the analytic solution and sets the boundary conditions for an analytic problem...
subroutine, public burgers_analyticfunctionsevaluate(EQUATIONS_SET, ANALYTIC_FUNCTION_TYPE, X, TANGENTS, NORMAL, TIME, VARIABLE_TYPE, GLOBAL_DERIVATIVE, COMPONENT_NUMBER, ANALYTIC_PARAMETERS, MATERIALS_PARAMETERS, VALUE, ERR, ERROR,)
Evaluate the analytic solutions for a Burgers equation.
subroutine, public fluidmechanics_finiteelementjacobianevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Evaluates the element Jacobian matrix for the given element number for a fluid mechanics class finite...
Contains information for a problem.
subroutine, public characteristic_equationssetsetup(equationsSet, equationsSetSetup, err, error,)
Sets up the Characteristic equations fluid setup.
integer(intg), parameter equations_set_poiseuille_equation_type
subroutine, public darcy_equation_pre_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the Darcy problem pre-solve.
subroutine, public burgers_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a Burgers type of a fluid mechanics equations set...
This module handles all Navier-Stokes fluid routines.
subroutine, public burgers_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for a Burgers problem.
This module handles all Poiseuille equations routines.
subroutine, public fluid_mechanics_analytic_functions_evaluate(EQUATIONS_SET, ANALYTIC_FUNCTION_TYPE, POSITION, TANGENTS, NORMAL, TIME, VARIABLE_TYPE, GLOBAL_DERIVATIVE, COMPONENT_NUMBER, ANALYTIC_PARAMETERS, MATERIALS_PARAMETERS, VALUE, ERR, ERROR,)
Evaluate the analytic solution for a fluid mechanics equations set.
subroutine, public poiseuille_equation_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the Poiseuille problem.
subroutine, public characteristic_equationssetsolutionmethodset(equationsSet, solutionMethod, err, error,)
Sets/changes the solution method for a Characteristic equation type of an fluid mechanics equations s...
subroutine, public fluid_mechanics_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the equations set for a fluid mechanics equations set class.
subroutine, public darcy_equation_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the Darcy equation.
subroutine, public fluid_mechanics_post_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the output type for a fluid mechanics problem class.
subroutine, public darcy_equation_post_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the Darcy problem post solve.
This module handles all characteristic equation routines.
Contains information on the setup information for an equations set.
subroutine, public fluidmechanics_nodalresidualevaluate(equationsSet, nodeNumber, err, error,)
Evaluates the nodal residual and rhs vectors for the given node number for a fluid mechanics class no...
This module handles all control loop routines.
integer(intg), parameter equations_set_characteristic_equation_type
subroutine, public errors(NAME, ERR, ERROR)
Records the exiting error of the subroutine.
This module defines all constants shared across equations set routines.
subroutine, public characteristic_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a Characteristic type of a fluid mechanics equations set class...
integer(intg), parameter equations_set_burgers_equation_type
integer(intg), parameter equations_set_darcy_pressure_equation_type
subroutine, public fluid_mechanics_control_loop_pre_loop(CONTROL_LOOP, ERR, ERROR,)
Executes before each loop of a control loop, ie before each time step for a time loop.
subroutine, public stokes_boundaryconditionsanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Calculates the analytic solution and sets the boundary conditions for an analytic problem...
subroutine, public characteristic_nodaljacobianevaluate(equationsSet, nodeNumber, err, error,)
Evaluates the Jacobian nodal matrix for a characteristic equation nodal equations set...
subroutine, public characteristic_nodalresidualevaluate(equationsSet, nodeNumber, err, error,)
Evaluates the residual nodal stiffness matrices and RHS for a characteristic equation nodal equations...
Flags an error condition.
subroutine, public fluid_mechanics_finite_element_calculate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element stiffness matries and rhs vector for the given element number for a fluid mech...
subroutine, public darcypressure_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a Darcy pressure equation type of an fluid mechanics equations s...
integer(intg), parameter problem_control_while_loop_type
While control loop.
integer(intg), parameter equations_set_stokes_equation_type
subroutine, public stokes_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for a Stokes fluid problem.
subroutine, public poiseuille_equation_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the Poiseuille equation type of a fluid mechanics equations set class.
This module contains all kind definitions.
This module handles all Burgers equation routines.
integer(intg), parameter equations_set_navier_stokes_equation_type