SpECTRE  v2022.05.05
control_system::ControlErrors Namespace Reference

All control errors that will be used in control systems. More...

Classes

struct  Expansion
 Control error in the 3D CubicScale coordinate map. More...
 

Detailed Description

All control errors that will be used in control systems.

Details

A control error is a struct that conforms to the control_system::protocols::ControlError protocol. Control errors compute the error between current map parameters and what they are expected to be. See an example of a control error here:

struct ExampleControlError
: tt::ConformsTo<control_system::protocols::ControlError> {
void pup(PUP::er& /*p*/) {}
template <typename Metavariables, typename... QueueTags>
const double time,
const std::string& function_of_time_name,
const tuples::TaggedTuple<QueueTags...>& measurements) {
const auto& functions_of_time =
Parallel::get<domain::Tags::FunctionsOfTime>(cache);
const double current_map_value =
functions_of_time.at(function_of_time_name)->func(time)[0][0];
const double measured_value = 0.0;
// Would do something like get<QueueTag>(measurements) here
(void)measurements;
return {current_map_value - measured_value};
}
};
Stores a collection of function values.
Definition: DataVector.hpp:48
A Charm++ chare that caches constant data once per Charm++ node or non-constant data once per Charm++...
Definition: GlobalCache.hpp:298
An associative container that is indexed by structs.
Definition: TaggedTuple.hpp:259
Indicate a class conforms to the Protocol.
Definition: ProtocolHelpers.hpp:22