BoundaryCorrectionTags.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <memory>
7 
8 #include "DataStructures/DataBox/Tag.hpp"
9 #include "NumericalAlgorithms/SpatialDiscretization/OptionTags.hpp"
10 
11 namespace evolution {
12 namespace OptionTags {
13 /// The boundary correction used for coupling the local PDE system solution to
14 /// solutions from neighboring elements or applying boundary conditions.
15 ///
16 /// In the finite volume/difference and discontinuous Galerkin literature this
17 /// is often referred to as the "numerical flux". We avoid that nomenclature
18 /// because in the discontinuous Galerkin and finite volume case it is not the
19 /// flux that is modified, but the integrand of the boundary integral.
20 template <typename System>
24  static constexpr Options::String help = "The boundary correction to use.";
25 };
26 } // namespace OptionTags
27 
28 namespace Tags {
29 /// The boundary correction used for coupling together neighboring cells or
30 /// applying boundary conditions.
31 ///
32 /// In the finite volume/difference and discontinuous Galerkin literature this
33 /// is ofter referred to as the "numerical flux". We avoid that nomenclature
34 /// because in the discontinuous Galerkin and finite volume case it is not the
35 /// flux that is modified, but the integrand of the boundary integral.
36 template <typename System>
39 
40  using option_tags = tmpl::list<OptionTags::BoundaryCorrection<System>>;
41  static constexpr bool pass_metavariables = false;
42  static type create_from_options(const type& boundary_correction) noexcept {
43  return boundary_correction->get_clone();
44  }
45 };
46 } // namespace Tags
47 } // namespace evolution
evolution::OptionTags::BoundaryCorrection
The boundary correction used for coupling the local PDE system solution to solutions from neighboring...
Definition: BoundaryCorrectionTags.hpp:21
evolution
Functionality for evolving hyperbolic partial differential equations.
Definition: AddMeshVelocityNonconservative.hpp:29
db::SimpleTag
Mark a struct as a simple tag by inheriting from this.
Definition: Tag.hpp:36
evolution::Tags::BoundaryCorrection
The boundary correction used for coupling together neighboring cells or applying boundary conditions.
Definition: BoundaryCorrectionTags.hpp:37
SpatialDiscretization::OptionTags::SpatialDiscretizationGroup
Group holding all the options for the spatial discretization of the PDE system.
Definition: OptionTags.hpp:22
memory
Options::String
const char *const String
The string used in option structs.
Definition: Options.hpp:32
std::unique_ptr