22 #include "SheafSystem/zone_centered_refiner_family.h" 24 #include "SheafSystem/assert_contract.h" 25 #include "SheafSystem/base_space_member.h" 26 #include "SheafSystem/base_space_poset.h" 27 #include "SheafSystem/block.impl.h" 28 #include "SheafSystem/factory.impl.h" 29 #include "SheafSystem/fiber_bundles_namespace.h" 30 #include "SheafSystem/poset.h" 31 #include "SheafSystem/zone_centered_segment_refiner.h" 32 #include "SheafSystem/zone_centered_tet_refiner.h" 33 #include "SheafSystem/zone_centered_triangle_refiner.h" 44 fields::zone_centered_refiner_family::
54 initialize(xbase_space, xpolicy);
59 ensure(postcondition_of(initialize(xbase_space, xpolicy)));
66 fields::zone_centered_refiner_family::
116 ensure(!result.empty());
131 static const string result(
"zone_centered_refiner_family");
135 ensure(!result.empty());
136 ensure(result ==
"zone_centered_refiner_family");
146 fields::zone_centered_refiner_family::
147 zone_centered_refiner_family()
166 fields::zone_centered_refiner_family::
167 _has_prototype = make_prototype();
170 fields::zone_centered_refiner_family::
352 require(xother != 0);
virtual bool invariant() const
Class invariant.
virtual bool is_ancestor_of(const any *xother) const
Conformance test; true if other conforms to this.
A field refiner that introduces a new vertex in the center of a triangle, but not in the edges...
static factory< field_refiner_family > & family_factory()
A factory for making field_refiner_family objects.
A family of compatible local_field_refiners, one for each member of some family of cell types; a map ...
virtual ~zone_centered_refiner_family()
Destructor.
virtual zone_centered_refiner_family * clone() const
Virtual constructor; makes a new instance of the same type as this.
A field refiner that introduces a new vertex in the center of a segment.
Namespace for fields component of sheaf system.
field_refinement_policy & policy() const
The refinement policy for this family.
bool state_is_read_accessible() const
True if this is attached and if the state is accessible for read or access control is disabled...
size_type size() const
The number of members of this family.
bool is_initialized() const
True if this has been populated with members.
pod_index_type prototype_type_id(const std::string &xname, bool xauto_access=true) const
The type id of the base space member prototype with name xname.
Abstract base class with useful features for all objects.
The lattice of closed cells of a cellular space; a lattice representation of a computational mesh...
virtual const std::string & class_name() const
The name of this family.
A family of field refiners that introduce a new vertex in the center of a zone, but not in the bounda...
local_field_refiner * member(pod_index_type xtype_id) const
The evaluator associated with cell type xtype_id. Note that the result may be void.
An abstract policy that determines the conditions under which a zone should be refined.
virtual void initialize(const base_space_poset &xbase_space, const field_refinement_policy &xpolicy)=0
Initializes this to contain members for base space xbase_space and using policy xpolicy.
static const std::string & static_class_name()
The name of this class of families.
void disable_invariant_check() const
Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing inv...
block< local_field_refiner * > _members
The members of the family.
virtual void initialize(const base_space_poset &xbase_space, const field_refinement_policy &xpolicy)
Initializes this to contain members for base space xbase_space and using policy xpolicy.
An abstract refiner for a field over a local region (primitive cell) in the base space.
bool invariant_check() const
True if invariant checking is enabled.
virtual bool invariant() const
Class invariant.
A field refiner that subdivides a tet into 4 tets by introducing a new vertex in the center...
bool is_same_type(const any *other) const
True if other is the same type as this.
void enable_invariant_check() const
Enable invariant checking.