|
| 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 |
|
| 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...
|
|
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
-
Dim | Spatial dimension of the grid |
TensorTags | List 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. |