Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=prec), | public | :: | c | = | 1.0_prec | ||
type(MappedScalar2D), | public | :: | dSdt | ||||
real(kind=prec), | public | :: | dt | ||||
real(kind=prec), | public | :: | entropy | ||||
type(MappedVector2D), | public | :: | flux | ||||
type(MappedScalar2D), | public | :: | fluxDivergence | ||||
real(kind=prec), | public | :: | g | = | 0.0_prec | ||
type(SEMQuad), | public, | pointer | :: | geometry | |||
logical, | public | :: | gradient_enabled | = | .false. | ||
integer, | public | :: | ioIterate | = | 0 | ||
type(Mesh2D), | public, | pointer | :: | mesh | |||
integer, | public | :: | nvar | ||||
logical, | public | :: | prescribed_bcs_enabled | = | .true. | ||
real(kind=prec), | public | :: | rho0 | = | 1.0_prec | ||
type(MappedScalar2D), | public | :: | solution | ||||
type(MappedVector2D), | public | :: | solutionGradient | ||||
type(MappedScalar2D), | public | :: | source | ||||
real(kind=prec), | public | :: | t | ||||
logical, | public | :: | tecplot_enabled | = | .true. | ||
procedure(SELF_timeIntegrator), | public, | pointer | :: | timeIntegrator | => | Euler_timeIntegrator | |
type(MappedScalar2D), | public | :: | workSol |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this | |||
integer(kind=HID_T), | intent(in) | :: | fileid |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this | |||
real(kind=prec), | intent(in) | :: | tn |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this |
Forward steps the model using the associated tendency procedure and time integrator
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this | |||
real(kind=prec), | intent(in) | :: | tn | |||
real(kind=prec), | intent(in) | :: | dt | |||
real(kind=prec), | intent(in) | :: | ioInterval |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this |
Returns the current simulation time stored in the model % t attribute
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(out) | :: | t |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(out) | :: | this | |||
type(Mesh2D), | intent(in), | target | :: | mesh | ||
type(SEMQuad), | intent(in), | target | :: | geometry |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this | |||
real(kind=prec), | intent(in) | :: | tn |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this | |||
real(kind=prec), | intent(in) | :: | tn |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this | |||
real(kind=prec), | intent(in) | :: | tn |
PreTendency is a template routine that is used to house any additional calculations that you want to execute at the beginning of the tendency calculation routine. This default PreTendency simply returns back to the caller without executing any instructions
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this | |||
character, | intent(in) | :: | fileName |
Base method for reporting the entropy of a model to stdout. Only override this procedure if additional reporting is needed. Alternatively, if you think additional reporting would be valuable for all models, open a pull request with modifications to this base method.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this |
Base method for reporting the entropy of a model to stdout. Only override this procedure if additional reporting is needed. Alternatively, if you think additional reporting would be valuable for all models, open a pull request with modifications to this base method.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this |
Method that can be overridden by users to report their own custom metrics after file io
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this |
Boundary conditions for the solution are set to 0 for the external state to provide radiation type boundary conditions.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this |
Boundary conditions for the solution are set to 0 for the external state to provide radiation type boundary conditions.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(LinearEuler2D_t), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(LinearEuler2D_t), | intent(inout) | :: | this |
Sets the model % t attribute with the provided simulation time
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this | |||
real(kind=prec), | intent(in) | :: | t |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this | |||
character, | intent(in) | :: | eqnChar(1:this%solution%nVar) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this | |||
type(EquationParser), | intent(in) | :: | eqn(1:this%solution%nVar) |
Sets the time integrator method, using a character input
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(inout) | :: | this | |||
character, | intent(in) | :: | integrator |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this |
This subroutine sets the initial condition for a weak blast wave problem. The initial condition is given by
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(LinearEuler2D_t), | intent(inout) | :: | this | |||
real(kind=prec), | intent(in) | :: | rhoprime | |||
real(kind=prec), | intent(in) | :: | Lr | |||
real(kind=prec), | intent(in) | :: | x0 | |||
real(kind=prec), | intent(in) | :: | y0 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | m |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | m |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | m |
Computes a solution update as , where dt is either provided through the interface or taken as the Model's stored time step size (model % dt)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this | |||
real(kind=prec), | intent(in), | optional | :: | dt |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this | |||
character, | intent(in), | optional | :: | fileName |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(DGModel2D_t), | intent(inout) | :: | this | |||
character, | intent(in), | optional | :: | filename |
The entropy function is the sum of kinetic and internal energy For the linear model, this is
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(LinearEuler2D_t), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(LinearEuler2D_t), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar,1:2) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar,1:3) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | nhat |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | x | |||
real(kind=prec), | intent(in) | :: | t |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | nhat |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(LinearEuler2D_t), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | nhat(1:2) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | x(1:2) | |||
real(kind=prec), | intent(in) | :: | t |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | nhat(1:2) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | nhat(1:3) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | x(1:3) | |||
real(kind=prec), | intent(in) | :: | t |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | nhat(1:3) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | nhat |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | x | |||
real(kind=prec), | intent(in) | :: | t |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | nhat |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar,1:2) | |||
real(kind=prec), | intent(in) | :: | nhat(1:2) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | x(1:2) | |||
real(kind=prec), | intent(in) | :: | t |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar,1:2) | |||
real(kind=prec), | intent(in) | :: | nhat(1:2) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar,1:3) | |||
real(kind=prec), | intent(in) | :: | nhat(1:3) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | x(1:3) | |||
real(kind=prec), | intent(in) | :: | t |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar,1:3) | |||
real(kind=prec), | intent(in) | :: | nhat(1:3) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | sL(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | sR(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | nhat |
Uses a local lax-friedrich's upwind flux The max eigenvalue is taken as the sound speed
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(LinearEuler2D_t), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | sL(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | sR(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar,1:2) | |||
real(kind=prec), | intent(in) | :: | nhat(1:2) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | sL(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | sR(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar,1:3) | |||
real(kind=prec), | intent(in) | :: | nhat(1:3) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar,1:2) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | intent(in) | :: | this | |||
real(kind=prec), | intent(in) | :: | s(1:this%nvar) | |||
real(kind=prec), | intent(in) | :: | dsdx(1:this%nvar,1:3) |
type,extends(dgmodel2d) :: LinearEuler2D_t
! Add any additional attributes here that are specific to your model
real(prec) :: rho0 = 1.0_prec ! Reference density
real(prec) :: c = 1.0_prec ! Sound speed
real(prec) :: g = 0.0_prec ! gravitational acceleration (y-direction only)
contains
procedure :: SetNumberOfVariables => SetNumberOfVariables_LinearEuler2D_t
procedure :: SetMetadata => SetMetadata_LinearEuler2D_t
procedure :: entropy_func => entropy_func_LinearEuler2D_t
procedure :: hbc2d_NoNormalFlow => hbc2d_NoNormalFlow_LinearEuler2D_t
procedure :: flux2d => flux2d_LinearEuler2D_t
procedure :: riemannflux2d => riemannflux2d_LinearEuler2D_t
!procedure :: source2d => source2d_LinearEuler2D_t
procedure :: SphericalSoundWave => SphericalSoundWave_LinearEuler2D_t
endtype LinearEuler2D_t