SpECTRE  v2022.05.05
elliptic::Actions::InitializeOptionalAnalyticSolution< BackgroundTag, AnalyticSolutionFields, AnalyticSolutionType > Struct Template Reference

Place the analytic solution of the system fields in the DataBox. More...

#include <InitializeAnalyticSolution.hpp>

Public Types

using simple_tags = tmpl::list< analytic_fields_tag >
using compute_tags = tmpl::list<>

Static Public Member Functions

template<typename DbTagsList , typename... InboxTags, typename Metavariables , size_t Dim, typename ActionList , typename ParallelComponent >
static std::tuple< db::DataBox< DbTagsList > && > apply (db::DataBox< DbTagsList > &box, const tuples::TaggedTuple< InboxTags... > &, const Parallel::GlobalCache< Metavariables > &, const ElementId< Dim > &, const ActionList, const ParallelComponent *const)

Detailed Description

template<typename BackgroundTag, typename AnalyticSolutionFields, typename AnalyticSolutionType>
struct elliptic::Actions::InitializeOptionalAnalyticSolution< BackgroundTag, AnalyticSolutionFields, AnalyticSolutionType >

Place the analytic solution of the system fields in the DataBox.

The Tags::AnalyticSolutionsBase tag retrieved from the DataBox will hold a std::optional. The analytic solution is only evaluated and stored in the DataBox if the BackgroundTag holds a type that inherits from the AnalyticSolutionType.


  • DataBox:
    • AnalyticSolutionTag or BackgroundTag
    • Tags::Coordinates<Dim, Frame::Inertial>


This action relies on the SetupDataBox aggregated initialization mechanism, so Actions::SetupDataBox must be present in the Initialization phase action list prior to this action.

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