System.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 
8 #include "DataStructures/VariablesTag.hpp"
9 #include "Evolution/Systems/ScalarAdvection/BoundaryConditions/BoundaryCondition.hpp"
10 #include "Evolution/Systems/ScalarAdvection/BoundaryCorrections/BoundaryCorrection.hpp"
11 #include "Evolution/Systems/ScalarAdvection/Characteristics.hpp"
12 #include "Evolution/Systems/ScalarAdvection/Fluxes.hpp"
13 #include "Evolution/Systems/ScalarAdvection/Tags.hpp"
14 #include "Evolution/Systems/ScalarAdvection/TimeDerivativeTerms.hpp"
15 #include "Utilities/TMPL.hpp"
16 
17 /*!
18  * \ingroup EvolutionSystemsGroup
19  * \brief Items related to evolving the scalar advection equation.
20  *
21  * \f{align*}
22  * \partial_t U + \nabla \cdot (v U) = 0
23  * \f}
24  *
25  * Since the ScalarAdvection system is only used for testing limiters in the
26  * current implementation, the velocity field \f$v\f$ is fixed throughout time.
27  */
28 namespace ScalarAdvection {
29 template <size_t Dim>
30 struct System {
31  static constexpr bool is_in_flux_conservative_form = true;
32  static constexpr bool has_primitive_and_conservative_vars = false;
33  static constexpr size_t volume_dim = Dim;
34 
37 
39  using flux_variables = tmpl::list<Tags::U>;
40  using gradient_variables = tmpl::list<>;
41  using sourced_variables = tmpl::list<>;
42 
44 
45  using volume_fluxes = Fluxes<Dim>;
46 
49 };
50 } // namespace ScalarAdvection
ScalarAdvection::TimeDerivativeTerms
Computes the time derivative terms needed for the ScalarAdvection system, which are just the fluxes.
Definition: TimeDerivativeTerms.hpp:21
Tags::Variables
Definition: VariablesTag.hpp:21
ScalarAdvection::BoundaryCorrections::BoundaryCorrection
The base class used to create boundary corrections from input files and store them in the global cach...
Definition: BoundaryCorrection.hpp:24
ScalarAdvection::BoundaryConditions::BoundaryCondition
The base class off of which all boundary conditions must inherit.
Definition: BoundaryCondition.hpp:18
cstddef
ScalarAdvection::Fluxes
Compute the fluxes of the ScalarAdvection system where is the velocity field.
Definition: Fluxes.hpp:22
ScalarAdvection::System
Definition: System.hpp:30
ScalarAdvection::Tags::LargestCharacteristicSpeedCompute
Compute the largest characteristic speed of the ScalarAdvection system.
Definition: Characteristics.hpp:23
ScalarAdvection
Items related to evolving the scalar advection equation.
Definition: BoundaryCondition.hpp:13
TMPL.hpp