Theseus
Compressible flow solver
Loading...
Searching...
No Matches
EulerOperator.hpp
Go to the documentation of this file.
1// Copyright (c) 2025-2026 Board of Trustees of the University of Illinois
2//
3// This file is part of Theseus.
4//
5// SPDX-License-Identifier: BSD-3-Clause
6#pragma once
7#include "RHSOperator.hpp"
8
9namespace Theseus
10{
11
12 template<typename PhysicsT>
13 class EulerOperator : public RHSOperator<PhysicsT>
14
15 {
16 public:
17 using Physics = PhysicsT;
21 using Gas = typename Base::Gas;
23 protected:
26 public:
27
28 EulerOperator(std::shared_ptr<mfem::ParFiniteElementSpace> vfes_,
29 std::shared_ptr<mfem::ParFiniteElementSpace> fes0_,
30 std::shared_ptr<mfem::ParMesh> pmesh_,
31 std::shared_ptr<mfem::ParGridFunction> eta_,
32 std::shared_ptr<mfem::ParGridFunction> alpha_,
33 std::shared_ptr<Prandtl::PerssonPeraireIndicator> indicator_,
34 std::shared_ptr<const Gas> gasModel_,
35 const std::string &gasModelName_,
36 const std::string &numFluxName_,
37 const mfem::real_t alpha_max = 0.5, const mfem::real_t alpha_min = 0.001)
38 : RHSOperator<PhysicsT>(vfes_, fes0_, pmesh_, eta_, alpha_, indicator_,
39 gasModel_, gasModelName_, numFluxName_,
40 "Euler", alpha_max, alpha_min)
41 {}
42
43 ~EulerOperator() = default;
44 mfem::real_t FlowMult(const mfem::Vector &pu, mfem::Vector &pdudt) const override;
45 mfem::real_t MultEuler_Volume(const mfem::Vector &pu, mfem::Vector &pdudt) const;
46 mfem::real_t MultEuler_InteriorFaces(const mfem::Vector &pu, mfem::Vector &pdudt) const;
47 mfem::real_t MultEuler_BoundaryFaces(const mfem::Vector &pu, mfem::Vector &pdudt) const;
48
49 };
50
51}
52
Definition EulerOperator.hpp:15
typename Base::Gas Gas
Definition EulerOperator.hpp:21
mfem::real_t MultEuler_BoundaryFaces(const mfem::Vector &pu, mfem::Vector &pdudt) const
Definition EulerOperator_impl.hpp:248
typename Base::InviscidFlux InviscidFlux
Definition EulerOperator.hpp:22
typename Base::DeviceCache DeviceCache
Definition EulerOperator.hpp:20
mfem::real_t MultEuler_InteriorFaces(const mfem::Vector &pu, mfem::Vector &pdudt) const
Definition EulerOperator_impl.hpp:172
PhysicsT Physics
Definition EulerOperator.hpp:17
typename Base::OperatorCache OperatorCache
Definition EulerOperator.hpp:19
mfem::real_t MultEuler_Volume(const mfem::Vector &pu, mfem::Vector &pdudt) const
Definition EulerOperator_impl.hpp:29
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)
Definition EulerOperator.hpp:28
mfem::real_t FlowMult(const mfem::Vector &pu, mfem::Vector &pdudt) const override
Definition EulerOperator_impl.hpp:369
const mfem::real_t alpha_min
Definition RHSOperator.hpp:35
const mfem::real_t alpha_max
Definition RHSOperator.hpp:36
Definition RHSOperator.hpp:121
DeviceCache device_cache
Definition RHSOperator.hpp:130
DGSEMDeviceCacheT< Physics > DeviceCache
Definition RHSOperator.hpp:125
OperatorCache operator_cache
Definition RHSOperator.hpp:129
DGSEMOperatorCacheT< Physics > OperatorCache
Definition RHSOperator.hpp:124
typename Physics::GasModel Gas
Definition RHSOperator.hpp:126
typename Physics::InviscidFlux InviscidFlux
Definition RHSOperator.hpp:127
Definition AxisymmetricGeometry.hpp:15