Handling of restart data. Restart data is used to provide the state fields at given points in time. They can be used to resume the simulation again in a further simulation run or for post-processing to create visualizations.
The restart information is split into two parts, a header file describing the contained data and a binary file holding the degrees of freedom from the polynomial representation of the state fields for each element in the mesh. Please note, that the maximal polynomial degree of all elements will be used for each element when writing the field state to disk to allow for efficient uniform file access. It is also possible to configure a different polynomial degree in the simulation run than what is available in the restart data. This allows for higher resolved simulations to follow on coarser simulations. The degrees of freedoms are sorted correctly into the different representations by the routines in the ply_transfer_module.
When to write restarts is controlled by a time_control object. Details on the configuration of restart files is found in the tem_restart_module.
Initializes writing restart files, if activated.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_restart_type), | intent(inout) | :: | restart | Description of the restart structure to initialize. |
||
type(atl_Equations_type), | intent(in) | :: | equation | The variable system of the current equation system. |
||
type(tem_solveHead_type), | intent(in) | :: | solver | General description of the deployed solver. |
||
type(atl_cube_container_type), | intent(in) | :: | mesh | Levelwise representation of the mesh. |
||
type(treelmesh_type), | intent(in) | :: | tree | The octree of the mesh. |
||
integer, | intent(in) | :: | nDofsIO | The number of degrees of freedoms to write to/read from a restart file |
||
integer, | intent(in) | :: | scheme_dim | Dimensionality to be used for the state fields. |
Writes a restart file, if necessary.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_restart_type) | :: | restart | the restart infotmation |
|||
type(tem_simControl_type), | intent(inout) | :: | simControl | |||
type(atl_Equations_type), | intent(in) | :: | equation | The equation system you use. |
||
type(treelmesh_type) | :: | tree | mesh, provided in treelm format |
|||
type(atl_cube_container_type), | intent(inout) | :: | mesh | Informations and states of the cubic mesh. |
||
logical, | optional | :: | force | Set this to true to override the restart interval check. |
Writes a restart file for the current point in time.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_cube_container_type), | intent(inout) | :: | mesh | Informations and states of the cubic mesh. |
||
type(tem_restart_type) | :: | restart | the restart infotmation |
|||
type(treelmesh_type) | :: | tree | mesh, provided in treelm format |
|||
type(atl_Equations_type), | intent(in) | :: | equation | The equation system you use. |
||
type(tem_time_type), | intent(in) | :: | timing | current simulation time information |
||
type(tem_varSys_type), | intent(in) | :: | varSys | |||
integer, | intent(in) | :: | timerHandle | Timer handle to measure write restart time |
Read the serialized restart file into the state vectors
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_cube_container_type), | intent(inout) | :: | mesh | Informations and states of the cubic mesh. |
||
type(tem_restart_type) | :: | restart | ||||
type(treelmesh_type) | :: | tree | mesh, provided in treelm format |
|||
type(atl_Equations_type), | intent(in) | :: | equation | |||
type(tem_comm_env_type), | intent(in) | :: | proc | The schemes on the levels |
Write solver specific info to scratch file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_cube_container_type), | intent(in) | :: | mesh | The mesh type |
||
integer, | intent(in) | :: | scheme_dim | The scheme dimension |
||
integer, | intent(in) | :: | minlevel | Minimal level in the domain to pick the polynomial basis type. |
||
integer, | intent(inout) | :: | outUnit | unit to output solver info in lua format |
This subroutine serializes the given data to perform a restart.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(atl_cube_container_type), | intent(inout) | :: | mesh | Informations and states of the cubic mesh. |
||
type(tem_restart_type), | intent(inout) | :: | restart | |||
type(treelmesh_type), | intent(in) | :: | tree | |||
type(atl_Equations_type), | intent(in) | :: | equation | The equation system you use. |
||
real(kind=rk), | intent(inout) | :: | chunk(:) | |||
integer, | intent(in) | :: | iChunk | |||
integer, | intent(in) | :: | chunkdegree | Polynomial degree of the data in the IO chunk |
||
integer, | intent(in) | :: | chunkspace | Polynomial space of the serialized data |
||
integer, | intent(in) | :: | statespace | Polynomial space of the state data |
||
integer, | intent(in) | :: | nDims | Dimensionality of the polynomials |
||
logical, | intent(in) | :: | reverse | deserialize the data instead of serializing it? |