A protocol for HorizonMetavarss that are used in the ah::Component parallel component.
Details
A struct conforming to the HorizonMetavars protocol must have
- a type alias time_tag to a tag that tells the horizon finder which time tag to use (for example, Tags::TimeAndPrevious).
- a type alias frame to the frame that the horizon find happens in (e.g. Frame::Distorted).
- a type alias compute_tags_on_element which is a tmpl::list of compute tags used in the ObservationBox on the elements.
- a type alias horizon_find_callbacks which is a tmpl::list of callbacks that conform to ah::protocols::Callback.
- a type alias horizon_find_failure_callbacks which is a tmpl::list of callbacks that conform to ah::protocols::Callback.
- a static function name() that returns a std::string.
- a static constexpr ah::Destination named destination which tells what this horizon find is for.
: tt::ConformsTo<::ah::protocols::HorizonMetavars> {
using time_tag = ExampleTimeTag;
using frame = ::Frame::Distorted;
using horizon_find_callbacks = tmpl::list<ExampleHorizonFindCallback>;
using horizon_find_failure_callbacks = tmpl::list<>;
using compute_tags_on_element = tmpl::list<ExampleTimeTagCompute>;
static constexpr ::ah::Destination destination =
::ah::Destination::ControlSystem;
static std::string name() { return "ExampleHorizon"; }
};