107 & normal,time,variable_type,global_derivative,component_number,analytic_parameters,materials_parameters,
VALUE,err,error,*)
111 INTEGER(INTG),
INTENT(IN) :: EQUATIONS_TYPE
112 INTEGER(INTG),
INTENT(IN) :: ANALYTIC_FUNCTION_TYPE
113 REAL(DP),
INTENT(IN) :: POSITION(:)
114 REAL(DP),
INTENT(IN) :: TANGENTS(:,:)
115 REAL(DP),
INTENT(IN) :: NORMAL(:)
116 REAL(DP),
INTENT(IN) :: TIME
117 INTEGER(INTG),
INTENT(IN) :: VARIABLE_TYPE
118 INTEGER(INTG),
INTENT(IN) :: GLOBAL_DERIVATIVE
119 INTEGER(INTG),
INTENT(IN) :: COMPONENT_NUMBER
120 REAL(DP),
INTENT(IN) :: ANALYTIC_PARAMETERS(:)
121 REAL(DP),
INTENT(IN) :: MATERIALS_PARAMETERS(:)
122 REAL(DP),
INTENT(OUT) ::
VALUE 123 INTEGER(INTG),
INTENT(OUT) :: ERR
128 enters(
"CLASSICAL_FIELD_ANALYTIC_FUNCTIONS_EVALUATE",err,error,*999)
130 IF(
ASSOCIATED(equations_set))
THEN 133 CALL flagerror(
"Not implemented.",err,error,*999)
135 CALL flagerror(
"Not implemented.",err,error,*999)
137 CALL flagerror(
"Not implemented.",err,error,*999)
139 CALL flagerror(
"Not implemented.",err,error,*999)
141 CALL flagerror(
"Not implemented.",err,error,*999)
144 & tangents,normal,time,variable_type,global_derivative,component_number,analytic_parameters, &
145 & materials_parameters,
VALUE,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 &
" is not valid for a classical field equations set class." 157 CALL flagerror(local_error,err,error,*999)
160 CALL flagerror(
"Equations set is not associated.",err,error,*999)
163 exits(
"CLASSICAL_FIELD_ANALYTIC_FUNCTIONS_EVALUATE")
165 999 errorsexits(
"CLASSICAL_FIELD_ANALYTIC_FUNCTIONS_EVALUATE",err,error)
178 INTEGER(INTG),
INTENT(OUT) :: ERR
184 enters(
"CLASSICAL_FIELD_CONTROL_LOOP_POST_LOOP",err,error,*999)
186 IF(
ASSOCIATED(control_loop))
THEN 187 problem=>control_loop%PROBLEM
188 IF(
ASSOCIATED(problem))
THEN 189 SELECT CASE(control_loop%LOOP_TYPE)
191 SELECT CASE(problem%specification(2))
195 CALL reaction_diffusion_control_loop_post_loop(control_loop,err,error,*999)
197 local_error=
"The second problem specification of "// &
199 &
" is not valid for a classical field problem." 200 CALL flagerror(local_error,err,error,*999)
206 CALL flagerror(
"Control loop problem is not associated.",err,error,*999)
209 CALL flagerror(
"Control loop is not associated.",err,error,*999)
212 exits(
"CLASSICAL_FIELD_CONTROL_LOOP_POST_LOOP")
214 999 errorsexits(
"CLASSICAL_FIELD_LOOP_POST_LOOP",err,error)
228 INTEGER(INTG),
INTENT(IN) :: specification(:)
229 INTEGER(INTG),
INTENT(OUT) :: err
234 enters(
"ClassicalField_EquationsSetSpecificationSet",err,error,*999)
236 IF(
ASSOCIATED(equationsset))
THEN 237 IF(
SIZE(specification,1)<2)
THEN 238 CALL flagerror(
"Equations set specification must have at least two entries for a classical field class equations set.", &
241 SELECT CASE(specification(2))
245 CALL hjequation_equationssetspecificationset(equationsset,specification,err,error,*999)
249 CALL helmholtz_equationssetspecificationset(equationsset,specification,err,error,*999)
251 CALL flagerror(
"Not implemented.",err,error,*999)
259 CALL reactiondiffusion_equationssetspecificationset(equationsset,specification,err,error,*999)
261 CALL flagerror(
"Not implemented.",err,error,*999)
263 localerror=
"The second equations set specification of "//
trim(
numbertovstring(specification(2),
"*",err,error))// &
264 &
" is not valid for a classical field equations set." 265 CALL flagerror(localerror,err,error,*999)
268 CALL flagerror(
"Equations set is not associated",err,error,*999)
271 exits(
"ClassicalField_EquationsSetSpecificationSet")
273 999
errors(
"ClassicalField_EquationsSetSpecificationSet",err,error)
274 exits(
"ClassicalField_EquationsSetSpecificationSet")
288 INTEGER(INTG),
INTENT(IN) :: ELEMENT_NUMBER
289 INTEGER(INTG),
INTENT(OUT) :: ERR
294 enters(
"CLASSICAL_FIELD_FINITE_ELEMENT_CALCULATE",err,error,*999)
296 IF(
ASSOCIATED(equations_set))
THEN 297 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 298 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
299 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 300 CALL flagerror(
"Equations set specification must have at least two entries for a classical field class equations set.", &
303 SELECT CASE(equations_set%SPECIFICATION(2))
307 CALL hj_equation_finite_element_calculate(equations_set,element_number,err,error,*999)
311 CALL helmholtz_equation_finite_element_calculate(equations_set,element_number,err,error,*999)
313 CALL flagerror(
"Not implemented.",err,error,*999)
321 CALL reactiondiffusion_finiteelementcalculate(equations_set,element_number,err,error,*999)
323 CALL flagerror(
"Not implemented.",err,error,*999)
325 local_error=
"Equations set type "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
326 &
" is not valid for a classical field equation set class." 327 CALL flagerror(local_error,err,error,*999)
330 CALL flagerror(
"Equations set is not associated",err,error,*999)
333 exits(
"CLASSICAL_FIELD_FINITE_ELEMENT_CALCULATE")
335 999 errorsexits(
"CLASSICAL_FIELD_FINITE_ELEMENT_CALCULATE",err,error)
348 INTEGER(INTG),
INTENT(IN) :: ELEMENT_NUMBER
349 INTEGER(INTG),
INTENT(OUT) :: ERR
354 enters(
"ClassicalField_FiniteElementJacobianEvaluate",err,error,*999)
356 IF(
ASSOCIATED(equations_set))
THEN 357 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 358 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
359 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 360 CALL flagerror(
"Equations set specification must have at least two entries for a classical field class equations set.", &
363 SELECT CASE(equations_set%SPECIFICATION(2))
365 CALL flagerror(
"Not implemented.",err,error,*999)
367 CALL flagerror(
"Not implemented.",err,error,*999)
371 CALL flagerror(
"Not implemented.",err,error,*999)
373 CALL flagerror(
"Not implemented.",err,error,*999)
377 CALL flagerror(
"Not implemented.",err,error,*999)
379 CALL flagerror(
"Not implemented.",err,error,*999)
381 CALL flagerror(
"Not implemented.",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 classical field equation set class." 387 CALL flagerror(local_error,err,error,*999)
390 CALL flagerror(
"Equations set is not associated",err,error,*999)
393 exits(
"ClassicalField_FiniteElementJacobianEvaluate")
395 999
errors(
"ClassicalField_FiniteElementJacobianEvaluate",err,error)
396 exits(
"ClassicalField_FiniteElementJacobianEvaluate")
410 INTEGER(INTG),
INTENT(IN) :: ELEMENT_NUMBER
411 INTEGER(INTG),
INTENT(OUT) :: ERR
416 enters(
"ClassicalField_FiniteElementResidualEvaluate",err,error,*999)
418 IF(
ASSOCIATED(equations_set))
THEN 419 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 420 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
421 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 422 CALL flagerror(
"Equations set specification must have at least two entries for a classical field class equations set.", &
425 SELECT CASE(equations_set%SPECIFICATION(2))
427 CALL flagerror(
"Not implemented.",err,error,*999)
429 CALL flagerror(
"Not implemented.",err,error,*999)
433 CALL flagerror(
"Not implemented.",err,error,*999)
435 CALL flagerror(
"Not implemented.",err,error,*999)
439 CALL flagerror(
"Not implemented.",err,error,*999)
443 CALL flagerror(
"Not implemented.",err,error,*999)
445 CALL flagerror(
"Not implemented.",err,error,*999)
447 local_error=
"Equations set type "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
448 &
" is not valid for a classical field equation set class." 449 CALL flagerror(local_error,err,error,*999)
452 CALL flagerror(
"Equations set is not associated",err,error,*999)
455 exits(
"ClassicalField_FiniteElementResidualEvaluate")
457 999
errors(
"ClassicalField_FiniteElementResidualEvaluate",err,error)
458 exits(
"ClassicalField_FiniteElementResidualEvaluate")
473 INTEGER(INTG),
INTENT(OUT) :: ERR
478 enters(
"CLASSICAL_FIELD_EQUATIONS_SET_SETUP",err,error,*999)
480 IF(
ASSOCIATED(equations_set))
THEN 481 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 482 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
483 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 484 CALL flagerror(
"Equations set specification must have at least two entries for a classical field class equations set.", &
487 SELECT CASE(equations_set%SPECIFICATION(2))
491 CALL hj_equation_equations_set_setup(equations_set,equations_set_setup,err,error,*999)
495 CALL helmholtz_equation_equations_set_setup(equations_set,equations_set_setup,err,error,*999)
497 CALL flagerror(
"Not implemented.",err,error,*999)
505 CALL reactiondiffusion_equationssetsetup(equations_set,equations_set_setup,err,error,*999)
507 CALL flagerror(
"Not implemented.",err,error,*999)
509 local_error=
"Equation set type "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
510 &
" is not valid for a classical field equation set class." 511 CALL flagerror(local_error,err,error,*999)
514 CALL flagerror(
"Equations set is not associated.",err,error,*999)
517 exits(
"CLASSICAL_FIELD_EQUATIONS_SET_SETUP")
519 999 errorsexits(
"CLASSICAL_FIELD_EQUATIONS_SET_SETUP",err,error)
532 INTEGER(INTG),
INTENT(IN) :: SOLUTION_METHOD
533 INTEGER(INTG),
INTENT(OUT) :: ERR
538 enters(
"CLASSICAL_FIELD_EQUATIONS_SOLUTION_METHOD_SET",err,error,*999)
540 IF(
ASSOCIATED(equations_set))
THEN 541 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 542 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
543 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 544 CALL flagerror(
"Equations set specification must have at least two entries for a classical field class equations set.", &
547 SELECT CASE(equations_set%SPECIFICATION(2))
551 CALL hjequation_equationssetsolutionmethodset(equations_set,solution_method,err,error,*999)
555 CALL helmholtz_equationssetsolutionmethodset(equations_set,solution_method,err,error,*999)
557 CALL flagerror(
"Not implemented.",err,error,*999)
565 CALL reactiondiffusion_equationssetsolutionmethodset(equations_set,solution_method,err,error,*999)
567 CALL flagerror(
"Not implemented.",err,error,*999)
569 local_error=
"Equations set equation type of "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
570 &
" is not valid for a classical field equations set class." 571 CALL flagerror(local_error,err,error,*999)
574 CALL flagerror(
"Equations set is not associated",err,error,*999)
577 exits(
"ClassicalField_EquationsSetSolutionMethodSet")
579 999
errors(
"ClassicalField_EquationsSetSolutionMethodSet",err,error)
580 exits(
"ClassicalField_EquationsSetSolutionMethodSet")
595 INTEGER(INTG),
INTENT(OUT) :: ERR
600 enters(
"ClassicalField_BoundaryConditionsAnalyticCalculate",err,error,*999)
602 IF(
ASSOCIATED(equations_set))
THEN 603 IF(.NOT.
ALLOCATED(equations_set%SPECIFICATION))
THEN 604 CALL flagerror(
"Equations set specification is not allocated.",err,error,*999)
605 ELSE IF(
SIZE(equations_set%SPECIFICATION,1)<2)
THEN 606 CALL flagerror(
"Equations set specification must have at least two entries for a classical field class equations set.", &
609 SELECT CASE(equations_set%SPECIFICATION(2))
613 CALL hj_boundaryconditionsanalyticcalculate(equations_set,boundary_conditions,err,error,*999)
617 CALL helmholtz_boundaryconditionsanalyticcalculate(equations_set,boundary_conditions,err,error,*999)
619 CALL flagerror(
"Not implemented.",err,error,*999)
625 CALL flagerror(
"Not implemented.",err,error,*999)
627 CALL flagerror(
"Not implemented.",err,error,*999)
629 local_error=
"Equations set equation type of "//
trim(
number_to_vstring(equations_set%SPECIFICATION(2),
"*",err,error))// &
630 &
" is not valid for a classical field equations set class." 631 CALL flagerror(local_error,err,error,*999)
634 CALL flagerror(
"Equations set is not associated",err,error,*999)
637 exits(
"ClassicalField_BoundaryConditionsAnalyticCalculate")
639 999
errors(
"ClassicalField_BoundaryConditionsAnalyticCalculate",err,error)
640 exits(
"ClassicalField_BoundaryConditionsAnalyticCalculate")
654 INTEGER(INTG),
INTENT(IN) :: problemSpecification(:)
655 INTEGER(INTG),
INTENT(OUT) :: err
659 INTEGER(INTG) :: problemType
661 enters(
"ClassicalField_ProblemSpecificationSet",err,error,*999)
663 IF(
ASSOCIATED(problem))
THEN 664 IF(
SIZE(problemspecification,1)>=2)
THEN 665 problemtype=problemspecification(2)
666 SELECT CASE(problemtype)
670 CALL hjequation_problemspecificationset(problem,problemspecification,err,error,*999)
674 CALL helmholtz_problemspecificationset(problem,problemspecification,err,error,*999)
676 CALL flagerror(
"Not implemented.",err,error,*999)
684 CALL reactiondiffusion_problemspecificationset(problem,problemspecification,err,error,*999)
686 CALL flagerror(
"Not implemented.",err,error,*999)
688 localerror=
"The second problem specification of "//
trim(
numbertovstring(problemtype,
"*",err,error))// &
689 &
" is not valid for a classical field problem." 690 CALL flagerror(localerror,err,error,*999)
693 CALL flagerror(
"Classical field problem specification must have a type set.",err,error,*999)
696 CALL flagerror(
"Problem is not associated.",err,error,*999)
699 exits(
"ClassicalField_ProblemSpecificationSet")
701 999
errors(
"ClassicalField_ProblemSpecificationSet",err,error)
702 exits(
"ClassicalField_ProblemSpecificationSet")
717 INTEGER(INTG),
INTENT(OUT) :: ERR
722 enters(
"CLASSICAL_FIELD_PROBLEM_SETUP",err,error,*999)
724 IF(
ASSOCIATED(problem))
THEN 725 IF(.NOT.
ALLOCATED(problem%SPECIFICATION))
THEN 726 CALL flagerror(
"Problem specification is not allocated.",err,error,*999)
727 ELSE IF(
SIZE(problem%SPECIFICATION,1)<2)
THEN 728 CALL flagerror(
"Problem specification must have at least two entries for a classical field problem.",err,error,*999)
730 SELECT CASE(problem%SPECIFICATION(2))
734 CALL hj_equation_problem_setup(problem,problem_setup,err,error,*999)
738 CALL helmholtz_equation_problem_setup(problem,problem_setup,err,error,*999)
740 CALL flagerror(
"Not implemented.",err,error,*999)
748 CALL reaction_diffusion_equation_problem_setup(problem,problem_setup,err,error,*999)
750 CALL flagerror(
"Not implemented.",err,error,*999)
753 &
" is not valid for a classical field problem class." 754 CALL flagerror(local_error,err,error,*999)
757 CALL flagerror(
"Problem is not associated.",err,error,*999)
760 exits(
"CLASSICAL_FIELD_PROBLEM_SETUP")
762 999 errorsexits(
"CLASSICAL_FIELD_PROBLEM_SETUP",err,error)
776 INTEGER(INTG),
INTENT(OUT) :: ERR
781 enters(
"CLASSICAL_FIELD_PRE_SOLVE",err,error,*999)
783 IF(
ASSOCIATED(control_loop%PROBLEM))
THEN 784 IF(.NOT.
ALLOCATED(control_loop%PROBLEM%SPECIFICATION))
THEN 785 CALL flagerror(
"Problem specification is not allocated.",err,error,*999)
786 ELSE IF(
SIZE(control_loop%PROBLEM%SPECIFICATION,1)<2)
THEN 787 CALL flagerror(
"Problem specification must have at least two entries for a classical field problem.",err,error,*999)
789 SELECT CASE(control_loop%PROBLEM%SPECIFICATION(2))
807 CALL reaction_diffusion_pre_solve(solver,err,error,*999)
811 local_error=
"Problem type "//
trim(
number_to_vstring(control_loop%PROBLEM%SPECIFICATION(2),
"*",err,error))// &
812 &
" is not valid for a classical field problem class." 813 CALL flagerror(local_error,err,error,*999)
816 CALL flagerror(
"Problem is not associated.",err,error,*999)
819 exits(
"CLASSICAL_FIELD_PRE_SOLVE")
821 999 errorsexits(
"CLASSICAL_FIELD_PRE_SOLVE",err,error)
835 INTEGER(INTG),
INTENT(OUT) :: ERR
840 enters(
"CLASSICAL_FIELD_POST_SOLVE",err,error,*999)
842 IF(
ASSOCIATED(control_loop%PROBLEM))
THEN 843 IF(.NOT.
ALLOCATED(control_loop%PROBLEM%SPECIFICATION))
THEN 844 CALL flagerror(
"Problem specification is not allocated.",err,error,*999)
845 ELSE IF(
SIZE(control_loop%PROBLEM%SPECIFICATION,1)<2)
THEN 846 CALL flagerror(
"Problem specification must have at least two entries for a classical field problem.",err,error,*999)
848 SELECT CASE(control_loop%PROBLEM%SPECIFICATION(2))
866 CALL reaction_diffusion_post_solve(control_loop,solver,err,error,*999)
870 local_error=
"Problem type "//
trim(
number_to_vstring(control_loop%PROBLEM%SPECIFICATION(2),
"*",err,error))// &
871 &
" is not valid for a classical field problem class." 872 CALL flagerror(local_error,err,error,*999)
875 CALL flagerror(
"Problem is not associated.",err,error,*999)
878 exits(
"CLASSICAL_FIELD_POST_SOLVE")
880 999 errorsexits(
"CLASSICAL_FIELD_POST_SOLVE",err,error)
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 advectiondiffusion_finiteelementcalculate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element stiffness matrices and RHS for a diffusion equation finite element equations s...
subroutine, public diffusion_equation_control_loop_post_loop(CONTROL_LOOP, ERR, ERROR,)
Runs after each control loop iteration.
This module handles pure advection equation routines.
Contains information about the equations in an equations set.
integer(intg), parameter problem_control_time_loop_type
Time control loop.
integer(intg), parameter problem_laplace_equation_type
integer(intg), parameter problem_biharmonic_equation_type
This module handles all problem wide constants.
subroutine, public advection_pre_solve(SOLVER, ERR, ERROR,)
Sets up the Poisson problem pre solve.
Converts a number to its equivalent varying string representation.
subroutine, public poisson_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a Poisson equation type of an classical field equations set clas...
subroutine, public classical_field_finite_element_calculate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element stiffness matries and rhs vector for the given element number for a clasical f...
Contains information on the type of solver to be used.
This module handles all Hamilton-Jacobi equations routines.
subroutine, public classical_field_pre_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the output type for a classical field problem class.
subroutine, public advectiondiffusion_equationssetsetup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the diffusion equation type of a classical field equations set class.
subroutine, public diffusion_equation_pre_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the diffusion problem pre-solve.
This module handles all Laplace equations routines.
subroutine, public diffusion_boundaryconditionanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Calculates the analytic solution and sets the boundary conditions for an analytic problem...
subroutine, public classicalfield_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for a classical field problem class.
Contains information on an equations set.
This module contains all string manipulation and transformation routines.
subroutine, public laplace_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a Laplace type of a classical field equations set...
subroutine, public classical_field_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the problem for a classical field problem class.
subroutine, public classical_field_post_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the output type for a classical field problem class.
subroutine, public poisson_pre_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the Poisson problem pre solve.
integer(intg), parameter equations_set_poisson_equation_type
integer(intg), parameter equations_set_laplace_equation_type
integer(intg), parameter problem_hj_equation_type
subroutine, public diffusion_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for a diffusion equation problem.
subroutine, public advectiondiffusion_boundaryconditionsanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Calculates the analytic solution and sets the boundary conditions for an analytic problem...
Contains information on a control loop.
subroutine, public laplace_equation_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the Laplace problem.
subroutine, public advectiondiffusion_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for an advection diffusion problem type.
This module provides an iso_varying_string module, conformant to the API specified in ISO/IEC 1539-2:...
subroutine, public classicalfield_finiteelementjacobianevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Evaluates the element Jacobian matrix for the given element number for a clasical field class finite ...
This module handles all classical field class routines.
subroutine, public poisson_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a Poisson equation type of a classical field equations set class...
subroutine, public poisson_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for a Poisson equation type.
subroutine, public advection_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for an advection type of a classical field equations set...
subroutine, public diffusion_finiteelementjacobianevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Evaluates the Jacobian element stiffness matrices for a diffusion equation finite element equations s...
This module handles all Poisson equations routines.
subroutine, public laplace_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a Laplace equation type of an classical field equations set clas...
This module handles all advection-diffusion equation routines.
subroutine, public exits(NAME)
Records the exit out of the named procedure.
subroutine, public classicalfield_boundaryconditionsanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Sets the analytic boundary conditions for a classical field equation set class.
This module contains all type definitions in order to avoid cyclic module references.
subroutine, public advectiondiffusion_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a diffusion equation type of a classical field equations set clas...
integer(intg), parameter equations_set_helmholtz_equation_type
subroutine, public advection_equationssetsetup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the diffusion equation type of a classical field equations set class.
integer(intg), parameter equations_set_advection_equation_type
subroutine, public diffusion_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 diffusion equation.
This module contains all the low-level base routines e.g., all debug, control, and low-level communic...
subroutine, public advection_diffusion_pre_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the diffusion equations.
subroutine, public classicalfield_finiteelementresidualevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Evaluates the element residual and rhs vectors for the given element number for a clasical field clas...
subroutine, public classicalfield_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equations set specification for a classical field equation set.
This module handles all Helmholtz equations routines.
subroutine, public poisson_equation_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the Poisson problem.
subroutine, public poisson_post_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the Poisson problem post solve.
subroutine, public poisson_equation_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the Poisson equation type of a classical field equations set class.
subroutine, public diffusion_equation_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the diffusion equation type of a classical field equations set class.
subroutine, public poisson_equation_finite_element_calculate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element stiffness matrices and RHS for a Poisson equation finite element equations set...
subroutine, public classical_field_control_loop_post_loop(CONTROL_LOOP, ERR, ERROR,)
Executes after each loop of a control loop for bioelectric problems, i.e., after each time step for a...
subroutine, public diffusion_equation_finite_element_calculate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element stiffness matrices and RHS for a diffusion equation finite element equations s...
Contains information for a problem.
subroutine, public classical_field_analytic_functions_evaluate(EQUATIONS_SET, EQUATIONS_TYPE, 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 classical field equations set.
integer(intg), parameter equations_set_hj_equation_type
integer(intg), parameter equations_set_biharmonic_equation_type
subroutine, public diffusion_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a diffusion equation type of an classical field equations set cl...
subroutine, public laplace_equation_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the Laplace equation type of a classical field equations set class.
integer(intg), parameter problem_helmholtz_equation_type
subroutine, public laplace_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for a Laplace equation type.
integer(intg), parameter equations_set_diffusion_equation_type
integer(intg), parameter problem_advection_diffusion_equation_type
integer(intg), parameter problem_poisson_equation_type
This module handles all reaction diffusion equation routines.
subroutine, public classicalfield_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a classical field equation set class.
integer(intg), parameter equations_set_reaction_diffusion_equation_type
integer(intg), parameter problem_wave_equation_type
subroutine, public diffusion_equation_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the diffusion problem.
subroutine, public advection_diffusion_equation_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the diffusion problem.
subroutine, public advection_equation_finite_element_calculate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Calculates the element stiffness matrices for an advection equation finite element equations set...
integer(intg), parameter equations_set_advection_diffusion_equation_type
subroutine, public laplaceequation_finiteelementcalculate(equationsSet, elementNumber, err, error,)
Calculates the element stiffness matrices and RHS for a Laplace equation finite element equations set...
Contains information on the setup information for an equations set.
subroutine, public advection_equationssetsolutionmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for an advection equation type of an classical field equations set c...
subroutine, public laplace_boundaryconditionsanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Calculates the analytic solution and sets the boundary conditions for an analytic problem...
subroutine, public poisson_finiteelementjacobianevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Evaluates the Jacobian element stiffness matrices and RHS for a Poisson equation finite element equat...
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 advectiondiffusion_equationssetsolnmethodset(EQUATIONS_SET, SOLUTION_METHOD, ERR, ERROR,)
Sets/changes the solution method for a diffusion equation type of an classical field equations set cl...
subroutine, public diffusion_finiteelementresidualevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Evaluates the residual element stiffness matrices and RHS for a Diffusion equation finite element equ...
subroutine, public advection_diffusion_post_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
integer(intg), parameter equations_set_wave_equation_type
subroutine, public poisson_finiteelementresidualevaluate(EQUATIONS_SET, ELEMENT_NUMBER, ERR, ERROR,)
Evaluates the residual element stiffness matrices and RHS for a Poisson equation finite element equat...
subroutine, public advection_equation_problem_setup(PROBLEM, PROBLEM_SETUP, ERR, ERROR,)
Sets up the diffusion problem.
integer(intg), parameter problem_advection_equation_type
subroutine, public advection_problemspecificationset(problem, problemSpecification, err, error,)
Sets the problem specification for an advection problem.
Flags an error condition.
subroutine, public poisson_boundaryconditionsanalyticcalculate(EQUATIONS_SET, BOUNDARY_CONDITIONS, ERR, ERROR,)
Calculates the analytic solution and sets the boundary conditions for an analytic problem...
subroutine, public diffusion_equation_post_solve(CONTROL_LOOP, SOLVER, ERR, ERROR,)
Sets up the diffusion problem post solve.
This module handles all diffusion equation routines.
subroutine, public diffusion_equationssetspecificationset(equationsSet, specification, err, error,)
Sets the equation specification for a diffusion equation type of a classical field equations set clas...
integer(intg), parameter problem_reaction_diffusion_equation_type
This module contains all kind definitions.
integer(intg), parameter problem_diffusion_equation_type
subroutine, public classical_field_equations_set_setup(EQUATIONS_SET, EQUATIONS_SET_SETUP, ERR, ERROR,)
Sets up the equations set for a classical field equations set class.