SpECTRE  v2024.09.29
amr::Criteria::Constraints< Dim, TensorTags > Class Template Reference

Refine the grid towards the target constraint violation. More...

#include <Constraints.hpp>

Classes

struct  AbsoluteTarget
 
struct  CoarseningFactor
 
struct  ConstraintsToMonitor
 

Public Types

using options = tmpl::list< ConstraintsToMonitor, AbsoluteTarget, CoarseningFactor >
 
using compute_tags_for_observation_box = tmpl::append< TensorTags, tmpl::list< domain::Tags::JacobianCompute< Dim, Frame::ElementLogical, Frame::Inertial >, Events::Tags::ObserverJacobianCompute< Dim, Frame::ElementLogical, Frame::Inertial > > >
 
using argument_tags = tmpl::list<::Tags::ObservationBox >
 

Public Member Functions

 Constraints (std::vector< std::string > vars_to_monitor, double abs_target, double coarsening_factor, const Options::Context &context={})
 
std::string observation_name () override
 
template<typename ComputeTagsList , typename DataBoxType , typename Metavariables >
std::array< Flag, Dim > operator() (const ObservationBox< ComputeTagsList, DataBoxType > &box, Parallel::GlobalCache< Metavariables > &cache, const ElementId< Dim > &element_id) const
 
void pup (PUP::er &p) override
 
- Public Member Functions inherited from amr::Criterion
 Criterion (CkMigrateMessage *msg)
 
 WRAPPED_PUPable_abstract (Criterion)
 
virtual std::string observation_name ()=0
 
template<typename ComputeTagsList , typename DataBoxType , typename Metavariables >
auto evaluate (const ObservationBox< ComputeTagsList, DataBoxType > &box, Parallel::GlobalCache< Metavariables > &cache, const ElementId< Metavariables::volume_dim > &element_id) const
 Evaluates the AMR criteria by selecting the appropriate derived class and forwarding its argument_tags from the ObservationBox (along with the GlobalCache and ArrayIndex) to the call operator of the derived class. More...
 

Static Public Attributes

static constexpr Options::String help
 

Detailed Description

template<size_t Dim, typename TensorTags>
class amr::Criteria::Constraints< Dim, TensorTags >

Refine the grid towards the target constraint violation.

  • If any constraint is above the target value, the element will be p-refined.
  • If all constraints are below the target times the "coarsening factor" the element will be p-coarsened.

This criterion is based on Sec. 6.1.4 in [186] .

If the coarsening factor turns out to be hard to choose, then we can try to eliminate it by projecting the variables to a lower polynomial order before computing constraints, or something like that.

Template Parameters
DimSpatial dimension of the grid
TensorTagsList of tags of the constraints to be monitored. These must be tensors of rank 2 or higher. The first index must be a lower spatial index that originates from a derivative.

Member Function Documentation

◆ observation_name()

template<size_t Dim, typename TensorTags >
std::string amr::Criteria::Constraints< Dim, TensorTags >::observation_name ( )
inlineoverridevirtual

Implements amr::Criterion.

Member Data Documentation

◆ help

template<size_t Dim, typename TensorTags >
constexpr Options::String amr::Criteria::Constraints< Dim, TensorTags >::help
staticconstexpr
Initial value:
= {
"Refine the grid towards the target constraint violation"}

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