SpECTRE
v2024.09.29
|
Namespace for DataBox related things. More...
Namespaces | |
namespace | protocols |
Protocols for the DataBox. | |
Classes | |
class | Access |
A class for retrieving items from a DataBox without needing to know all the tags in the box. More... | |
struct | BaseTag |
Mark a (usually) empty struct as a base tag by inheriting from this. More... | |
struct | ComputeTag |
Mark a struct as a compute tag by inheriting from this. More... | |
class | DataBox< tmpl::list< Tags... > > |
A DataBox stores objects that can be retrieved by using Tags. More... | |
struct | is_base_tag |
Check if Tag is a base DataBox tag. More... | |
struct | is_compute_tag |
Check if Tag derives off of db::ComputeTag. More... | |
struct | is_immutable_item_tag |
Check if Tag is a DataBox tag for an immutable item, i.e. a ComputeTag or ReferenceTag. More... | |
struct | is_mutable_item_tag |
Check if Tag is a DataBox tag for a mutable item, i.e. a SimpleTag. More... | |
struct | is_non_base_tag |
Check if Tag is not a base tag. More... | |
struct | is_reference_tag |
Check if Tag derives off of db::ReferenceTag. More... | |
struct | is_simple_tag |
Check if Tag is a simple tag. More... | |
struct | is_tag |
Check if Tag is a DataBox tag, i.e. a BaseTag, SimpleTag, ComputeTag, or ReferenceTag. More... | |
struct | PrefixTag |
Mark a struct as a prefix tag by inheriting from this. More... | |
struct | ReferenceTag |
Mark a struct as a reference tag by inheriting from this. More... | |
struct | SimpleTag |
Mark a struct as a simple tag by inheriting from this. More... | |
struct | Subitems |
Struct that can be specialized to allow DataBox items to have subitems. Specializations must define: More... | |
struct | Subitems< domain::Tags::Interface< DirectionsTag, VariablesTag >, Requires< tt::is_a_v< Variables, typename VariablesTag::type > > > |
struct | Subitems< domain::Tags::InterfaceCompute< DirectionsTag, VariablesTag >, Requires< tt::is_a_v< Variables, typename VariablesTag::type > > > |
struct | Subitems< domain::Tags::Slice< DirectionsTag, VariablesTag >, Requires< tt::is_a_v< Variables, typename VariablesTag::type > > > |
struct | Subitems< FacesTag, Requires< std::is_base_of_v< domain::Tags::Faces< FacesTag::volume_dim, typename FacesTag::tag >, FacesTag > and tt::is_a_v< Variables, typename FacesTag::tag::type > > > |
struct | Subitems< LinearSolver::Schwarz::Tags::Overlaps< VariablesTag, Dim, OptionsGroup >, Requires< tt::is_a_v< Variables, typename VariablesTag::type > > > |
struct | Subitems< Tag, Requires< Variables_detail::is_a_variables_tag_v< Tag > > > |
Typedefs | |
template<typename Tag , typename Box > | |
using | creation_tag = implementation defined |
The tag added to Box referred to by Tag . This resolves base tags and converts subitems to full items. | |
template<typename... Tags> | |
using | AddSimpleTags = implementation defined |
List of Tags to add to the DataBox. | |
template<typename... Tags> | |
using | AddComputeTags = implementation defined |
List of Compute Item Tags to add to the DataBox. | |
template<typename TagList > | |
using | compute_databox_type = implementation defined |
Returns the type of the DataBox that would be constructed from the TagList of tags. | |
template<typename Tag , typename TagsList > | |
using | const_item_type = implementation defined |
template<template< typename... > class Wrapper, typename TagList , typename... Args> | |
using | wrap_tags_in = implementation defined |
Create a new tmpl::list of tags by wrapping each tag in TagList in Wrapper<_, Args...> . | |
template<template< typename... > class Prefix, typename Tag , typename... Args> | |
using | add_tag_prefix = implementation defined |
Wrap Tag in Prefix<_, Args...> , unless Tag is a Tags::Variables, in which case this creates a new Tags::Variables, wrapping each tag in Tag::tags_list with Prefix<_, Args...> . | |
template<typename Tag > | |
using | remove_tag_prefix = implementation defined |
Remove the outer prefix from a prefixed tag Tag , or remove the outer prefix of each tag in Tag::tags_list if Tag is a Tags::Variables. | |
template<typename Tag > | |
using | remove_all_prefixes = implementation defined |
Completely remove all prefix tags from a Tag, or all prefixes from the tags in Tag::tags_list if Tag is a Tags::Variables. | |
template<template< typename... > class Wrapper, typename T , typename... Args> | |
using | prefix_variables = implementation defined |
Add a prefix to all tags in a Variables, leaving the argument unchanged if it is not a Variables. More... | |
template<typename T > | |
using | unprefix_variables = implementation defined |
Remove the outer prefix from all tags in a Variables, leaving the argument unchanged if it is not a Variables. More... | |
Functions | |
template<typename Tag > | |
const auto & | get (const Access &box) |
Retrieve a tag from a db::Access | |
template<typename... MutateTags, typename Invokable , typename... Args> | |
decltype(auto) | mutate (Invokable &&invokable, const gsl::not_null< Access * > box, Args &&... args) |
Mutate a tag in a db::Access . | |
template<typename... MutateTags, typename TagList , typename Invokable , typename... Args> | |
decltype(auto) | mutate (Invokable &&invokable, const gsl::not_null< DataBox< TagList > * > box, Args &&... args) |
Allows changing the state of one or more non-computed elements in the DataBox. More... | |
template<typename Tag , typename TagList > | |
const auto & | get (const DataBox< TagList > &box) |
Retrieve the item with tag Tag from the DataBox. More... | |
template<typename CopiedItemsTagList , typename DbTagList > | |
auto | copy_items (const DataBox< DbTagList > &box) |
Copy the items from the DataBox into a TaggedTuple. More... | |
template<typename Tag , typename TagList > | |
auto & | get_mutable_reference (const gsl::not_null< DataBox< TagList > * > box) |
Retrieve a mutable reference to the item with tag Tag from the DataBox. More... | |
template<typename AddMutableItemTags , typename AddImmutableItemTags = tmpl::list<>, typename... Args> | |
constexpr auto | create (Args &&... args) |
Create a new DataBox. More... | |
template<size_t VolumeDim, typename TagsList , typename... TagsToSlice> | |
Variables< tmpl::list< TagsToSlice... > > | data_on_slice (const db::DataBox< TagsList > &box, const Index< VolumeDim > &element_extents, const size_t sliced_dim, const size_t fixed_index, tmpl::list< TagsToSlice... >) |
Slices volume Tensor s from a DataBox into a Variables More... | |
template<typename Tag > | |
std::string | tag_name () |
Get the name of a DataBox tag, including prefixes. More... | |
template<typename Tags > | |
void | validate_selection (const std::vector< std::string > &selected_names, const Options::Context &context) |
Validate that the selected names are a subset of the given tags. More... | |
template<typename MutateTags , typename ArgumentTags , typename F , typename... Args> | |
constexpr decltype(auto) | mutate_apply (F &&f, const gsl::not_null< Access * > box, Args &&... args) |
Apply the invokable f mutating items MutateTags and taking as additional arguments ArgumentTags and args . More... | |
template<typename F , typename... Args> | |
constexpr decltype(auto) | mutate_apply (F &&f, const gsl::not_null< Access * > box, Args &&... args) |
Apply the invokable f mutating items MutateTags and taking as additional arguments ArgumentTags and args . More... | |
template<typename F , typename... Args> | |
constexpr decltype(auto) | mutate_apply (const gsl::not_null< Access * > box, Args &&... args) |
Apply the invokable f mutating items MutateTags and taking as additional arguments ArgumentTags and args . More... | |
template<typename TagsList > | |
const Access & | as_access (const DataBox< TagsList > &box) |
Convert a db::DataBox to a db::Access . | |
template<typename TagsList > | |
Access & | as_access (DataBox< TagsList > &box) |
Convert a db::DataBox to a db::Access . | |
template<typename ArgumentTags , typename F , typename BoxTags , typename... Args> | |
constexpr auto | apply (F &&f, const DataBox< BoxTags > &box, Args &&... args) |
Apply the invokable f with argument Tags TagsList from DataBox box More... | |
template<typename F , typename BoxTags , typename... Args> | |
constexpr auto | apply (F &&f, const DataBox< BoxTags > &box, Args &&... args) |
Apply the invokable f with argument Tags TagsList from DataBox box More... | |
template<typename F , typename BoxTags , typename... Args> | |
constexpr auto | apply (const DataBox< BoxTags > &box, Args &&... args) |
Apply the invokable f with argument Tags TagsList from DataBox box More... | |
template<typename MutateTags , typename ArgumentTags , typename F , typename BoxTags , typename... Args> | |
constexpr decltype(auto) | mutate_apply (F &&f, const gsl::not_null< DataBox< BoxTags > * > box, Args &&... args) |
Apply the invokable f mutating items MutateTags and taking as additional arguments ArgumentTags and args . More... | |
template<typename F , typename BoxTags , typename... Args> | |
constexpr decltype(auto) | mutate_apply (F &&f, const gsl::not_null< DataBox< BoxTags > * > box, Args &&... args) |
Apply the invokable f mutating items MutateTags and taking as additional arguments ArgumentTags and args . More... | |
template<typename F , typename BoxTags , typename... Args> | |
constexpr decltype(auto) | mutate_apply (const gsl::not_null< DataBox< BoxTags > * > box, Args &&... args) |
Apply the invokable f mutating items MutateTags and taking as additional arguments ArgumentTags and args . More... | |
Variables | |
template<typename Tag > | |
constexpr bool | is_compute_tag_v = is_compute_tag<Tag>::value |
True if Tag derives from db::ComputeTag. | |
template<typename Tag > | |
constexpr bool | is_reference_tag_v = is_reference_tag<Tag>::value |
True if Tag derives from db::ReferenceTag. | |
template<typename Tag > | |
constexpr bool | is_immutable_item_tag_v = is_immutable_item_tag<Tag>::value |
True if Tag is a DataBox tag for an immutable item, i.e. a ComputeTag or ReferenceTag. | |
template<typename Tag > | |
constexpr bool | is_mutable_item_tag_v = is_mutable_item_tag<Tag>::value |
True if Tag is a DataBox tag for a mutable item, i.e. a SimpleTag. | |
template<typename Tag > | |
constexpr bool | is_simple_tag_v = is_simple_tag<Tag>::value |
True if Tag is a simple tag. | |
template<typename Tag > | |
constexpr bool | is_non_base_tag_v = is_non_base_tag<Tag>::value |
True if Tag is not a base tag. | |
template<typename Tag > | |
constexpr bool | is_tag_v = is_tag<Tag>::value |
True if Tag is a DataBox tag. | |
template<typename Tag > | |
constexpr bool | is_base_tag_v = is_base_tag<Tag>::value |
True if Tag is a base tag. | |
template<typename Tag , typename DataBoxType > | |
using | tag_is_retrievable = implementation defined |
Equal to true if Tag can be retrieved from a DataBox of type DataBoxType . | |
template<typename Tag , typename DataBoxType > | |
constexpr bool | tag_is_retrievable_v |
Equal to true if Tag can be retrieved from a DataBox of type DataBoxType . More... | |
template<typename Consumer , typename Provider , typename Box > | |
using | tag_depends_on = std::bool_constant< Box::template tag_depends_on< Consumer, Provider >()> |
Check whether the tag Consumer depends on the tag Provider in a given Box . More... | |
template<typename Consumer , typename Provider , typename Box > | |
constexpr bool | tag_depends_on_v |
Check whether the tag Consumer depends on the tag Provider in a given Box . More... | |
Namespace for DataBox related things.
void db::validate_selection | ( | const std::vector< std::string > & | selected_names, |
const Options::Context & | context | ||
) |
Validate that the selected names are a subset of the given tags.
The possible choices for the selection are the db::tag_name
s of the Tags
.
Tags | List of possible tags. |
selected_names | Names to validate. |
context | Options context for error reporting. |