SpECTRE  v2022.09.02
control_system::protocols::ControlError Struct Reference

Definition of a control error. More...

#include <ControlError.hpp>

Classes

struct  test
 

Detailed Description

Definition of a control error.

A control error is used within a control system to compute how far off the the value you are controlling is from its expected value.

A conforming type must specify:

  • a call operator that returns a DataVector with a signature the same as in the example shown 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:372
    An associative container that is indexed by structs.
    Definition: TaggedTuple.hpp:261
    Indicate a class conforms to the Protocol.
    Definition: ProtocolHelpers.hpp:22

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