Module keeping interfaces
Interface definition for elementwise timestepping routine.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(atl_timestep_type), | intent(inout) | :: | me | The type of your timestepping. |
||
real(kind=rk), | intent(inout) | :: | state(:,:,:) | The state of all cells on this level. This field will be updated ad the cell position. See kerneldata type for more explanations. |
||
integer, | intent(in) | :: | cell | Position of the cell to update in the state vector. |
||
integer, | intent(in) | :: | dof | The degree of freedom to update |
||
real(kind=rk), | intent(in) | :: | sideFlux(:) | The flux for one of the sides of this cell. The length of this array is the number of conservative variables of your equation. |
Interface definition for vectorized elementwise timestepping routine.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(atl_timestep_type), | intent(inout) | :: | me | The type of your timestepping. |
||
real(kind=rk), | intent(inout) | :: | state(:,:,:) | The state of all cells on this level. This field will be updated ad the cell position. See kerneldata type for more explanations. |
||
type(atl_kerneldata_type), | intent(in) | :: | kerneldata | Complete kerneldata to get the flux from with additional information. |
Interface definition for updating the timestep width.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(atl_timestep_type), | intent(inout) | :: | me | The type of your timestepping. |
||
type(atl_local_timestep_type), | intent(in) | :: | timestepInfo | Local timestepping information for that part of the mesh |
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(atl_statedata_type), | private, | allocatable | :: | timestepData(:) | Additional storage for timestepping algorithm. The usage is optional and some solvers do not use is, while others have to use it (e.g. multistep/multistage methods). This field is always passed as an argument to elementwise timestepping rotine (specified above as a pointer). The dimension of this array and its usage is left to the stepping algorithm and is therefore different for different timestepping schemes. |
||
type(atl_eulerTimestep_type), | private | :: | euler | Information about the propagation speeds of the 3D Euler equation. |
|||
type(atl_eulerTimestep_type), | private | :: | euler_2d | Information about the propagation speeds of the 2D Euler equation. |
|||
type(atl_eulerTimestep_type), | private | :: | euler_1d | Information about the propagation speeds of the 1D Euler equation. |
|||
type(atl_LoclinEulerTimestep_type), | private | :: | LoclinEuler | Information about the propagation speed of the local linear Euler equation |
|||
procedure(atl_elemental_timestep), | private, | pointer, nopass | :: | elemStep | => | null() | Pointer to a subroutine implementing the elemental procedure of a timestepping algorithm. |
procedure(atl_elemental_timestep_vec), | private, | pointer, nopass | :: | elemStep_vec | => | null() | |
integer, | private, | allocatable | :: | timestepInfoInteger(:) | Storage for additional information of the timestepping method. |
||
real(kind=rk), | private, | allocatable | :: | timestepInfoReal(:) | |||
procedure(atl_update_timestep), | private, | pointer, nopass | :: | updateStep | => | null() | Pointer to bring information from timestep information to the timestepping scheme itself. |
Timestep information for Euler equation.
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | private, | allocatable | :: | maxVel(:) | Modulus of the maximum velocity (for all elements on the current level). |
||
real(kind=rk), | private, | allocatable | :: | speedOfSound(:) | Maximum speed of sound (for all elements on the current level). |
Timestep information for local linear Euler equation
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | private, | allocatable | :: | meanVel(:) | mean velocity for all elements |
||
real(kind=rk), | private, | allocatable | :: | speedOfSound(:) | mean speed of sound for all elements |