| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(MappedScalar3D), | public | :: | dSdt | ||||
| real(kind=prec), | public | :: | dt | ||||
| real(kind=prec), | public | :: | entropy | ||||
| type(MappedVector3D), | public | :: | flux | ||||
| type(MappedScalar3D), | public | :: | fluxDivergence | ||||
| type(SEMHex), | public, | pointer | :: | geometry | |||
| logical, | public | :: | gradient_enabled | = | .false. | ||
| type(BoundaryConditionList), | public | :: | hyperbolicBCs | ||||
| integer, | public | :: | ioIterate | = | 0 | ||
| type(Mesh3D), | public, | pointer | :: | mesh | |||
| integer, | public | :: | nUnmappedBoundaries | = | 0 | The first unregistered bcid found, and meaningful only when nUnmappedBoundaries > 0: -1 is itself a legal bcid, so it cannot double as an "absent" marker. |
|
| integer, | public | :: | nstepped | = | 0 | ||
| real(kind=prec), | public | :: | nu | ||||
| integer, | public | :: | nvar | ||||
| type(BoundaryConditionList), | public | :: | parabolicBCs | Mesh boundary faces whose sideInfo(5) boundary condition id matches no registered boundary condition, counted over the whole domain by MapBoundaryConditions and summed across ranks. Nothing writes solution%extBoundary on such a face, so the Riemann solver reads zeros at t = 0 and stale values afterwards. ReportUnmappedBoundaries warns about them once, from the top of ForwardStep. |
|||
| logical, | public | :: | prescribed_bcs_enabled | = | .true. | ||
| type(MappedScalar3D), | public | :: | solution | ||||
| type(MappedVector3D), | public | :: | solutionGradient | ||||
| type(MappedScalar3D), | public | :: | source | ||||
| real(kind=prec), | public | :: | t | ||||
| logical, | public | :: | tecplot_enabled | = | .true. | ||
| procedure(SELF_timeIntegrator), | public, | pointer | :: | timeIntegrator | => | Euler_timeIntegrator | |
| real(kind=prec), | public, | allocatable | :: | transferStage(:,:,:,:,:) | Migrated old-element window, held between MigrateOldWindow and ApplyTransferPlan on the multi-rank path: the contiguous run of OLD elements this rank's new element range references. Flat, because it is viewed through a rank-remapped pointer whose element lower bound is the window's first GLOBAL old element index - the numbering the transfer plan uses. Persistent and grow-only, so a settled adapting run allocates nothing here. The GPU backend overrides the migration and keeps the window in device memory instead, leaving this unallocated. |
||
| real(kind=prec), | public | :: | u | ||||
| logical, | public | :: | unmappedBoundariesReported | = | .false. | ||
| integer, | public | :: | unmappedBoundaryID | = | -1 | ||
| real(kind=prec), | public | :: | v | ||||
| real(kind=prec), | public | :: | w | ||||
| real(kind=prec), | public, | allocatable | :: | winStage(:) | |||
| integer, | public | :: | winStageFirst | = | 0 | global old index of winStage's first element |
|
| integer, | public | :: | winStageN | = | 0 | window element count; 0 means no window is migrated |
|
| type(MappedScalar3D), | public | :: | workSol |
| procedure, public :: AdditionalFree => AdditionalFree_Model | |
| procedure, public :: AdditionalInit => AdditionalInit_advection_diffusion_3d_t | |
| procedure, public :: AdditionalOutput => AdditionalOutput_Model | |
| procedure, public :: ApplyTransferPlan => ApplyTransferPlan_DGModel3D_t | |
| procedure, public :: BoundaryFlux => BoundaryFlux_DGModel3D_t | |
| procedure, public :: CalculateEntropy => CalculateEntropy_DGModel3D_t | |
| procedure, public :: CalculateSolutionGradient => CalculateSolutionGradient_DGModel3D_t | |
| procedure, public :: CalculateTendency => CalculateTendency_DGModel3D_t | |
| procedure, public :: DownloadOldWindow => DownloadOldWindow_DGModel3D_t | |
| procedure, public :: Euler_timeIntegrator | |
| procedure, public :: FluxMethod => fluxmethod_DGModel3D_t | |
| procedure, public :: ForwardStep => ForwardStep_Model | |
| procedure, public :: Free => Free_DGModel3D_t | |
| procedure, public :: GetSimulationTime | |
| procedure, public :: IncrementIOCounter | |
| procedure, public :: Init => Init_DGModel3D_t | |
| procedure, public :: LowStorageRK2_timeIntegrator | |
| procedure, public :: LowStorageRK3_timeIntegrator | |
| procedure, public :: LowStorageRK4_timeIntegrator | |
| procedure, public :: MapBoundaryConditions => MapBoundaryConditions_DGModel3D_t | |
| procedure, public :: MigrateOldWindow => MigrateOldWindow_DGModel3D_t | |
| procedure, public :: PostStepHook => PostStepHook_Model | |
| procedure, public :: PreStepHook => PreStepHook_Model | |
| procedure, public :: PreTendencyHook => PreTendencyHook_Model | |
| procedure, public :: PrintType => PrintType_Model | |
| procedure, public :: ReadModel => Read_DGModel3D_t | |
| procedure, public :: Regrid => Regrid_DGModel3D_t | |
| procedure, public :: ReportEntropy => ReportEntropy_Model | |
| procedure, public :: ReportMetrics => ReportMetrics_DGModel3D_t | |
| procedure, public :: ReportUnmappedBoundaries => ReportUnmappedBoundaries_DGModel3D_t | |
| procedure, public :: ReportUserMetrics => ReportUserMetrics_Model | |
| procedure, public :: SetBoundaryCondition => setboundarycondition_DGModel3D_t | |
| procedure, public :: SetGradientBoundaryCondition => setgradientboundarycondition_DGModel3D_t | |
| procedure, public :: SetMetadata => SetMetadata_DGModel3D_t | |
| procedure, public :: SetNumberOfVariables => SetNumberOfVariables_Model | |
| procedure, public :: SetSimulationTime | |
| generic, public :: SetSolution => SetSolutionFromChar_DGModel3D_t, SetSolutionFromEqn_DGModel3D_t | |
| generic, public :: SetTimeIntegrator => SetTimeIntegrator_withChar | |
| procedure, public :: SourceMethod => sourcemethod_DGModel3D_t | |
| procedure, public :: StageSolutionForTransfer => StageSolutionForTransfer_DGModel3D_t | |
| procedure, public :: UpdateGRK2 => UpdateGRK2_DGModel3D_t | |
| procedure, public :: UpdateGRK3 => UpdateGRK3_DGModel3D_t | |
| procedure, public :: UpdateGRK4 => UpdateGRK4_DGModel3D_t | |
| procedure, public :: UpdateSolution => UpdateSolution_DGModel3D_t | |
| procedure, public :: WriteModel => Write_DGModel3D_t | |
| procedure, public :: WriteTecplot => WriteTecplot_DGModel3D_t | |
| procedure, public :: entropy_func => entropy_func_advection_diffusion_3d_t | |
| procedure, public :: flux1D => flux1d_Model | |
| procedure, public :: flux2D => flux2d_Model | |
| procedure, public :: flux3d => flux3d_advection_diffusion_3d_t | |
| procedure, public :: riemannflux1d => riemannflux1d_Model | |
| procedure, public :: riemannflux2d => riemannflux2d_Model | |
| procedure, public :: riemannflux3d => riemannflux3d_advection_diffusion_3d_t | |
| procedure, public :: source1d => source1d_Model | |
| procedure, public :: source2d => source2d_Model | |
| procedure, public :: source3d => source3d_Model |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(advection_diffusion_3d_t), | intent(in) | :: | this | |||
| real(kind=prec), | intent(in) | :: | s(1:this%solution%nvar) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(advection_diffusion_3d_t), | intent(in) | :: | this | |||
| real(kind=prec), | intent(in) | :: | s(1:this%solution%nvar) | |||
| real(kind=prec), | intent(in) | :: | dsdx(1:this%solution%nvar,1:3) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(advection_diffusion_3d_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:3) | |||
| real(kind=prec), | intent(in) | :: | nhat(1:3) |
Register boundary conditions for the advection-diffusion model. Hyperbolic: mirror (no-normal-flow) wall condition on the solution. Parabolic: no-stress condition that zeros the normal gradient at the boundary, giving zero diffusive flux through walls. This is stable with the Bassi-Rebay (BR1) method.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(advection_diffusion_3d_t), | intent(inout) | :: | this |
Mirror boundary condition on the solution: sets the exterior state equal to the interior state. With LLF this zeroes the upwind dissipation at the wall.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(BoundaryCondition), | intent(in) | :: | bc | |||
| class(Model), | intent(inout) | :: | mymodel |
No-stress boundary condition for the BR1 diffusive flux. Reflects the interior gradient so that the normal component of the averaged gradient vanishes at the boundary: sigma_ext = sigma_int - 2 (sigma_int . nhat) nhat This gives zero diffusive flux through the wall and is unconditionally stable for Bassi-Rebay.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(BoundaryCondition), | intent(in) | :: | bc | |||
| class(Model), | intent(inout) | :: | mymodel |