Theseus
Compressible flow solver
Loading...
Searching...
No Matches
Theseus::RHSOperator< PhysicsT > Class Template Referenceabstract

#include <RHSOperator.hpp>

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

Public Types

using Physics = PhysicsT
 
using OperatorCache = DGSEMOperatorCacheT< Physics >
 
using DeviceCache = DGSEMDeviceCacheT< Physics >
 
using Gas = typename Physics::GasModel
 
using InviscidFlux = typename Physics::InviscidFlux
 

Public Member Functions

 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
 
virtual mfem::real_t FlowMult (const mfem::Vector &pu, mfem::Vector &pdudt) const =0
 
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
 
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

◆ DeviceCache

template<typename PhysicsT >
using Theseus::RHSOperator< PhysicsT >::DeviceCache = DGSEMDeviceCacheT<Physics>

◆ Gas

template<typename PhysicsT >
using Theseus::RHSOperator< PhysicsT >::Gas = typename Physics::GasModel

◆ InviscidFlux

template<typename PhysicsT >
using Theseus::RHSOperator< PhysicsT >::InviscidFlux = typename Physics::InviscidFlux

◆ OperatorCache

template<typename PhysicsT >
using Theseus::RHSOperator< PhysicsT >::OperatorCache = DGSEMOperatorCacheT<Physics>

◆ Physics

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

Constructor & Destructor Documentation

◆ RHSOperator()

template<typename PhysicsT >
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 
)
inline

◆ ~RHSOperator()

template<typename PhysicsT >
virtual Theseus::RHSOperator< PhysicsT >::~RHSOperator ( )
virtualdefault

Member Function Documentation

◆ ComputeIntegralMeasures()

template<typename PhysicsT >
void Theseus::RHSOperator< PhysicsT >::ComputeIntegralMeasures ( const mfem::Vector &  u,
Theseus::IntegralMeasures diag 
) const
overridevirtual

Reimplemented from Theseus::RHSOperatorBase.

◆ FetchRestrictions()

template<typename PhysicsT >
void Theseus::RHSOperator< PhysicsT >::FetchRestrictions ( const mfem::Vector &  pu,
mfem::Vector &  uVol,
mfem::Vector &  uInt,
mfem::Vector &  uBnd 
) const

◆ Finalize()

template<typename PhysicsT >
void Theseus::RHSOperator< PhysicsT >::Finalize ( mfem::real_t  time = 0)
overridevirtual

Reimplemented from Theseus::RHSOperatorBase.

◆ FlowModelName()

template<typename PhysicsT >
std::string Theseus::RHSOperator< PhysicsT >::FlowModelName ( ) const
inlineoverridevirtual

Reimplemented from Theseus::RHSOperatorBase.

◆ FlowMult()

template<typename PhysicsT >
virtual mfem::real_t Theseus::RHSOperator< PhysicsT >::FlowMult ( const mfem::Vector &  pu,
mfem::Vector &  pdudt 
) const
pure virtual

◆ GasModelName()

template<typename PhysicsT >
std::string Theseus::RHSOperator< PhysicsT >::GasModelName ( ) const
inlineoverridevirtual

Reimplemented from Theseus::RHSOperatorBase.

◆ GetGasModel()

template<typename PhysicsT >
const Gas & Theseus::RHSOperator< PhysicsT >::GetGasModel ( ) const
inline

◆ GetGasModelInterface()

template<typename PhysicsT >
const GasModelInterface & Theseus::RHSOperator< PhysicsT >::GetGasModelInterface ( ) const
inlineoverridevirtual

Reimplemented from Theseus::RHSOperatorBase.

◆ GetOperatorCacheReference()

template<typename PhysicsT >
OperatorCache & Theseus::RHSOperator< PhysicsT >::GetOperatorCacheReference ( )
inline

◆ Mult()

template<typename PhysicsT >
void Theseus::RHSOperator< PhysicsT >::Mult ( const mfem::Vector &  u,
mfem::Vector &  dudt 
) const
overridevirtual

Reimplemented from Theseus::RHSOperatorBase.

◆ NumFluxName()

template<typename PhysicsT >
std::string Theseus::RHSOperator< PhysicsT >::NumFluxName ( ) const
inlineoverridevirtual

Reimplemented from Theseus::RHSOperatorBase.

Member Data Documentation

◆ device_cache

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

◆ flowModelName

template<typename PhysicsT >
const std::string Theseus::RHSOperator< PhysicsT >::flowModelName
protected

◆ gas

template<typename PhysicsT >
std::shared_ptr<const Gas> Theseus::RHSOperator< PhysicsT >::gas
protected

◆ gas_interface

template<typename PhysicsT >
std::shared_ptr<const GasModelInterface> Theseus::RHSOperator< PhysicsT >::gas_interface
protected

◆ gasModelName

template<typename PhysicsT >
const std::string Theseus::RHSOperator< PhysicsT >::gasModelName
protected

◆ numFluxName

template<typename PhysicsT >
const std::string Theseus::RHSOperator< PhysicsT >::numFluxName
protected

◆ operator_cache

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

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