| Module | Source File | Description |
|---|---|---|
| SELF_AdaptiveMesh_2D | SELF_AdaptiveMesh_2D.f90 | Emit a solver-ready Mesh2D_t from an adaptively refined, 2:1-balanced quad-forest (AMR Stage 4b). This closes the adaptive-refinement loop: with the Stage-1 indicator flagging elements, Stage 2b mutating the forest, and Stage 4a balancing it, EmitMesh produces the nonconforming mesh - leaf geometry, conforming-side connectivity, and a mortar table for the 2:1 hanging faces - that the existing mortar solver machinery already handles. |
| SELF_AdaptiveMesh_3D | SELF_AdaptiveMesh_3D.f90 | Emit a solver-ready Mesh3D_t from an adaptively refined, 2:1-balanced octree forest, the direct analogue of SELF_AdaptiveMesh_2D. This closes the 3-D adaptive-refinement loop: with the indicator flagging elements, the forest mutating, and Balance2to1 balancing it, EmitMesh produces the nonconforming mesh - leaf geometry, conforming-face connectivity, and a mortar table for the 2:1 hanging faces - that the 3-D mortar solver machinery already handles. |
| self_advection_diffusion_1d | SELF_advection_diffusion_1d.f90 | |
| self_advection_diffusion_1d | SELF_advection_diffusion_1d.f90 | |
| self_advection_diffusion_1d_t | SELF_advection_diffusion_1d_t.f90 | |
| self_advection_diffusion_2d | SELF_advection_diffusion_2d.f90 | |
| self_advection_diffusion_2d | SELF_advection_diffusion_2d.f90 | |
| self_advection_diffusion_2d_t | SELF_advection_diffusion_2d_t.f90 | |
| self_advection_diffusion_3d | SELF_advection_diffusion_3d.f90 | |
| self_advection_diffusion_3d | SELF_advection_diffusion_3d.f90 | |
| self_advection_diffusion_3d_t | SELF_advection_diffusion_3d_t.f90 | |
| SELF_AMRController_2D | SELF_AMRController_2D.f90 | Adaptive-mesh-refinement controller for 2-D DG models: the driver that closes the serial AMR loop around a live, time-stepping model. One call to Adapt performs one adaptation epoch between time steps: |
| SELF_AMRController_3D | SELF_AMRController_3D.f90 | Adaptive-mesh-refinement controller for 3-D DG models, the direct analogue of SELF_AMRController_2D: the driver that closes the AMR loop around a live, time-stepping model. One call to Adapt performs one adaptation epoch between time steps: |
| SELF_AMRController_Extruded | SELF_AMRController_Extruded.f90 | Adaptive-mesh-refinement controller for models on EXTRUDED meshes: a 2-D quadtree on the surface, with every column extruded through the same nz layers. One call to Adapt performs one adaptation epoch between time steps, carrying a 3-D model on the extruded mesh and, optionally, a 2-D model on the surface mesh it was extruded from: |
| SELF_BoundaryConditions | SELF_BoundaryConditions.f90 | |
| self_Burgers1D | SELF_Burgers1D.f90 | |
| self_Burgers1D | SELF_Burgers1D.f90 | |
| self_Burgers1D_t | SELF_Burgers1D_t.f90 | |
| SELF_ColumnOperators_3D | SELF_ColumnOperators_3D.f90 | Device backend of the column operators (see SELF_ColumnOperators_3D_t). Every operator reads and writes the device copies (interior_gpu) of its fields and the device copy of the covariant basis, and moves no data between host and device. The caller uploads the inputs (UpdateDevice) and downloads the outputs (UpdateHost) when it needs them on the host. |
| SELF_ColumnOperators_3D | SELF_ColumnOperators_3D.f90 | |
| SELF_ColumnOperators_3D_t | SELF_ColumnOperators_3D_t.f90 | Column operators on extruded meshes (Mesh3D%ExtrudedMesh). |
| SELF_Constants | SELF_Constants.f90 | |
| SELF_Data | SELF_Data.f90 | |
| SELF_DataPool | SELF_DataPool.f90 | High-water-mark storage for the mesh-sized arrays of the data classes (AMR Stage 6b). |
| SELF_DGModel1D | SELF_DGModel1D.f90 | |
| SELF_DGModel1D | SELF_DGModel1D.f90 | |
| SELF_DGModel1D_t | SELF_DGModel1D_t.f90 | |
| SELF_DGModel2D | SELF_DGModel2D.f90 | |
| SELF_DGModel2D | SELF_DGModel2D.f90 | |
| SELF_DGModel2D_t | SELF_DGModel2D_t.f90 | |
| SELF_DGModel3D | SELF_DGModel3D.f90 | |
| SELF_DGModel3D | SELF_DGModel3D.f90 | |
| SELF_DGModel3D_t | SELF_DGModel3D_t.f90 | |
| SELF_DomainDecomposition | SELF_DomainDecomposition.f90 | |
| SELF_DomainDecomposition | SELF_DomainDecomposition.f90 | |
| SELF_DomainDecomposition_t | SELF_DomainDecomposition_t.f90 | |
| SELF_ECAdvection2D | SELF_ECAdvection2D.f90 | |
| SELF_ECAdvection2D | SELF_ECAdvection2D.f90 | |
| SELF_ECAdvection2D_t | SELF_ECAdvection2D_t.f90 | Entropy-conserving linear scalar advection equation in 2-D. |
| SELF_ECAdvection3D | SELF_ECAdvection3D.f90 | |
| SELF_ECAdvection3D | SELF_ECAdvection3D.f90 | |
| SELF_ECAdvection3D_t | SELF_ECAdvection3D_t.f90 | Entropy-conserving linear scalar advection equation in 3-D. |
| SELF_ECDGModel2D | SELF_ECDGModel2D.f90 | |
| SELF_ECDGModel2D | SELF_ECDGModel2D.f90 | |
| SELF_ECDGModel2D_t | SELF_ECDGModel2D_t.f90 | Entropy-conserving DGSEM base class for 2-D conservation laws. |
| SELF_ECDGModel3D | SELF_ECDGModel3D.f90 | |
| SELF_ECDGModel3D | SELF_ECDGModel3D.f90 | |
| SELF_ECDGModel3D_t | SELF_ECDGModel3D_t.f90 | Entropy-conserving DGSEM base class for 3-D conservation laws. See SELF_ECDGModel2D_t for design documentation. |
| SELF_ElementSetMesh_3D | SELF_ElementSetMesh_3D.f90 | Partition a 3-D mesh into element sets and extract one sub-mesh per set. |
| SELF_ESAtmo2D | SELF_ESAtmo2D.f90 | |
| SELF_ESAtmo2D | SELF_ESAtmo2D.f90 | |
| SELF_ESAtmo2D_t | SELF_ESAtmo2D_t.f90 | Entropy-conserving compressible Euler equations in 2-D with potential temperature formulation (FastEddy / atmospheric LES equation set). |
| SELF_ESAtmo3D | SELF_ESAtmo3D.f90 | |
| SELF_ESAtmo3D | SELF_ESAtmo3D.f90 | |
| SELF_ESAtmo3D_t | SELF_ESAtmo3D_t.f90 | Entropy-conserving compressible Euler equations in 3-D with potential temperature formulation (FastEddy / atmospheric LES equation set). |
| SELF_Geometry_1D | SELF_Geometry_1D.f90 | |
| SELF_Geometry_2D | SELF_Geometry_2D.f90 | |
| SELF_Geometry_3D | SELF_Geometry_3D.f90 | |
| SELF_GPU | SELF_GPU.f90 | |
| SELF_GPU | SELF_GPU.f90 | |
| SELF_GPU_enums | SELF_GPU_enums.f90 | |
| SELF_GPU_enums | SELF_GPU_enums.f90 | |
| SELF_GPUInterfaces | SELF_GPUInterfaces.f90 | |
| SELF_HDF5 | SELF_HDF5.f90 | |
| SELF_Lagrange | SELF_Lagrange.f90 | |
| SELF_Lagrange | SELF_Lagrange.f90 | |
| SELF_Lagrange | SELF_Lagrange.f90 | |
| SELF_Lagrange_t | SELF_Lagrange_t.f90 | |
| self_LinearEuler2D | SELF_LinearEuler2D.f90 | |
| self_LinearEuler2D | SELF_LinearEuler2D.f90 | |
| self_LinearEuler2D_PML | SELF_LinearEuler2D_PML.f90 | |
| self_LinearEuler2D_PML | SELF_LinearEuler2D_PML.f90 | |
| self_LinearEuler2D_PML_t | SELF_LinearEuler2D_PML_t.f90 | Linear Euler 2D with a Perfectly Matched Layer (PML) absorbing region. |
| self_LinearEuler2D_t | SELF_LinearEuler2D_t.f90 | This module defines a class that can be used to solve the Linear Euler equations in 2-D. The Linear Euler Equations, here, are the Euler equations linearized about a motionless background state. |
| self_LinearEuler3D | SELF_LinearEuler3D.f90 | |
| self_LinearEuler3D | SELF_LinearEuler3D.f90 | |
| self_LinearEuler3D_t | SELF_LinearEuler3D_t.f90 | This module defines a class that can be used to solve the Linear Euler equations in 3-D. The Linear Euler Equations, here, are the Euler equations linearized about a motionless background state. The sound speed, the background density, and the relaxation rate are carried as solution variables (static in time, possibly spatially varying) so that heterogeneous media and sponge/damping layers are supported, mirroring the 2-D model. |
| self_LinearShallowWater2D | SELF_LinearShallowWater2D.f90 | |
| self_LinearShallowWater2D | SELF_LinearShallowWater2D.f90 | |
| self_LinearShallowWater2D_t | SELF_LinearShallowWater2D_t.f90 | |
| SELF_MappedScalar_1D | SELF_MappedScalar_1D.f90 | |
| SELF_MappedScalar_1D | SELF_MappedScalar_1D.f90 | |
| SELF_MappedScalar_1D_t | SELF_MappedScalar_1D_t.f90 | |
| SELF_MappedScalar_2D | SELF_MappedScalar_2D.f90 | |
| SELF_MappedScalar_2D | SELF_MappedScalar_2D.f90 | |
| SELF_MappedScalar_2D_t | SELF_MappedScalar_2D_t.f90 | |
| SELF_MappedScalar_3D | SELF_MappedScalar_3D.f90 | |
| SELF_MappedScalar_3D | SELF_MappedScalar_3D.f90 | |
| SELF_MappedScalar_3D_t | SELF_MappedScalar_3D_t.f90 | |
| SELF_MappedTwoPointVector_2D | SELF_MappedTwoPointVector_2D.f90 | |
| SELF_MappedTwoPointVector_2D | SELF_MappedTwoPointVector_2D.f90 | |
| SELF_MappedTwoPointVector_2D_t | SELF_MappedTwoPointVector_2D_t.f90 | Geometry-aware two-point vector and split-form divergence for 2-D. |
| SELF_MappedTwoPointVector_3D | SELF_MappedTwoPointVector_3D.f90 | |
| SELF_MappedTwoPointVector_3D | SELF_MappedTwoPointVector_3D.f90 | |
| SELF_MappedTwoPointVector_3D_t | SELF_MappedTwoPointVector_3D_t.f90 | Geometry-aware two-point vector and split-form divergence for 3-D. |
| SELF_MappedVector_2D | SELF_MappedVector_2D.f90 | |
| SELF_MappedVector_2D | SELF_MappedVector_2D.f90 | |
| SELF_MappedVector_2D_t | SELF_MappedVector_2D_t.f90 | |
| SELF_MappedVector_3D | SELF_MappedVector_3D.f90 | |
| SELF_MappedVector_3D | SELF_MappedVector_3D.f90 | |
| SELF_MappedVector_3D_t | SELF_MappedVector_3D_t.f90 | |
| SELF_Mesh | SELF_Mesh.f90 | |
| SELF_Mesh_1D | SELF_Mesh_1D.f90 | |
| SELF_Mesh_2D | SELF_Mesh_2D.f90 | |
| SELF_Mesh_2D | SELF_Mesh_2D.f90 | |
| SELF_Mesh_2D_t | SELF_Mesh_2D_t.f90 | |
| SELF_Mesh_3D | SELF_Mesh_3D.f90 | |
| SELF_Mesh_3D | SELF_Mesh_3D.f90 | |
| SELF_Mesh_3D_t | SELF_Mesh_3D_t.f90 | |
| SELF_MeshRefinement_2D | SELF_MeshRefinement_2D.f90 | Mesh-level h-refinement operations for 2-D quadrilateral meshes (AMR Stage 2). |
| SELF_MeshRefinement_3D | SELF_MeshRefinement_3D.f90 | Mesh-level h-refinement operations for 3-D hexahedral meshes, the direct analogue of SELF_MeshRefinement_2D. |
| SELF_Metadata | SELF_Metadata.f90 | |
| SELF_Model | SELF_Model.f90 | |
| SELF_MultiSetIO_3D | SELF_MultiSetIO_3D.f90 | HDF5 helpers for writing and reading per-set element data in a multi-set model file, and for checking a dataset's extent before reading it. |
| SELF_MultiSetModel3D | SELF_MultiSetModel3D.f90 | GPU backend of MultiSetModel3D. The interface exchange gathers each set's face trace from solution%boundary_gpu, and the default FillInterfaceBoundary writes solution%extBoundary_gpu with a device kernel. Overrides of FillInterfaceBoundary must likewise write the device copy (iface%ghost_gpu holds the ghost traces there), and must not call solution%UpdateDevice inside the step loop: it resets the halo exchange's static-variable state. |
| SELF_MultiSetModel3D | SELF_MultiSetModel3D.f90 | |
| SELF_MultiSetModel3D_t | SELF_MultiSetModel3D_t.f90 | A parent model that runs one DG model per element set and couples the sets at their shared faces. |
| self_NullDGModel1D | SELF_NullDGModel1D.f90 | |
| self_NullDGModel1D | SELF_NullDGModel1D.f90 | |
| self_NullDGModel1D_t | SELF_NullDGModel1D_t.f90 | |
| self_NullDGModel2D | SELF_NullDGModel2D.f90 | |
| self_NullDGModel2D | SELF_NullDGModel2D.f90 | |
| self_NullDGModel2D_t | SELF_NullDGModel2D_t.f90 | |
| self_NullDGModel3D | SELF_NullDGModel3D.f90 | |
| self_NullDGModel3D | SELF_NullDGModel3D.f90 | |
| self_NullDGModel3D_t | SELF_NullDGModel3D_t.f90 | |
| SELF_OctreeMesh_3D | SELF_OctreeMesh_3D.f90 | Forest-of-octrees data structure for adaptive h-refinement of 3-D hexahedral meshes, the direct analogue of SELF_QuadTreeMesh_2D. Each base-mesh element is the root of an octree; refinement replaces a leaf with eight children (one per reference octant, SELF child ordering = CGNS corner order), and coarsening merges a family of eight leaf siblings back into their parent. The forest tracks refinement levels and the active leaf set; the physical geometry of any leaf is produced by repeated exact isoparametric subdivision of its root (SELF_RefinementPrimitives_3D). |
| SELF_Points | SELF_Points.f90 | GPU-resident backend for the Points class. |
| SELF_Points | SELF_Points.f90 | |
| SELF_Points_t | SELF_Points_t.f90 | A point-cloud container with type-bound procedures to (1) locate each physical point inside a SEMQuad/SEMHex element-of-elements and recover its reference (computational) coordinates via a Newton inverse-map, and (2) sample MappedScalar2D / MappedScalar3D fields at the located points. |
| SELF_Quadrature | SELF_Quadrature.f90 | |
| SELF_QuadTreeMesh_2D | SELF_QuadTreeMesh_2D.f90 | Forest-of-quadtrees data structure for adaptive h-refinement of 2-D quadrilateral meshes (AMR Stage 2b). Each base-mesh element is the root of a quadtree; refinement replaces a leaf with four children (one per reference sub-quadrant, SELF child ordering 1=SW,2=SE,3=NE,4=NW), and coarsening merges a family of four leaf siblings back into their parent. The forest tracks refinement levels and the active leaf set; the physical geometry of any leaf is produced by repeated exact isoparametric subdivision of its root (SELF_RefinementPrimitives_2D). |
| SELF_RefinementIndicator_2D | SELF_RefinementIndicator_2D.f90 | |
| SELF_RefinementIndicator_2D | SELF_RefinementIndicator_2D.f90 | |
| SELF_RefinementIndicator_2D_t | SELF_RefinementIndicator_2D_t.f90 | Modal (Legendre spectral-decay) refinement indicator for 2-D spectral element solutions. |
| SELF_RefinementIndicator_3D | SELF_RefinementIndicator_3D.f90 | |
| SELF_RefinementIndicator_3D | SELF_RefinementIndicator_3D.f90 | |
| SELF_RefinementIndicator_3D_t | SELF_RefinementIndicator_3D_t.f90 | Modal (Legendre spectral-decay) refinement indicator for 3-D spectral element solutions. |
| SELF_RefinementPrimitives_2D | SELF_RefinementPrimitives_2D.f90 | Element-local primitives for h-refinement of 2-D quadrilateral spectral element meshes (AMR Stage 2). These routines are deliberately free of the Mesh2D container, MPI, and GPU dependencies so that the numerically and topologically delicate pieces - isoparametric child geometry and refined-mesh connectivity - are pure, deterministic, and unit-testable in isolation. The mesh-level driver (SELF_MeshRefinement_2D) assembles a Mesh2D_t from them. |
| SELF_RefinementPrimitives_3D | SELF_RefinementPrimitives_3D.f90 | Element-local primitives for h-refinement of 3-D hexahedral spectral element meshes. These routines are deliberately free of the Mesh3D container, MPI, and GPU dependencies so that the numerically and topologically delicate pieces - isoparametric child geometry and refined-mesh connectivity - are pure, deterministic, and unit-testable in isolation. The mesh-level driver (SELF_MeshRefinement_3D) assembles a Mesh3D_t from them. Direct 3-D analogue of SELF_RefinementPrimitives_2D. |
| SELF_Scalar_1D | SELF_Scalar_1D.f90 | |
| SELF_Scalar_1D | SELF_Scalar_1D.f90 | |
| SELF_Scalar_1D | SELF_Scalar_1D.f90 | |
| SELF_Scalar_1D_t | SELF_Scalar_1D_t.f90 | |
| SELF_Scalar_2D | SELF_Scalar_2D.f90 | |
| SELF_Scalar_2D | SELF_Scalar_2D.f90 | |
| SELF_Scalar_2D_t | SELF_Scalar_2D_t.f90 | |
| SELF_Scalar_3D | SELF_Scalar_3D.f90 | |
| SELF_Scalar_3D | SELF_Scalar_3D.f90 | |
| SELF_Scalar_3D_t | SELF_Scalar_3D_t.f90 | |
| SELF_SetInterface_3D | SELF_SetInterface_3D.f90 | GPU backend of the element-set interface exchange. When every set with interface faces supplies a device trace (SetTraceRef%trace_gpu), the face traces are gathered on the device and copied to the host in one transfer; the host exchange then runs as on the CPU, and the ghost traces are copied back to the device for FillSetInterfaceBoundary_gpu. Without device traces the host path runs unchanged. |
| SELF_SetInterface_3D | SELF_SetInterface_3D.f90 | |
| SELF_SetInterface_3D_t | SELF_SetInterface_3D_t.f90 | Interface map and trace exchange between element sets. |
| SELF_SolutionMigration | SELF_SolutionMigration.f90 | Point-to-point migration of the pre-regrid solution into a rank's old-element WINDOW: the memory-space-agnostic core of AMR Stage-5 v2, shared by every backend and both dimensions. |
| SELF_SolutionTransfer_2D | SELF_SolutionTransfer_2D.f90 | Solution transfer between an element and its four h-refinement children (AMR Stage 3). |
| SELF_SolutionTransfer_3D | SELF_SolutionTransfer_3D.f90 | Solution transfer between an element and its eight h-refinement children (AMR Stage 3). |
| SELF_SupportRoutines | SELF_SupportRoutines.f90 | \file SELF_SupportRoutines.f90 Contains the \ref SELF_SupportRoutines module \defgroup SELF_SupportRoutines SELF_SupportRoutines This module defines a set of general purpose routines. |
| SELF_Tensor_2D | SELF_Tensor_2D.f90 | |
| SELF_Tensor_2D | SELF_Tensor_2D.f90 | |
| SELF_Tensor_2D_t | SELF_Tensor_2D_t.f90 | |
| SELF_Tensor_3D | SELF_Tensor_3D.f90 | |
| SELF_Tensor_3D | SELF_Tensor_3D.f90 | |
| SELF_Tensor_3D_t | SELF_Tensor_3D_t.f90 | |
| SELF_TransferPlan_2D | SELF_TransferPlan_2D.f90 | Old-leaf -> new-leaf solution transfer plan for one adaptation epoch of the 2-D quad-forest: the driver layer of AMR Stage 3 that connects the element-local transfer operators (SELF_SolutionTransfer_2D) to the forest mutation (SELF_QuadTreeMesh_2D). |
| SELF_TransferPlan_3D | SELF_TransferPlan_3D.f90 | Old-leaf -> new-leaf solution transfer plan for one adaptation epoch of the 3-D oct-forest: the driver layer of AMR Stage 3 that connects the element-local transfer operators (SELF_SolutionTransfer_3D) to the forest mutation (SELF_OctreeMesh_3D). |
| SELF_TwoPointVector_2D | SELF_TwoPointVector_2D.f90 | |
| SELF_TwoPointVector_2D | SELF_TwoPointVector_2D.f90 | |
| SELF_TwoPointVector_2D_t | SELF_TwoPointVector_2D_t.f90 | |
| SELF_TwoPointVector_3D | SELF_TwoPointVector_3D.f90 | |
| SELF_TwoPointVector_3D | SELF_TwoPointVector_3D.f90 | |
| SELF_TwoPointVector_3D_t | SELF_TwoPointVector_3D_t.f90 | |
| SELF_Vector_2D | SELF_Vector_2D.f90 | |
| SELF_Vector_2D | SELF_Vector_2D.f90 | |
| SELF_Vector_2D_t | SELF_Vector_2D_t.f90 | |
| SELF_Vector_3D | SELF_Vector_3D.f90 | |
| SELF_Vector_3D | SELF_Vector_3D.f90 | |
| SELF_Vector_3D_t | SELF_Vector_3D_t.f90 |