|
SpECTRE
2021.08.02
|
Compute the source terms for the NewtonianEuler evolution using a problem-specific source. More...
#include <Sources.hpp>
Public Types | |
| using | return_tags = db::wrap_tags_in<::Tags::Source, typename source_term_type::sourced_variables > |
| using | argument_tags = tmpl::push_front< typename source_term_type::argument_tags, Tags::SourceTerm< InitialDataType > > |
Static Public Member Functions | |
| template<class... Args> | |
| static void | apply (const Args &... args) noexcept |
Compute the source terms for the NewtonianEuler evolution using a problem-specific source.
The source term type is fetched from the initial data, so any InitialDataType instance must have a type alias source_term_type. In turn, any source term type used by ComputeSources must hold type aliases sourced_variables and argument_tags, which are tmpl::lists of the variables whose equations of motion require a source term, and the arguments required to compute those source terms, respectively. The source term must also hold a public void member function apply whose arguments are gsl::not_null pointers to the variables storing the source terms, followed by the arguments required to compute them. See NewtonianEuler::Sources::UniformAcceleration for an example.
While most of physically relevant source terms for the Newtonian Euler equations do not add a source term for the mass density, this class allows for problems that source any set of conserved variables (at least one variable is required).