Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(MappedScalar2D), | public | :: | dSdt | ||||
real(kind=prec), | public | :: | dt | ||||
real(kind=prec), | public | :: | entropy | ||||
type(MappedVector2D), | public | :: | flux | ||||
type(MappedScalar2D), | public | :: | fluxDivergence | ||||
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. | ||
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(DGModel2D_t), | intent(inout) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | 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) |
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 |
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 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(Model), | 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(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 | 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(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) | :: | 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 |
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: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(Model) :: DGModel2D_t
type(MappedScalar2D) :: solution
type(MappedVector2D) :: solutionGradient
type(MappedVector2D) :: flux
type(MappedScalar2D) :: source
type(MappedScalar2D) :: fluxDivergence
type(MappedScalar2D) :: dSdt
type(MappedScalar2D) :: workSol
type(Mesh2D),pointer :: mesh
type(SEMQuad),pointer :: geometry
contains
procedure :: Init => Init_DGModel2D_t
procedure :: SetMetadata => SetMetadata_DGModel2D_t
procedure :: Free => Free_DGModel2D_t
procedure :: CalculateEntropy => CalculateEntropy_DGModel2D_t
procedure :: BoundaryFlux => BoundaryFlux_DGModel2D_t
procedure :: FluxMethod => fluxmethod_DGModel2D_t
procedure :: SourceMethod => sourcemethod_DGModel2D_t
procedure :: SetBoundaryCondition => setboundarycondition_DGModel2D_t
procedure :: SetGradientBoundaryCondition => setgradientboundarycondition_DGModel2D_t
procedure :: ReportMetrics => ReportMetrics_DGModel2D_t
procedure :: UpdateSolution => UpdateSolution_DGModel2D_t
procedure :: UpdateGRK2 => UpdateGRK2_DGModel2D_t
procedure :: UpdateGRK3 => UpdateGRK3_DGModel2D_t
procedure :: UpdateGRK4 => UpdateGRK4_DGModel2D_t
procedure :: CalculateSolutionGradient => CalculateSolutionGradient_DGModel2D_t
procedure :: CalculateTendency => CalculateTendency_DGModel2D_t
generic :: SetSolution => SetSolutionFromChar_DGModel2D_t, &
SetSolutionFromEqn_DGModel2D_t
procedure,private :: SetSolutionFromChar_DGModel2D_t
procedure,private :: SetSolutionFromEqn_DGModel2D_t
procedure :: ReadModel => Read_DGModel2D_t
procedure :: WriteModel => Write_DGModel2D_t
procedure :: WriteTecplot => WriteTecplot_DGModel2D_t
endtype DGModel2D_t