SpECTRE  v2024.04.12
amr::Limits Class Reference

The limits on refinement level and resolution for AMR. More...

#include <Limits.hpp>


struct  NumGridPoints
 Inclusive bounds on the number of grid points per dimension. More...
struct  RefinementLevel
 Inclusive bounds on the refinement level. More...

Public Types

using options = tmpl::list< RefinementLevel, NumGridPoints >

Public Member Functions

 Limits (const std::optional< std::array< size_t, 2 > > &refinement_level_bounds, const std::optional< std::array< size_t, 2 > > &resolution_bounds, const Options::Context &context={})
 Limits (size_t minimum_refinement_level, size_t maximum_refinement_level, size_t minimum_resolution, size_t maximum_resolution)
size_t minimum_refinement_level () const
size_t maximum_refinement_level () const
size_t minimum_resolution () const
size_t maximum_resolution () const
void pup (PUP::er &p)

Static Public Attributes

static constexpr Options::String help

Detailed Description

The limits on refinement level and resolution for AMR.


  • For a default constructed Limits, the refinement level is bounded between 0 and ElementId<Dim>::max_refinement_level, and the resolution is bounded between 1 and Spectral::maximum_number_of_points<Spectral::Basis::Legendre> which are limits based on the implementation details of ElementId and Mesh.
  • If you specify the limits on the refinement levels and resolutions, they must respect the above limits.
  • Depending upon which Spectral::Basis is chosen, the actual minimum resolution may be higher (usually 2), but this is automatically enforced by EnforcePolicies.

Member Data Documentation

◆ help

constexpr Options::String amr::Limits::help
Initial value:
= {
"Limits on refinement level and resolution for adaptive mesh "

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