Theseus
Compressible flow solver
Loading...
Searching...
No Matches
Theseus::EulerOperator< PhysicsT > Class Template Reference

#include <EulerOperator.hpp>

Inheritance diagram for Theseus::EulerOperator< PhysicsT >:
Collaboration diagram for Theseus::EulerOperator< PhysicsT >:

Public Types

using Physics = PhysicsT
 
using Base = RHSOperator< Physics >
 
using OperatorCache = typename Base::OperatorCache
 
using DeviceCache = typename Base::DeviceCache
 
using Gas = typename Base::Gas
 
using InviscidFlux = typename Base::InviscidFlux
 
- Public Types inherited from Theseus::RHSOperator< PhysicsT >
using Physics = PhysicsT
 
using OperatorCache = DGSEMOperatorCacheT< Physics >
 
using DeviceCache = DGSEMDeviceCacheT< Physics >
 
using Gas = typename Physics::GasModel
 
using InviscidFlux = typename Physics::InviscidFlux
 

Public Member Functions

 EulerOperator (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::shared_ptr< Prandtl::PerssonPeraireIndicator > indicator_, std::shared_ptr< const Gas > gasModel_, const std::string &gasModelName_, const std::string &numFluxName_, const mfem::real_t alpha_max=0.5, const mfem::real_t alpha_min=0.001)
 
 ~EulerOperator ()=default
 
mfem::real_t FlowMult (const mfem::Vector &pu, mfem::Vector &pdudt) const override
 
mfem::real_t MultEuler_Volume (const mfem::Vector &pu, mfem::Vector &pdudt) const
 
mfem::real_t MultEuler_InteriorFaces (const mfem::Vector &pu, mfem::Vector &pdudt) const
 
mfem::real_t MultEuler_BoundaryFaces (const mfem::Vector &pu, mfem::Vector &pdudt) const
 
- Public Member Functions inherited from Theseus::RHSOperator< PhysicsT >
 RHSOperator (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::shared_ptr< Prandtl::PerssonPeraireIndicator > indicator_, std::shared_ptr< const Gas > gas_, const std::string &gasModelName_, const std::string &numFluxName_, const std::string &flowModelName_, const mfem::real_t alpha_max=0.5, const mfem::real_t alpha_min=0.001)
 
OperatorCacheGetOperatorCacheReference ()
 
virtual ~RHSOperator ()=default
 
void Finalize (mfem::real_t time=0) override
 
void Mult (const mfem::Vector &u, mfem::Vector &dudt) const override
 
void ComputeIntegralMeasures (const mfem::Vector &u, Theseus::IntegralMeasures &diag) const override
 
std::string GasModelName () const override
 
std::string NumFluxName () const override
 
std::string FlowModelName () const override
 
const GasGetGasModel () const
 
const GasModelInterfaceGetGasModelInterface () const override
 
void FetchRestrictions (const mfem::Vector &pu, mfem::Vector &uVol, mfem::Vector &uInt, mfem::Vector &uBnd) const
 
- Public Member Functions inherited from Theseus::RHSOperatorBase
 RHSOperatorBase (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::shared_ptr< Prandtl::PerssonPeraireIndicator > indicator_, const mfem::real_t alpha_max=0.5, const mfem::real_t alpha_min=0.001)
 
virtual ~RHSOperatorBase ()=default
 
void SetBCDescriptorData (const mfem::Array< Theseus::BCDescriptor > &bc_descr, const mfem::Vector &bc_scalar_dat, const mfem::Vector &bc_vector_dat)
 
void AddBdrFaceMarker (mfem::Array< int > &bdr_marker_)
 
IntegralMeasures GetIntegralMeasuresBaseline () const
 
mfem::real_t GetMaxCharSpeed () const
 
mfem::real_t & GetTimeRef ()
 

Protected Attributes

OperatorCache operator_cache
 
DeviceCache device_cache
 
- Protected Attributes inherited from Theseus::RHSOperator< PhysicsT >
OperatorCache operator_cache
 
DeviceCache device_cache
 
const std::string gasModelName
 
const std::string numFluxName
 
const std::string flowModelName
 
std::shared_ptr< const Gasgas
 
std::shared_ptr< const GasModelInterfacegas_interface
 
- Protected Attributes inherited from Theseus::RHSOperatorBase
mfem::real_t max_char_speed
 
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< Prandtl::PerssonPeraireIndicatorindicator
 
const int num_equations
 
const int dim
 
const int order
 
const int num_elements
 
const int num_dofs_scalar
 
const int Ndofs
 
const mfem::real_t sharpness_fac = 9.21024
 
const mfem::real_t modalThreshold
 
const mfem::real_t alpha_min
 
const mfem::real_t alpha_max
 
std::vector< mfem::Array< int > > bdr_marker
 
mfem::Array< Theseus::BCDescriptorbc_descriptors
 
mfem::Vector bc_vector_data
 
mfem::Vector bc_scalar_data
 
mfem::real_t alpha_dof
 
Theseus::IntegralMeasures diag0
 

Member Typedef Documentation

◆ Base

template<typename PhysicsT >
using Theseus::EulerOperator< PhysicsT >::Base = RHSOperator<Physics>

◆ DeviceCache

template<typename PhysicsT >
using Theseus::EulerOperator< PhysicsT >::DeviceCache = typename Base::DeviceCache

◆ Gas

template<typename PhysicsT >
using Theseus::EulerOperator< PhysicsT >::Gas = typename Base::Gas

◆ InviscidFlux

template<typename PhysicsT >
using Theseus::EulerOperator< PhysicsT >::InviscidFlux = typename Base::InviscidFlux

◆ OperatorCache

template<typename PhysicsT >
using Theseus::EulerOperator< PhysicsT >::OperatorCache = typename Base::OperatorCache

◆ Physics

template<typename PhysicsT >
using Theseus::EulerOperator< PhysicsT >::Physics = PhysicsT

Constructor & Destructor Documentation

◆ EulerOperator()

template<typename PhysicsT >
Theseus::EulerOperator< PhysicsT >::EulerOperator ( 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::shared_ptr< Prandtl::PerssonPeraireIndicator indicator_,
std::shared_ptr< const Gas gasModel_,
const std::string &  gasModelName_,
const std::string &  numFluxName_,
const mfem::real_t  alpha_max = 0.5,
const mfem::real_t  alpha_min = 0.001 
)
inline

◆ ~EulerOperator()

template<typename PhysicsT >
Theseus::EulerOperator< PhysicsT >::~EulerOperator ( )
default

Member Function Documentation

◆ FlowMult()

template<typename PhysicsT >
mfem::real_t Theseus::EulerOperator< PhysicsT >::FlowMult ( const mfem::Vector &  pu,
mfem::Vector &  pdudt 
) const
overridevirtual

◆ MultEuler_BoundaryFaces()

template<typename PhysicsT >
mfem::real_t Theseus::EulerOperator< PhysicsT >::MultEuler_BoundaryFaces ( const mfem::Vector &  pu,
mfem::Vector &  pdudt 
) const

◆ MultEuler_InteriorFaces()

template<typename PhysicsT >
mfem::real_t Theseus::EulerOperator< PhysicsT >::MultEuler_InteriorFaces ( const mfem::Vector &  pu,
mfem::Vector &  pdudt 
) const

◆ MultEuler_Volume()

template<typename PhysicsT >
mfem::real_t Theseus::EulerOperator< PhysicsT >::MultEuler_Volume ( const mfem::Vector &  pu,
mfem::Vector &  pdudt 
) const

Member Data Documentation

◆ device_cache

template<typename PhysicsT >
DeviceCache Theseus::RHSOperator< PhysicsT >::device_cache
mutableprotected

◆ operator_cache

template<typename PhysicsT >
OperatorCache Theseus::RHSOperator< PhysicsT >::operator_cache
mutableprotected

The documentation for this class was generated from the following files: