|
Theseus
Compressible flow solver
|
Namespaces | |
| namespace | BC |
| namespace | ChandrashekarFlux |
| namespace | DGSEMIntegrator |
| namespace | Flow |
| namespace | HLLFlux |
| namespace | Kernels |
| namespace | LaxFriedrichsFlux |
| namespace | LTETable |
| namespace | NavierStokesFlux |
Classes | |
| struct | AxisymmetricGeometry |
| Coordinate and cached-radius contract for swirl-free (z,r) geometry. More... | |
| struct | AxisymmetryConfig |
| Foundational state and coordinate contract for swirl-free axisymmetry. More... | |
| struct | BCDescriptor |
| struct | CheckpointCompatibility |
| class | CheckpointConfig |
| struct | DGSEMDeviceCacheT |
| struct | DGSEMOperatorCacheT |
| struct | DofStateView |
| class | EulerOperator |
| struct | FieldStateView |
| struct | GasModel |
| class | GasModelInterface |
| class | GasModelInterfaceT |
| struct | IdealSingleGasEOS |
| struct | IntegralMeasures |
| struct | LTEGasEOS |
| struct | LTEGasModel |
| struct | LTETransport |
| class | NSOperator |
| struct | PhysicsConstants |
| struct | PhysicsTraits |
| struct | PointPrimitiveView |
| struct | PointPrimitiveViewRW |
| struct | PointStateView |
| struct | PointStateViewRW |
| class | RHSOperator |
| class | RHSOperatorBase |
| class | ScopedTimer |
| class | Simulation |
| struct | StateLayout |
| struct | Transport |
| class | VisualizationConfig |
| struct | VisualizationFieldSpec |
Typedefs | |
| using | IdealGasModel = GasModel< IdealSingleGasEOS, Transport > |
| using | LTEGas = LTEGasModel< LTEGasEOS, LTETransport > |
Enumerations | |
| enum class | BCType : int { Invalid = -1 , SlipWall = 0 , SupersonicInflow = 1 , SupersonicOutflow = 2 , PrescribedState = 3 , Symmetry = 4 , Axis = 5 , NoSlipAdiab = 6 , NoSlipIso = 7 , NumBCTypes = 8 } |
| enum class | BCDataKind : int { None = 0 , ScalarConstant = 1 , VectorConstant = 2 , VectorAndScalarConstant = 3 , NumBCDataKinds = 4 } |
| enum class | VisualizationField { density , velocity , pressure , blending_coefficient } |
| enum class | VisualizationMeshMode { vtk_high_order , gll_subcells } |
Functions | |
| template<typename GasT > | |
| MFEM_HOST_DEVICE bool | AddAxisymmetricEulerSourceAwayFromAxis (const GasT &gas, const mfem::real_t *state, mfem::real_t radius, mfem::real_t *state_rate) |
| template<typename GasT > | |
| MFEM_HOST_DEVICE void | AddAxisymmetricEulerSourceAtAxis (const GasT &gas, const mfem::real_t *state, mfem::real_t radial_momentum_derivative, mfem::real_t *state_rate) |
| template<typename GasT > | |
| MFEM_HOST_DEVICE bool | AddAxisymmetricViscousSourceAwayFromAxis (const GasT &gas, const mfem::real_t *state, const mfem::real_t *dprim_x, const mfem::real_t *dprim_y, const mfem::real_t *dprim_z, mfem::real_t radius, mfem::real_t *state_rate) |
| template<typename ContextT > | |
| MFEM_HOST_DEVICE mfem::real_t | RadialViscousFluxDerivative (const ContextT &ctx, const mfem::real_t *element_state, const mfem::real_t *element_gradprim_x, const mfem::real_t *element_gradprim_y, const mfem::real_t *element_gradprim_z, const mfem::real_t *element_radius, const mfem::real_t *element_jacobian, const mfem::real_t *element_metric, int point, int equation) |
| template<typename ContextT > | |
| MFEM_HOST_DEVICE void | AddAxisymmetricViscousSourceAtAxis (const ContextT &ctx, const mfem::real_t *element_state, const mfem::real_t *element_gradprim_x, const mfem::real_t *element_gradprim_y, const mfem::real_t *element_gradprim_z, const mfem::real_t *element_radius, const mfem::real_t *element_jacobian, const mfem::real_t *element_metric, int point, mfem::real_t *state_rate) |
| template<typename ContextT > | |
| MFEM_HOST_DEVICE mfem::real_t | RadialMomentumDerivative (const ContextT &ctx, const mfem::real_t *element_state, const mfem::real_t *element_jacobian, const mfem::real_t *element_metric, int point) |
| template<typename ContextT > | |
| MFEM_HOST_DEVICE void | AddAxisymmetricEulerElementSource (const ContextT &ctx, const mfem::real_t *element_state, const mfem::real_t *element_radius, const mfem::real_t *element_jacobian, const mfem::real_t *element_metric, mfem::real_t *element_rate) |
| template<typename GasT > | |
| MFEM_HOST_DEVICE bool | ProjectAxisPrimitiveGradientDirection (const GasT &gas, mfem::real_t radius, int derivative_direction, mfem::real_t *dprim) |
| int | AppendBCVectorPayload (mfem::Vector &dst, const mfem::Vector &src) |
| template<typename CacheT > | |
| void | GetOperatorCache (mfem::FiniteElementSpace *fes, CacheT *cache) |
| template<typename CacheT > | |
| void | GetDiscretizationInfo (mfem::FiniteElementSpace *fes, CacheT *cache) |
| template<typename CacheT > | |
| void | SetupRestrictions (mfem::FiniteElementSpace *fes, CacheT *cache) |
| template<typename CacheT > | |
| void | SetupGeometricTerms (mfem::FiniteElementSpace *fes, CacheT *cache) |
| template<typename CacheT > | |
| void | SetupVolumeMarkers (mfem::FiniteElementSpace *fes, CacheT *cache) |
| template<typename CacheT > | |
| void | BuildBoundaryFacePermutationMap (mfem::ParMesh *pmesh, CacheT *cache) |
| template<typename CacheT > | |
| void | BuildBoundaryFaceToMarkerMap (mfem::ParMesh *pmesh, const std::vector< mfem::Array< int > > &bdr_marker_vector, CacheT *cache) |
| void | BuildBoundaryFaceToBEMap (mfem::ParMesh *pmesh, mfem::Array< int > &face_to_be) |
| template<typename CacheT > | |
| void | AssembleBoundaryFaceGeometryTerms (mfem::FiniteElementSpace *fes, const std::vector< mfem::Array< int > > &bdr_marker_vector, CacheT *cache) |
| template<typename CacheT > | |
| void | AssembleElementVolumeGeometricTerms (mfem::ElementTransformation &Tr, CacheT *cache) |
| template<typename CacheT > | |
| void | AssembleInteriorFaceGeometryTerms (mfem::FiniteElementSpace *fes, CacheT *cache) |
| template<typename CacheT > | |
| void | ComputeSubcellMetrics (mfem::FiniteElementSpace *fes, CacheT *cache) |
| template<typename CacheT > | |
| void | CacheSubcellMetricData (const mfem::DenseTensor &SubcellMetricXi, const mfem::DenseTensor &SubcellMetricEta, const mfem::DenseTensor &SubcellMetricZeta, CacheT *cache) |
| template<typename CacheT , typename DeviceCacheT > | |
| void | GetDeviceCache (CacheT &cache, DeviceCacheT &device_cache) |
| template<typename CacheT > | |
| bool | AxisBoundaryGeometryIsValid (const CacheT &cache) |
| template<typename CacheT > | |
| void | ValidateAxisBoundaryGeometry (const CacheT &cache) |
| template<typename CacheT > | |
| void | BuildPerssonDeviceCache (CacheT &c, Prandtl::ModalBasis &modalBasis) |
| template<typename CacheT > | |
| void | OutputCacheContents (const CacheT &cache) |
| int | CBE (const mfem::Vector &v) |
| int | offset_mass (const Theseus::StateLayout &L) |
| int | offset_momentum (const Theseus::StateLayout &L) |
| int | offset_energy (const Theseus::StateLayout &L) |
| int | offset_scalars (const Theseus::StateLayout &L) |
| bool | StepLimitReached (int cycle, int maximum_cycle) |
| std::unique_ptr< Theseus::RHSOperatorBase > | MakeRHSOperator (const nlohmann::json &runtime, std::shared_ptr< mfem::ParFiniteElementSpace > vfes, std::shared_ptr< mfem::ParFiniteElementSpace > fes0, std::shared_ptr< mfem::ParMesh > pmesh, std::shared_ptr< mfem::ParGridFunction > eta, std::shared_ptr< mfem::ParGridFunction > alpha, std::vector< std::shared_ptr< mfem::ParGridFunction > > &grad_u, std::shared_ptr< Prandtl::PerssonPeraireIndicator > indicator, mfem::real_t alpha_max) |
| template<typename Physics , typename GasModelT > | |
| std::unique_ptr< Theseus::RHSOperatorBase > | MakeTypedRHSOperator (bool inviscid, const nlohmann::json &runtime, std::shared_ptr< mfem::ParFiniteElementSpace > vfes, std::shared_ptr< mfem::ParFiniteElementSpace > fes0, std::shared_ptr< mfem::ParMesh > pmesh, std::shared_ptr< mfem::ParGridFunction > eta, std::shared_ptr< mfem::ParGridFunction > alpha, std::vector< std::shared_ptr< mfem::ParGridFunction > > &grad_u, std::shared_ptr< Prandtl::PerssonPeraireIndicator > indicator, mfem::real_t alpha_max, std::shared_ptr< const GasModelT > gas_, const std::string &gasModelName, const std::string &numFluxName) |
Variables | |
| constexpr const int | MAXEQ = 5 |
| constexpr const int | MAXDIM = 3 |
| constexpr bool | debug_simulation = false |
| using Theseus::IdealGasModel = typedef GasModel<IdealSingleGasEOS, Transport> |
| using Theseus::LTEGas = typedef LTEGasModel<LTEGasEOS, LTETransport> |
|
strong |
|
strong |
|
strong |
|
strong |
|
inline |
|
inline |
|
inline |
Add the swirl-free Euler geometric source at points strictly off axis. Axis points require parity-based analytic limits and are handled separately.
|
inline |
|
inline |
Add the non-divergence viscous terms in the swirl-free cylindrical equations at points strictly off axis.
|
inline |
| void Theseus::AssembleBoundaryFaceGeometryTerms | ( | mfem::FiniteElementSpace * | fes, |
| const std::vector< mfem::Array< int > > & | bdr_marker_vector, | ||
| CacheT * | cache | ||
| ) |
| void Theseus::AssembleElementVolumeGeometricTerms | ( | mfem::ElementTransformation & | Tr, |
| CacheT * | cache | ||
| ) |
| void Theseus::AssembleInteriorFaceGeometryTerms | ( | mfem::FiniteElementSpace * | fes, |
| CacheT * | cache | ||
| ) |
| bool Theseus::AxisBoundaryGeometryIsValid | ( | const CacheT & | cache | ) |
| void Theseus::BuildBoundaryFacePermutationMap | ( | mfem::ParMesh * | pmesh, |
| CacheT * | cache | ||
| ) |
|
inline |
| void Theseus::BuildBoundaryFaceToMarkerMap | ( | mfem::ParMesh * | pmesh, |
| const std::vector< mfem::Array< int > > & | bdr_marker_vector, | ||
| CacheT * | cache | ||
| ) |
| void Theseus::BuildPerssonDeviceCache | ( | CacheT & | c, |
| Prandtl::ModalBasis & | modalBasis | ||
| ) |
| void Theseus::CacheSubcellMetricData | ( | const mfem::DenseTensor & | SubcellMetricXi, |
| const mfem::DenseTensor & | SubcellMetricEta, | ||
| const mfem::DenseTensor & | SubcellMetricZeta, | ||
| CacheT * | cache | ||
| ) |
| int Theseus::CBE | ( | const mfem::Vector & | v | ) |
| void Theseus::ComputeSubcellMetrics | ( | mfem::FiniteElementSpace * | fes, |
| CacheT * | cache | ||
| ) |
| void Theseus::GetDeviceCache | ( | CacheT & | cache, |
| DeviceCacheT & | device_cache | ||
| ) |
| void Theseus::GetDiscretizationInfo | ( | mfem::FiniteElementSpace * | fes, |
| CacheT * | cache | ||
| ) |
| void Theseus::GetOperatorCache | ( | mfem::FiniteElementSpace * | fes, |
| CacheT * | cache | ||
| ) |
| std::unique_ptr< Theseus::RHSOperatorBase > Theseus::MakeRHSOperator | ( | const nlohmann::json & | runtime, |
| std::shared_ptr< mfem::ParFiniteElementSpace > | vfes, | ||
| std::shared_ptr< mfem::ParFiniteElementSpace > | fes0, | ||
| std::shared_ptr< mfem::ParMesh > | pmesh, | ||
| std::shared_ptr< mfem::ParGridFunction > | eta, | ||
| std::shared_ptr< mfem::ParGridFunction > | alpha, | ||
| std::vector< std::shared_ptr< mfem::ParGridFunction > > & | grad_u, | ||
| std::shared_ptr< Prandtl::PerssonPeraireIndicator > | indicator, | ||
| mfem::real_t | alpha_max | ||
| ) |
| std::unique_ptr< Theseus::RHSOperatorBase > Theseus::MakeTypedRHSOperator | ( | bool | inviscid, |
| const nlohmann::json & | runtime, | ||
| std::shared_ptr< mfem::ParFiniteElementSpace > | vfes, | ||
| std::shared_ptr< mfem::ParFiniteElementSpace > | fes0, | ||
| std::shared_ptr< mfem::ParMesh > | pmesh, | ||
| std::shared_ptr< mfem::ParGridFunction > | eta, | ||
| std::shared_ptr< mfem::ParGridFunction > | alpha, | ||
| std::vector< std::shared_ptr< mfem::ParGridFunction > > & | grad_u, | ||
| std::shared_ptr< Prandtl::PerssonPeraireIndicator > | indicator, | ||
| mfem::real_t | alpha_max, | ||
| std::shared_ptr< const GasModelT > | gas_, | ||
| const std::string & | gasModelName, | ||
| const std::string & | numFluxName | ||
| ) |
|
inline |
|
inline |
|
inline |
|
inline |
| void Theseus::OutputCacheContents | ( | const CacheT & | cache | ) |
|
inline |
Enforce the even/odd primitive-gradient parity required at r=0. Primitive-gradient slots contain (rho, velocity components, p, scalars).
|
inline |
|
inline |
| void Theseus::SetupGeometricTerms | ( | mfem::FiniteElementSpace * | fes, |
| CacheT * | cache | ||
| ) |
| void Theseus::SetupRestrictions | ( | mfem::FiniteElementSpace * | fes, |
| CacheT * | cache | ||
| ) |
| void Theseus::SetupVolumeMarkers | ( | mfem::FiniteElementSpace * | fes, |
| CacheT * | cache | ||
| ) |
|
inline |
| void Theseus::ValidateAxisBoundaryGeometry | ( | const CacheT & | cache | ) |
|
constexpr |
|
constexpr |
|
constexpr |