| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | fb | |||
| type(c_ptr), | value | :: | fextb | |||
| type(c_ptr), | value | :: | nhat | |||
| type(c_ptr), | value | :: | nscale | |||
| type(c_ptr), | value | :: | flux | |||
| real(kind=c_prec), | value | :: | p0 | |||
| real(kind=c_prec), | value | :: | Rd | |||
| real(kind=c_prec), | value | :: | gamma | |||
| integer(kind=c_int), | value | :: | N | |||
| integer(kind=c_int), | value | :: | nel |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | fluxN | |||
| type(c_ptr), | value | :: | avgGrad | |||
| type(c_ptr), | value | :: | uBnd | |||
| type(c_ptr), | value | :: | uExt | |||
| type(c_ptr), | value | :: | nhat | |||
| type(c_ptr), | value | :: | nscale | |||
| real(kind=c_prec), | value | :: | nu | |||
| real(kind=c_prec), | value | :: | kappa | |||
| real(kind=c_prec), | value | :: | tau_nu | |||
| real(kind=c_prec), | value | :: | tau_kappa | |||
| integer(kind=c_int), | value | :: | N | |||
| integer(kind=c_int), | value | :: | nvar | |||
| integer(kind=c_int), | value | :: | nel |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | diffFlux | |||
| type(c_ptr), | value | :: | grad | |||
| real(kind=c_prec), | value | :: | nu | |||
| real(kind=c_prec), | value | :: | kappa | |||
| integer(kind=c_int), | value | :: | N | |||
| integer(kind=c_int), | value | :: | nvar | |||
| integer(kind=c_int), | value | :: | nel |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | extboundary | |||
| type(c_ptr), | value | :: | boundary | |||
| type(c_ptr), | value | :: | nhat | |||
| type(c_ptr), | value | :: | elements | |||
| type(c_ptr), | value | :: | sides | |||
| integer(kind=c_int), | value | :: | nBoundaries | |||
| integer(kind=c_int), | value | :: | N | |||
| integer(kind=c_int), | value | :: | nel | |||
| integer(kind=c_int), | value | :: | nvar |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | extgrad | |||
| type(c_ptr), | value | :: | grad | |||
| type(c_ptr), | value | :: | nhat | |||
| type(c_ptr), | value | :: | elements | |||
| type(c_ptr), | value | :: | sides | |||
| integer(kind=c_int), | value | :: | nBoundaries | |||
| integer(kind=c_int), | value | :: | N | |||
| integer(kind=c_int), | value | :: | nel | |||
| integer(kind=c_int), | value | :: | nvar |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | source | |||
| type(c_ptr), | value | :: | solution | |||
| type(c_ptr), | value | :: | dsdx | |||
| type(c_ptr), | value | :: | J | |||
| type(c_ptr), | value | :: | dSplit | |||
| integer(kind=c_int), | value | :: | N | |||
| integer(kind=c_int), | value | :: | nvar | |||
| integer(kind=c_int), | value | :: | nel |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(c_ptr), | value | :: | f | |||
| type(c_ptr), | value | :: | s | |||
| type(c_ptr), | value | :: | dsdx | |||
| real(kind=c_prec), | value | :: | p0 | |||
| real(kind=c_prec), | value | :: | Rd | |||
| real(kind=c_prec), | value | :: | gamma | |||
| integer(kind=c_int), | value | :: | N | |||
| integer(kind=c_int), | value | :: | nvar | |||
| integer(kind=c_int), | value | :: | nel |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=prec), | public | :: | Rd | = | 287.0_prec | ||
| real(kind=prec), | public | :: | cp | = | 1004.0_prec | ||
| real(kind=prec), | public | :: | cv | = | 717.0_prec | ||
| type(MappedScalar2D), | public | :: | dSdt | ||||
| type(MappedScalar2D), | public | :: | diffDiv | ||||
| type(MappedVector2D), | public | :: | diffFlux | ||||
| real(kind=prec), | public | :: | dt | ||||
| real(kind=prec), | public | :: | entropy | ||||
| real(kind=prec), | public | :: | eta_penalty | = | 4.0_prec | ||
| type(MappedVector2D), | public | :: | flux | ||||
| type(MappedScalar2D), | public | :: | fluxDivergence | ||||
| real(kind=prec), | public | :: | g | = | 9.81_prec | Constant-coefficient Laplacian diffusion. The interface flux is BR1 central + Nitsche-style jump penalty (i.e. SIPG-style): |
|
| type(SEMQuad), | public, | pointer | :: | geometry | |||
| logical, | public | :: | gradient_enabled | = | .false. | ||
| type(BoundaryConditionList), | public | :: | hyperbolicBCs | ||||
| integer, | public | :: | ioIterate | = | 0 | ||
| real(kind=prec), | public | :: | kappa | = | 0.0_prec | ||
| real(kind=prec), | public | :: | length_scale | = | 0.0_prec | Diffusive-flux scratch buffer. Holds the constant-coefficient Laplacian flux F_diff(i,j,iel,iVar,d) = -coeff_iVar * d(s_iVar)/dx_d. |
|
| type(Mesh2D), | public, | pointer | :: | mesh | |||
| real(kind=prec), | public | :: | nu | = | 0.0_prec | ||
| integer, | public | :: | nvar | ||||
| real(kind=prec), | public | :: | p0 | = | 100000.0_prec | ||
| type(BoundaryConditionList), | public | :: | parabolicBCs | ||||
| 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(MappedTwoPointVector2D), | public | :: | twoPointFlux | ||||
| type(MappedScalar2D), | public | :: | workSol |
| procedure, public :: AddThermalBubble => AddThermalBubble_ESAtmo2D_t | Constant-coefficient Laplacian / Bassi-Rebay diffusion hooks |
| procedure, public :: AdditionalFree => AdditionalFree_ESAtmo2D_t | |
| procedure, public :: AdditionalInit => AdditionalInit_ESAtmo2D | |
| procedure, public :: AdditionalOutput => AdditionalOutput_Model | |
| procedure, public :: BoundaryFlux => BoundaryFlux_ESAtmo2D | |
| procedure, public :: CalculateEntropy => CalculateEntropy_DGModel2D_t | |
| procedure, public :: CalculateSolutionGradient => CalculateSolutionGradient_DGModel2D_t | |
| procedure, public :: CalculateTendency => CalculateTendency_ESAtmo2D | |
| procedure, public :: DiffusiveBoundaryFlux => DiffusiveBoundaryFlux_ESAtmo2D | |
| procedure, public :: DiffusiveFluxMethod => DiffusiveFluxMethod_ESAtmo2D | |
| procedure, public :: Euler_timeIntegrator | |
| procedure, public :: FluxMethod => fluxmethod_DGModel2D_t | |
| procedure, public :: ForwardStep => ForwardStep_Model | |
| procedure, public :: Free => Free_ESAtmo2D | |
| procedure, public :: GetSimulationTime | |
| procedure, public :: IncrementIOCounter | |
| procedure, public :: Init => Init_ESAtmo2D | |
| procedure, public :: LowStorageRK2_timeIntegrator | |
| procedure, public :: LowStorageRK3_timeIntegrator | |
| procedure, public :: LowStorageRK4_timeIntegrator | |
| procedure, public :: MapBoundaryConditions => MapBoundaryConditions_DGModel2D_t | |
| procedure, public :: PreTendency => PreTendency_Model | |
| procedure, public :: PrintType => PrintType_Model | |
| procedure, public :: ReadModel => Read_DGModel2D_t | |
| procedure, public :: ReportEntropy => ReportEntropy_Model | |
| procedure, public :: ReportMetrics => ReportMetrics_DGModel2D_t | |
| procedure, public :: ReportUserMetrics => ReportUserMetrics_Model | |
| procedure, public :: SetBoundaryCondition => setboundarycondition_DGModel2D_t | |
| procedure, public :: SetDiffusion => SetDiffusion_ESAtmo2D_t | |
| procedure, public :: SetGradientBoundaryCondition => setgradientboundarycondition_DGModel2D_t | |
| procedure, public :: SetHydrostaticBalance => SetHydrostaticBalance_ESAtmo2D_t | |
| procedure, public :: SetMetadata => SetMetadata_ESAtmo2D_t | |
| procedure, public :: SetNumberOfVariables => SetNumberOfVariables_ESAtmo2D_t | |
| procedure, public :: SetSimulationTime | |
| generic, public :: SetSolution => SetSolutionFromChar_DGModel2D_t, SetSolutionFromEqn_DGModel2D_t | |
| generic, public :: SetTimeIntegrator => SetTimeIntegrator_withChar | |
| procedure, public :: SourceMethod => SourceMethod_ESAtmo2D | |
| procedure, public :: TwoPointFluxMethod => TwoPointFluxMethod_ESAtmo2D | |
| procedure, public :: UpdateGRK2 => UpdateGRK2_DGModel2D_t | |
| procedure, public :: UpdateGRK3 => UpdateGRK3_DGModel2D_t | |
| procedure, public :: UpdateGRK4 => UpdateGRK4_DGModel2D_t | |
| procedure, public :: UpdateSolution => UpdateSolution_DGModel2D_t | |
| procedure, public :: WriteModel => Write_DGModel2D_t | |
| procedure, public :: WriteTecplot => WriteTecplot_DGModel2D_t | |
| procedure, public :: entropy_func => entropy_func_ESAtmo2D_t | |
| procedure, public :: flux1D => flux1d_Model | |
| procedure, public :: flux2D => flux2d_Model | |
| procedure, public :: flux3D => flux3d_Model | |
| procedure, public :: riemannflux1d => riemannflux1d_Model | |
| procedure, public :: riemannflux2d => riemannflux2d_ESAtmo2D_t | |
| procedure, public :: riemannflux3d => riemannflux3d_Model | |
| procedure, public :: source1d => source1d_Model | |
| procedure, public :: source2d => source2d_Model | |
| procedure, public :: source3d => source3d_Model | |
| procedure, public :: twopointflux2d => twopointflux2d_ESAtmo2D_t |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ESAtmo2D), | intent(inout) | :: | this |
LMARS interface flux on GPU.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ESAtmo2D), | intent(inout) | :: | this |
GPU-resident tendency for ESAtmo2D.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ESAtmo2D), | intent(inout) | :: | this |
GPU-resident fill of diffFlux%boundaryNormal with the SIPG-stabilised BR1 diffusive flux: f = -coeff(avg_grad . n)nmag + tau(uL - uR)nmag
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ESAtmo2D), | intent(inout) | :: | this |
GPU-resident fill of diffFlux%interior with the constant-coefficient Laplacian flux F_d(iVar) = -coeff(iVar) * d(s_iVar)/dx_d.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ESAtmo2D), | intent(inout) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ESAtmo2D), | intent(inout) | :: | this |
Souza et al. (2023) non-conservative gravity flux differencing on GPU. The geopotential lives at solution(:,:,:,5); the source for rho*v is computed via the SBP-EC two-point form using log-mean density and the contravariant metric.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ESAtmo2D), | intent(inout) | :: | this |
Souza et al. (2023) entropy-conservative two-point flux on GPU.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(ESAtmo2D), | intent(inout) | :: | this |
GPU-accelerated no-normal-flow BC for 2D Entropy-Stable Atmosphere. Reflects normal momentum, mirrors density, rho*theta, and Phi.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(BoundaryCondition), | intent(in) | :: | bc | |||
| class(Model), | intent(inout) | :: | mymodel |
GPU-accelerated parabolic no-stress / no-heat-flux BC for 2D Entropy-Stable Atmosphere.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(BoundaryCondition), | intent(in) | :: | bc | |||
| class(Model), | intent(inout) | :: | mymodel |