21 #include "SheafSystem/field_refinement_policy.h" 23 #include "SheafSystem/assert_contract.h" 24 #include "SheafSystem/factory.impl.h" 25 #include "SheafSystem/field_refinement_buffer.h" 26 #include "SheafSystem/field_vd.h" 39 : _refinement_depth_ub(xrefinement_depth_ub)
169 static const string result(
"field_refinement_policy");
196 ensure(unexecutable(
"result is default constructed"));
virtual bool invariant() const
Class invariant, intended to be redefined in each descendant. See below for template for invariant in...
static factory< field_refinement_policy > & policy_factory()
A factory for making policy objects.
virtual ~field_refinement_policy()
Destructor.
size_type _refinement_depth_ub
The upper bound and the refinement level of a cell.
static field_refinement_policy * new_policy(const std::string &xname)
Creates an instance of the policy with class name xname.
field_refinement_policy(size_type xrefinement_depth_ub)
Creates an instance with reinement upper bound xrefinement_ub.
A buffer for data which is used by both a local_field_refiner object and its associated field_refinem...
Namespace for fields component of sheaf system.
size_type refinement_depth_ub() const
The upper bound on the refinement depth of a cell. A cell will not be refined if its refinement depth...
Abstract base class with useful features for all objects.
A factory for instanting descendants of an abstract type T, given the class name of the descendant...
virtual bool should_refine(field_refinement_buffer &xbuffer, size_type xrefinement_depth) const =0
True if the zone specified by xzone_id should be refined.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
An abstract policy that determines the conditions under which a zone should be refined.
void disable_invariant_check() const
Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing inv...
static const std::string & static_class_name()
The class name of this class.
field_vd & target
The field being refined.
virtual field_refinement_policy & operator=(const field_refinement_policy &xother)
Assignment operator.
virtual bool is_ancestor_of(const any *other) const
Conformance test; true if other conforms to this.
bool invariant_check() const
True if invariant checking is enabled.
virtual bool invariant() const
Class invariant.
const field_vd & source
The reference field.
virtual const std::string & class_name() const
The class name of this.
bool state_is_read_accessible() const
True if this is attached and if the coordinates and property are accessible for read or access contro...
void enable_invariant_check() const
Enable invariant checking.
void put_refinement_depth_ub(size_type xub)
Set the refinement depth upper bound to xub.