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 "Types.hpp"
24 : : #include "Inciter/Options/Physics.hpp"
25 : : #include "Inciter/InputDeck/InputDeck.hpp"
26 : :
27 : : namespace inciter {
28 : :
29 : : namespace cg {
30 : :
31 : : //! CompFlow system of PDEs problem: Euler (inviscid flow)
32 : : //! \details This class is a no-op, consistent with no additional physics needed
33 : : //! to make the basic implementation in CompFlow the Euler equations governing
34 : : //! compressible flow.
35 : : class CompFlowPhysicsEuler {
36 : :
37 : : public:
38 : : //! Add viscous stress contribution to momentum and energy rhs (no-op)
39 : : void
40 : : viscousRhs( tk::real,
41 : : tk::real,
42 : : const std::array< std::size_t, 4 >&,
43 : : const std::array< std::array< tk::real, 3 >, 4 >&,
44 : : const std::array< std::array< tk::real, 4 >, 5 >&,
45 : : const std::array< const tk::real*, 5 >&,
46 : : tk::Fields& ) const {}
47 : :
48 : : //! Compute the minimum time step size based on the viscous force
49 : : //! \return A large time step size, i.e., ignore
50 : : tk::real
51 : 5115742 : viscous_dt( tk::real,
52 : : const std::array< std::array< tk::real, 4 >, 5 >& ) const
53 : 5115742 : { return std::numeric_limits< tk::real >::max(); }
54 : :
55 : : //! Add heat conduction contribution to energy rhs (no-op)
56 : : void
57 : : conductRhs( tk::real,
58 : : tk::real,
59 : : const std::array< std::size_t, 4 >&,
60 : : const std::array< std::array< tk::real, 3 >, 4 >&,
61 : : const std::array< std::array< tk::real, 4 >, 5 >&,
62 : : const std::array< const tk::real*, 5 >&,
63 : : tk::Fields& ) const {}
64 : :
65 : : //! Compute the minimum time step size based on thermal diffusion
66 : : //! \return A large time step size, i.e., ignore
67 : : tk::real
68 : 5115742 : conduct_dt( tk::real,
69 : : tk::real,
70 : : const std::array< std::array< tk::real, 4 >, 5 >& ) const
71 : 5115742 : { return std::numeric_limits< tk::real >::max(); }
72 : :
73 : : //! Return phsyics type
74 : 15650 : static ctr::PhysicsType type() noexcept
75 : 15650 : { return ctr::PhysicsType::EULER; }
76 : : };
77 : :
78 : : } // cg::
79 : :
80 : : } // inciter::
81 : :
82 : : #endif // CompFlowPhysicsCGEuler_h
|