Branch data Line data Source code
1 : : // *****************************************************************************
2 : : /*!
3 : : \file src/PDE/CompFlow/Physics/CGEuler.hpp
4 : : \copyright 2012-2015 J. Bakosi,
5 : : 2016-2018 Los Alamos National Security, LLC.,
6 : : 2019-2021 Triad National Security, LLC.
7 : : All rights reserved. See the LICENSE file for details.
8 : : \brief Physics policy for the Euler equation using continuous Galerkin
9 : : \details This file defines a Physics policy class for the compressible
10 : : single-material inviscid flow equations using continuous Galerkin
11 : : discretization, defined in PDE/CompFlow/CGCompFlow.h. The class defined here
12 : : is used to configure the behavior of CGCompFlow. See
13 : : PDE/CompFlow/Physics/CG.h for general requirements on Physics policy classes
14 : : for CGCompFlow.
15 : : */
16 : : // *****************************************************************************
17 : : #ifndef CompFlowPhysicsCGEuler_h
18 : : #define CompFlowPhysicsCGEuler_h
19 : :
20 : : #include <array>
21 : : #include <limits>
22 : :
23 : : #include "Inciter/Options/Physics.hpp"
24 : :
25 : : namespace inciter {
26 : :
27 : : namespace cg {
28 : :
29 : : //! CompFlow system of PDEs problem: Euler (inviscid flow)
30 : : //! \details This class is a no-op, consistent with no additional physics needed
31 : : //! to make the basic implementation in CompFlow the Euler equations governing
32 : : //! compressible flow.
33 : : class CompFlowPhysicsEuler {
34 : :
35 : : public:
36 : : //! Add viscous stress contribution to momentum and energy rhs (no-op)
37 : : void
38 : : viscousRhs( tk::real,
39 : : tk::real,
40 : : const std::array< std::size_t, 4 >&,
41 : : const std::array< std::array< tk::real, 3 >, 4 >&,
42 : : const std::array< std::array< tk::real, 4 >, 5 >&,
43 : : const std::array< const tk::real*, 5 >&,
44 : : tk::Fields& ) const {}
45 : :
46 : : //! Compute the minimum time step size based on the viscous force
47 : : //! \return A large time step size, i.e., ignore
48 : : tk::real
49 : 4980525 : viscous_dt( tk::real,
50 : : const std::array< std::array< tk::real, 4 >, 5 >& ) const
51 : 4980525 : { return std::numeric_limits< tk::real >::max(); }
52 : :
53 : : //! Add heat conduction contribution to energy rhs (no-op)
54 : : void
55 : : conductRhs( tk::real,
56 : : tk::real,
57 : : const std::array< std::size_t, 4 >&,
58 : : const std::array< std::array< tk::real, 3 >, 4 >&,
59 : : const std::array< std::array< tk::real, 4 >, 5 >&,
60 : : const std::array< const tk::real*, 5 >&,
61 : : tk::Fields& ) const {}
62 : :
63 : : //! Compute the minimum time step size based on thermal diffusion
64 : : //! \return A large time step size, i.e., ignore
65 : : tk::real
66 : 4980525 : conduct_dt( tk::real,
67 : : tk::real,
68 : : const std::array< std::array< tk::real, 4 >, 5 >& ) const
69 : 4980525 : { return std::numeric_limits< tk::real >::max(); }
70 : :
71 : : //! Return phsyics type
72 : 25410 : static ctr::PhysicsType type() noexcept
73 : 25410 : { return ctr::PhysicsType::EULER; }
74 : : };
75 : :
76 : : } // cg::
77 : :
78 : : } // inciter::
79 : :
80 : : #endif // CompFlowPhysicsCGEuler_h
|