This module provides the facility to control the execution of the solver.
It is configured by the sim_control
table in the configuration.
From this table two settings will be read:
If there is no sim_control
found in the configuration, an attempt will be
made to read the time_control
table instead, while an empty
abort_criteria
table is assumed.
Thus, the general structure of the sim_control
configuration has the
following form:
sim_control = {
time_control = {},
abort_criteria = {}
}
Alternatively, if there are no abort criteria to be specified, just the
time_control
table may be specified:
See the tem_timeControl_module for details on the time_control
table.
See the tem_abortCriteria_module for details on the time_control
table.
A simple complete example without checks for steady state would be:
sim_control = {
time_control = {
min = 0 ,
max = 10.0 ,
interval = { iter = 5 }
},
abort_criteria = {
stop_file = 'stop' ,
}
}
Uses
module~~tem_simcontrol_module~~UsesGraph
module~tem_simcontrol_module
tem_simControl_module
module~tem_comm_env_module
tem_comm_env_module
module~tem_simcontrol_module->module~tem_comm_env_module
module~aot_table_module
aot_table_module
module~tem_simcontrol_module->module~aot_table_module
module~aot_out_module
aot_out_module
module~tem_simcontrol_module->module~aot_out_module
module~tem_abortcriteria_module
tem_abortCriteria_module
module~tem_simcontrol_module->module~tem_abortcriteria_module
module~tem_time_module
tem_time_module
module~tem_simcontrol_module->module~tem_time_module
module~tem_convergence_module
tem_convergence_module
module~tem_simcontrol_module->module~tem_convergence_module
module~env_module
env_module
module~tem_simcontrol_module->module~env_module
module~tem_status_module
tem_status_module
module~tem_simcontrol_module->module~tem_status_module
module~tem_timecontrol_module
tem_timeControl_module
module~tem_simcontrol_module->module~tem_timecontrol_module
module~aotus_module
aotus_module
module~tem_simcontrol_module->module~aotus_module
mpi
mpi
module~tem_comm_env_module->mpi
module~tem_abortcriteria_module->module~aot_table_module
module~tem_abortcriteria_module->module~aot_out_module
module~tem_abortcriteria_module->module~tem_convergence_module
module~tem_abortcriteria_module->module~env_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_time_module->module~aot_table_module
module~tem_time_module->module~aot_out_module
module~tem_time_module->module~env_module
module~tem_time_module->module~aotus_module
module~tem_time_module->mpi
module~tem_convergence_module->module~tem_comm_env_module
module~tem_convergence_module->module~aot_table_module
module~tem_convergence_module->module~aot_out_module
module~tem_convergence_module->module~tem_time_module
module~tem_convergence_module->module~env_module
module~tem_convergence_module->module~tem_status_module
module~tem_convergence_module->module~tem_timecontrol_module
module~tem_convergence_module->module~aotus_module
module~tem_subtree_type_module
tem_subTree_type_module
module~tem_convergence_module->module~tem_subtree_type_module
module~tem_varsys_module
tem_varSys_module
module~tem_convergence_module->module~tem_varsys_module
module~treelmesh_module
treelmesh_module
module~tem_convergence_module->module~treelmesh_module
module~tem_varmap_module
tem_varMap_module
module~tem_convergence_module->module~tem_varmap_module
module~tem_condition_module
tem_condition_module
module~tem_convergence_module->module~tem_condition_module
module~tem_geometry_module
tem_geometry_module
module~tem_convergence_module->module~tem_geometry_module
module~tem_tools_module
tem_tools_module
module~tem_convergence_module->module~tem_tools_module
module~tem_bc_prop_module
tem_bc_prop_module
module~tem_convergence_module->module~tem_bc_prop_module
module~tem_subtree_module
tem_subTree_module
module~tem_convergence_module->module~tem_subtree_module
module~tem_aux_module
tem_aux_module
module~tem_convergence_module->module~tem_aux_module
module~tem_solvehead_module
tem_solveHead_module
module~tem_convergence_module->module~tem_solvehead_module
module~tem_logging_module
tem_logging_module
module~tem_convergence_module->module~tem_logging_module
module~tem_shape_module
tem_shape_module
module~tem_convergence_module->module~tem_shape_module
module~tem_stencil_module
tem_stencil_module
module~tem_convergence_module->module~tem_stencil_module
module~tem_reduction_spatial_module
tem_reduction_spatial_module
module~tem_convergence_module->module~tem_reduction_spatial_module
module~env_module->module~aotus_module
iso_fortran_env
iso_fortran_env
module~env_module->iso_fortran_env
module~env_module->mpi
module~flu_binding
flu_binding
module~env_module->module~flu_binding
module~tem_status_module->module~tem_comm_env_module
module~tem_status_module->mpi
module~tem_timecontrol_module->module~aot_table_module
module~tem_timecontrol_module->module~aot_out_module
module~tem_timecontrol_module->module~tem_time_module
module~tem_timecontrol_module->module~env_module
module~tem_timecontrol_module->module~aotus_module
module~tem_timecontrol_module->module~tem_tools_module
module~tem_timecontrol_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_simcontrol_module~~UsedByGraph
module~tem_simcontrol_module
tem_simControl_module
module~tem_tracking_module
tem_tracking_module
module~tem_tracking_module->module~tem_simcontrol_module
module~tem_general_module
tem_general_module
module~tem_general_module->module~tem_simcontrol_module
program~tem_spacetime_fun_test
tem_spacetime_fun_test
program~tem_spacetime_fun_test->module~tem_general_module
module~tem_utestenv_module
tem_utestEnv_module
program~tem_spacetime_fun_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_varsys_stfunvar_test
tem_varSys_stfunVar_test
program~tem_varsys_stfunvar_test->module~tem_general_module
program~tem_varsys_stfunvar_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_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_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
module~tem_utestenv_module->module~tem_general_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
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_varsys_test
tem_varSys_test
program~tem_varsys_test->module~tem_general_module
program~tem_varsys_test->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~bin_search_test
bin_search_test
program~bin_search_test->module~tem_general_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_face_test
tem_face_test
program~tem_face_test->module~tem_general_module
program~tem_face_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~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
Data structure to describe the overall control of a simulation.
Read more…
Components
Type Visibility
Attributes Name Initial
type(tem_time_type ),
public
::
now Representation of the current time.
type(tem_timeControl_type ),
public
::
timeControl Time control, when the simulation should end, and definition of
special interval, at which regular actions should take place.
Read more…
type(tem_abortCriteria_type ),
public
::
abortCriteria Further abort criteria.
type(tem_status_type ),
public
::
status Flag collection to describe the status of the simulation.
Subroutines
Start a sim control by resetting its time object.
Read more…
Arguments
Type
Intent Optional
Attributes Name
type(tem_simControl_type ),
intent(out)
::
me The simulation control structure to start.
Load sim control settings from a configuration script.
Read more…
Arguments
Type
Intent Optional
Attributes Name
type(tem_simControl_type ),
intent(inout)
::
me Simulation control parameters to set.
type(flu_state)
::
conf Handle to the configuration script to load the settings from.
integer,
intent(in),
optional
::
parent Potential parent table, in which the simulation control table is to be
found.
character(len=*),
optional
::
key Name for the simulation control table. Default is 'sim_control'.
class(tem_solverAborts_type ),
intent(inout),
optional
::
solverAborts Solver specific abort criteria to load.
Write sim control settings to a configuration script.
Arguments
Type
Intent Optional
Attributes Name
type(tem_simControl_type ),
intent(inout)
::
me The simulation control settings to write to a Lua table.
type(aot_out_type )
::
conf Handle for the Lua script to write to.
character(len=*),
optional
::
key Name for the simulation control table. Default is sim_control.
Dump the current time (now) of the simControl to outUnit.
Read more…
Arguments
Type
Intent Optional
Attributes Name
type(tem_simControl_type ),
intent(inout)
::
me Simulation control settings to write to outUnit.
integer,
intent(in)
::
outUnit File unit to write to.
Dump simcontrol information to the specified outUnit.
Arguments
Type
Intent Optional
Attributes Name
type(tem_simControl_type ),
intent(inout)
::
me Simulation control settings to write to outUnit.
integer,
intent(in)
::
outUnit File unit to write to.
Synchronize the status bits across all processes and update the time.
Arguments
Type
Intent Optional
Attributes Name
type(tem_simControl_type ),
intent(inout)
::
me Simulation control information.
type(tem_comm_env_type ),
intent(in)
::
proc Communicator to use for the communication of status flags.
real(kind=rk),
intent(in),
optional
::
dt Time step to use for updating the simulation time.
If this is not given, no advance of the time will be done.
integer,
intent(in),
optional
::
d_iter Number of iterations to add to the current number of iterations.
(Default: 1)
integer,
intent(in),
optional
::
outUnit Unit to write messages to.
If this argument is present, the current time will be printed whenever
the interval of the simControl is triggered.
Clear the status flags in the simcontrol.
Arguments
Type
Intent Optional
Attributes Name
type(tem_simControl_type ),
intent(inout)
::
me Simulation control information.
Reset trigger, status bit and current time for steady state
Arguments