This module provides the definition of various abort criteria upon which
a simulation should be stopped.
Note that solvers may extend this table and have their own set of
addititonal abort parameters to be set in this table.
There are two primary options that may be set:
stop_file
this denotes a file that will be checked for existence in the
current working directory. If it exists the simulation will be stopped (if
restarts are active, a restart will be written).
If the file is empty the file will be deleted upon completion of the
application. Otherwise, if the file is not empty it will be kept around.
steady_state
this is a boolean to indicate whether the simulation is to
halt when a steady state is reached. If this is true a convergence table,
where the condition for a steady state may be defined, is read. See
tem_convergence_module for details.
If the abort criteria table is not provided, the defaults for both settings
will be used, which is equivalent to the following definition:
abort_criteria = { stop_file = '' , steady_state = false }
That is, no stop files to look for, and no check whether a steady state is
reached.
A more complete example with a check for steady state and a convergence
table (more details in tem_convergence_module could look like this:
abort_criteria = {
stop_file = 'stop' ,
steady_state = true ,
convergence = {
variable = { 'pressure' , 'velocity' },
shape = { kind = 'all' },
time_control = {
min = { iter = 0 },
max = { iter = tmax },
interval = { iter = 10 }
},
reduction = { 'average' , 'average' },
norm = 'average' ,
nvals = 100 ,
absolute = true ,
condition = {
{ threshold = 1.e-15 , operator = '<=' },
{ threshold = 1.e-12 , operator = '<=' }
}
}
}
This results in the application to look for a file named stop
in the
working directory and will abort the run if it is found to exist.
The application will check for a steady state, where a steady state is
assumed when the average of pressure and velocity across the complete
domain does not deviate by more of 1.e-15 for pressure and not more than
1.e-12 for the velocity.
Uses
module~~tem_abortcriteria_module~~UsesGraph
module~tem_abortcriteria_module
tem_abortCriteria_module
module~tem_convergence_module
tem_convergence_module
module~tem_abortcriteria_module->module~tem_convergence_module
module~aot_out_module
aot_out_module
module~tem_abortcriteria_module->module~aot_out_module
module~env_module
env_module
module~tem_abortcriteria_module->module~env_module
module~aot_table_module
aot_table_module
module~tem_abortcriteria_module->module~aot_table_module
module~aotus_module
aotus_module
module~tem_abortcriteria_module->module~aotus_module
module~aot_out_general_module
aot_out_general_module
module~tem_abortcriteria_module->module~aot_out_general_module
module~tem_convergence_module->module~aot_out_module
module~tem_convergence_module->module~env_module
module~tem_convergence_module->module~aot_table_module
module~tem_convergence_module->module~aotus_module
module~tem_shape_module
tem_shape_module
module~tem_convergence_module->module~tem_shape_module
module~tem_bc_prop_module
tem_bc_prop_module
module~tem_convergence_module->module~tem_bc_prop_module
module~tem_subtree_type_module
tem_subTree_type_module
module~tem_convergence_module->module~tem_subtree_type_module
module~tem_reduction_spatial_module
tem_reduction_spatial_module
module~tem_convergence_module->module~tem_reduction_spatial_module
module~tem_condition_module
tem_condition_module
module~tem_convergence_module->module~tem_condition_module
module~treelmesh_module
treelmesh_module
module~tem_convergence_module->module~treelmesh_module
module~tem_logging_module
tem_logging_module
module~tem_convergence_module->module~tem_logging_module
module~tem_status_module
tem_status_module
module~tem_convergence_module->module~tem_status_module
module~tem_varsys_module
tem_varSys_module
module~tem_convergence_module->module~tem_varsys_module
module~tem_aux_module
tem_aux_module
module~tem_convergence_module->module~tem_aux_module
module~tem_varmap_module
tem_varMap_module
module~tem_convergence_module->module~tem_varmap_module
module~tem_time_module
tem_time_module
module~tem_convergence_module->module~tem_time_module
module~tem_tools_module
tem_tools_module
module~tem_convergence_module->module~tem_tools_module
module~tem_stencil_module
tem_stencil_module
module~tem_convergence_module->module~tem_stencil_module
module~tem_timecontrol_module
tem_timeControl_module
module~tem_convergence_module->module~tem_timecontrol_module
module~tem_geometry_module
tem_geometry_module
module~tem_convergence_module->module~tem_geometry_module
module~tem_comm_env_module
tem_comm_env_module
module~tem_convergence_module->module~tem_comm_env_module
module~tem_subtree_module
tem_subTree_module
module~tem_convergence_module->module~tem_subtree_module
module~tem_solvehead_module
tem_solveHead_module
module~tem_convergence_module->module~tem_solvehead_module
module~env_module->module~aotus_module
module~flu_binding
flu_binding
module~env_module->module~flu_binding
iso_fortran_env
iso_fortran_env
module~env_module->iso_fortran_env
mpi
mpi
module~env_module->mpi
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Used by
module~~tem_abortcriteria_module~~UsedByGraph
module~tem_abortcriteria_module
tem_abortCriteria_module
module~tem_general_module
tem_general_module
module~tem_general_module->module~tem_abortcriteria_module
module~tem_simcontrol_module
tem_simControl_module
module~tem_general_module->module~tem_simcontrol_module
module~tem_simcontrol_module->module~tem_abortcriteria_module
program~tem_varsys_stfunvar_test
tem_varSys_stfunVar_test
program~tem_varsys_stfunvar_test->module~tem_general_module
module~tem_utestenv_module
tem_utestEnv_module
program~tem_varsys_stfunvar_test->module~tem_utestenv_module
program~tem_varsys_statevar_test
tem_varSys_stateVar_test
program~tem_varsys_statevar_test->module~tem_general_module
program~tem_varsys_statevar_test->module~tem_utestenv_module
program~tem_sparta_test
tem_sparta_test
program~tem_sparta_test->module~tem_general_module
program~tem_sparta_test->module~tem_utestenv_module
program~tem_varsys_derivevar_test
tem_varSys_deriveVar_test
program~tem_varsys_derivevar_test->module~tem_general_module
program~tem_varsys_derivevar_test->module~tem_utestenv_module
program~tem_variable_evaltype_test
tem_variable_evaltype_test
program~tem_variable_evaltype_test->module~tem_general_module
program~tem_variable_evaltype_test->module~tem_utestenv_module
program~tem_varsys_test
tem_varSys_test
program~tem_varsys_test->module~tem_general_module
program~tem_varsys_test->module~tem_utestenv_module
program~tem_spacetime_fun_test
tem_spacetime_fun_test
program~tem_spacetime_fun_test->module~tem_general_module
program~tem_spacetime_fun_test->module~tem_utestenv_module
program~tem_logical_opertor_test
tem_logical_opertor_test
program~tem_logical_opertor_test->module~tem_general_module
program~tem_logical_opertor_test->module~tem_utestenv_module
program~bin_search_test
bin_search_test
program~bin_search_test->module~tem_general_module
program~tem_variable_extract_test
tem_variable_extract_test
program~tem_variable_extract_test->module~tem_general_module
program~tem_variable_extract_test->module~tem_utestenv_module
program~tem_variable_combine_test
tem_variable_combine_Test
program~tem_variable_combine_test->module~tem_general_module
program~tem_variable_combine_test->module~tem_utestenv_module
program~tem_face_test
tem_face_test
program~tem_face_test->module~tem_general_module
program~tem_face_test->module~tem_utestenv_module
program~tem_face_test~2
tem_face_test
program~tem_face_test~2->module~tem_general_module
program~tem_face_test~2->module~tem_utestenv_module
module~tem_utestenv_module->module~tem_general_module
module~tem_tracking_module
tem_tracking_module
module~tem_tracking_module->module~tem_simcontrol_module
program~tem_face_test~3
tem_face_test
program~tem_face_test~3->module~tem_general_module
program~tem_face_test~3->module~tem_utestenv_module
program~tem_varsys_opvar_test
tem_varSys_opVar_test
program~tem_varsys_opvar_test->module~tem_general_module
program~tem_varsys_opvar_test->module~tem_utestenv_module
program~tem_tracking_test
tem_tracking_test
program~tem_tracking_test->module~tem_tracking_module
Nodes of different colours represent the following:
Graph Key
Module
Module
Submodule
Submodule
Subroutine
Subroutine
Function
Function
Program
Program
This Page's Entity
This Page's Entity
Solid arrows point from a submodule to the (sub)module which it is
descended from. Dashed arrows point from a module or program unit to
modules which it uses.
Derived Types
Abstract type to describe solver specific abort criteria.
Read more…
Type-Bound Procedures
procedure(load_aborts), public :: load
Definition of the various abort criteria.
Read more…
Components
Type Visibility Attributes Name Initial
character(len=labelLen),
private ::
stop_file A file which should cause the simulation to stop.
Default: ''.
Read more…
logical,
private ::
steady_state Should the simulation be checked for a steady state convergence and
stop if it is detected? Default: .false.
type(tem_convergence_type ),
private, allocatable ::
convergence (:)Convergence conditions for steady state check.
Filled only when steady_state is True
Functions
Define new abortCriteria.
Read more…
Arguments
Type Intent Optional Attributes Name
character(len=*),
intent(in),
optional ::
stop_file Name of the stop file to react on. Default=''.
Any non-empty string activates this criterion.
logical,
intent(in),
optional ::
steady_state Flag to indicate if the simulation should stop upon reaching a steady
state. What a steady state exactly is has to be defined in the solver.
Default: .false.
A new variable of abortCriteria filled with the values provided as
arguments.
Check if the stop file exists.
Read more…
Arguments
Type Intent Optional Attributes Name
type(tem_abortCriteria_type ),
intent(in)
::
abortCriteria Abort criteria settings to use in this check for a stop file.
integer,
intent(in)
::
rank Rank of the probing process, only rank==0 actually checks for the file.
Return Value logical Result that indicates, if the stop files exists.
Subroutines
Load the abortCriteria from a given configuration.
Read more…
Arguments
Type Intent Optional Attributes Name
type(tem_abortCriteria_type ),
intent(out)
::
me Abort criteria to load from the Lua table.
type(flu_state)
::
conf Handle for the Lua script.
integer,
intent(in),
optional ::
parent Parent table to read from.
character(len=*),
intent(in),
optional ::
key Name of the time control table. Default: 'time_control'
class(tem_solverAborts_type ),
intent(inout),
optional ::
solverAborts Solver specific abort criteria to load.
Saves the abortCriteria to a given configuration.
Read more…
Arguments
Type Intent Optional Attributes Name
type(tem_abortCriteria_type ),
intent(in)
::
me The abortCriteria to write out as a Lua table.
type(aot_out_type ),
intent(inout)
::
conf Handle for the Lua script to write to.
character(len=*),
optional ::
key A name for the table to write the abortCriteria to.
Default: 'abort_criteria'.
Dump abort criteria information to the specified outUnit.
Arguments
Type Intent Optional Attributes Name
type(tem_abortCriteria_type ),
intent(in)
::
me Abort criteria settings to write on outUnit.
integer,
intent(in)
::
outUnit File unit to write the settings to.