SpECTRE  v2025.08.19
ah::Criteria::Residual Class Reference

Recommend an updated resolution \(L_{\rm new}\) based on the resolution \(L\) of the Strahlkorper and its residual \(\delta\). More...

#include <Residual.hpp>

Classes

struct  MaxResidual
 
struct  MinResidual
 
struct  MinResolutionL
 

Public Types

using options = tmpl::list< MinResidual, MaxResidual, MinResolutionL >
 
using argument_tags = tmpl::list<>
 
using compute_tags_for_observation_box = tmpl::list<>
 

Public Member Functions

 Residual (double min_residual, double max_residual, size_t min_resolution_l, const Options::Context &context={})
 
std::string observation_name () override
 
template<typename Metavariables , typename Frame >
size_t operator() (const Parallel::GlobalCache< Metavariables > &, const ylm::Strahlkorper< Frame > &strahlkorper, const FastFlow::IterInfo &info) const
 
void pup (PUP::er &p) override
 
bool is_equal (const Criterion &other) const override
 
- Public Member Functions inherited from ah::Criterion
 Criterion (CkMigrateMessage *msg)
 
 WRAPPED_PUPable_abstract (Criterion)
 
virtual std::string observation_name ()=0
 
virtual bool is_equal (const Criterion &other) const =0
 
template<typename ComputeTagsList , typename DataBoxType , typename Metavariables , typename Frame >
auto evaluate (const ObservationBox< ComputeTagsList, DataBoxType > &box, Parallel::GlobalCache< Metavariables > &cache, const ylm::Strahlkorper< Frame > &strahlkorper, const FastFlow::IterInfo &info) const
 Evaluates the apparent horizon criteria by selecting the appropriate derived class and forwarding its argument_tags from the ObservationBox (along with the GlobalCache) to the call operator of the derived class. More...
 

Static Public Attributes

static constexpr Options::String help
 

Detailed Description

Recommend an updated resolution \(L_{\rm new}\) based on the resolution \(L\) of the Strahlkorper and its residual \(\delta\).

Details

The returned recommended resolution \(L_{\rm new}\) depends on the following options:

The maximum resolution \(L_{\rm max}\) is provided by the global cache entry ah::Tags::LMax. The value returned for \(L_{\rm new}\) is then determined as follows:

  • If \(L > L_{\rm min}\) and \(\delta < \delta_{\rm min}\), then \(L_{\rm new} = L - 1\)
  • If \(L < L_{\rm max}\) and \(\delta > \delta_{\rm max}\), then \(L_{\rm new} = L + 1\)
  • Otherwise, \(L_{\rm new} = L\) Note that the residual is obtained from the provided FastFlow::IterInfo. The residual is the gr::surfaces::expansion weighted by the FastFlow weights.

Member Function Documentation

◆ is_equal()

bool ah::Criteria::Residual::is_equal ( const Criterion other) const
overridevirtual

Implements ah::Criterion.

◆ observation_name()

std::string ah::Criteria::Residual::observation_name ( )
inlineoverridevirtual

Implements ah::Criterion.

Member Data Documentation

◆ help

constexpr Options::String ah::Criteria::Residual::help
staticconstexpr
Initial value:
= {
"Use Strahlkorper residual and resolution to suggest a new "
"resolution."}

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