Public Types | Public Member Functions | Static Public Attributes | List of all members
domain::creators::time_dependence::Composition< TimeDependenceCompTag0, TimeDependenceCompTags > Class Template Referencefinal

A TimeDependence that is a composition of various other TimeDependences. More...

#include <Composition.hpp>

Public Types

using CoordMap = detail::generate_coordinate_map_t< tmpl::flatten< tmpl::list< typename TimeDependenceCompTag0::time_dependence::MapForComposition::maps_list, typename TimeDependenceCompTags::time_dependence::MapForComposition::maps_list... > >>
using maps_list = tmpl::list< CoordMap >
using options = tmpl::list< TimeDependenceCompTag0, TimeDependenceCompTags... >
- Public Types inherited from domain::creators::time_dependence::TimeDependence< TimeDependenceCompTag0::mesh_dim >
using creatable_classes = tmpl::append< creatable_classes_any_dim, tmpl::conditional_t< MeshDim==1, creatable_classes_1d, tmpl::conditional_t< MeshDim==2, creatable_classes_2d, creatable_classes_3d > >>

Public Member Functions

 Composition (const Composition &)=default
Compositionoperator= (const Composition &)=default
 Composition (Composition &&)=default
Compositionoperator= (Composition &&)=default
 Composition (tmpl::type_from< TimeDependenceCompTag0 > first_time_dep, tmpl::type_from< TimeDependenceCompTags >... rest_time_dep) noexcept
 Composition (CoordMap coord_map, const std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> &functions_of_time) noexcept
 Constructor for copying the composition time dependence. Internally performs all the copying necessary to deal with the functions of time.
auto get_clone () const noexcept -> std::unique_ptr< TimeDependence< mesh_dim >> override
auto block_maps (size_t number_of_blocks) const noexcept -> std::vector< std::unique_ptr< domain::CoordinateMapBase< Frame::Grid, Frame::Inertial, mesh_dim >>> override
 Returns the coordinate maps from the Frame::Grid to the Frame::Inertial frame for each block.
auto functions_of_time () const noexcept -> std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >> override
- Public Member Functions inherited from domain::creators::time_dependence::TimeDependence< TimeDependenceCompTag0::mesh_dim >
 TimeDependence (const TimeDependence &)=default
 TimeDependence (TimeDependence &&)=default
TimeDependenceoperator= (const TimeDependence &)=default
TimeDependenceoperator= (TimeDependence &&)=default
virtual auto get_clone () const noexcept -> std::unique_ptr< TimeDependence >=0
 Returns a std::unique_ptr pointing to a copy of the TimeDependence.
virtual auto functions_of_time () const noexcept -> std::unordered_map< std::string, std::unique_ptr< domain::FunctionsOfTime::FunctionOfTime >>=0
 Returns the functions of time for the domain.
bool is_none () const noexcept
 Returns true if the instance is None, meaning no time dependence.

Static Public Attributes

static constexpr Options::String help = {"A composition of TimeDependences."}
static constexpr size_t mesh_dim = TimeDependenceCompTag0::mesh_dim

Detailed Description

template<typename TimeDependenceCompTag0, typename... TimeDependenceCompTags>
class domain::creators::time_dependence::Composition< TimeDependenceCompTag0, TimeDependenceCompTags >

A TimeDependence that is a composition of various other TimeDependences.

To create a new Composition TimeDependence you must create an explicit instantiation of the Composition<Tags...> TimeDependence in a .cpp file. You must add the Composition to the creatable_classes list of TimeDependence in order for the new Composition to be factory creatable.

The tags in the template parameters must be TimeDependenceCompositionTags. See the documentation of the TimeDependenceCompositionTag class for details on the tags.

The documentation for this class was generated from the following file: