22 #include "SheafSystem/barycentric_refiner_family.h" 24 #include "SheafSystem/assert_contract.h" 25 #include "SheafSystem/barycentric_quad_refiner.h" 26 #include "SheafSystem/barycentric_triangle_refiner.h" 27 #include "SheafSystem/base_space_member.h" 28 #include "SheafSystem/base_space_poset.h" 29 #include "SheafSystem/block.impl.h" 30 #include "SheafSystem/edge_centered_triangle_refiner.h" 31 #include "SheafSystem/factory.impl.h" 32 #include "SheafSystem/fiber_bundles_namespace.h" 33 #include "SheafSystem/poset.h" 34 #include "SheafSystem/zone_centered_segment_refiner.h" 45 fields::barycentric_refiner_family::
55 initialize(xbase_space, xpolicy);
60 ensure(postcondition_of(initialize(xbase_space, xpolicy)));
67 fields::barycentric_refiner_family::
116 ensure(!result.empty());
131 static const string result(
"barycentric_refiner_family");
135 ensure(!result.empty());
136 ensure(result ==
"barycentric_refiner_family");
146 fields::barycentric_refiner_family::
147 barycentric_refiner_family()
166 fields::barycentric_refiner_family::
167 _has_prototype = make_prototype();
170 fields::barycentric_refiner_family::
351 require(xother != 0);
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 ...
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.
A field refiner that subdivides a quad into 4 quads by introducing a new vertex in the center of the ...
bool is_initialized() const
True if this has been populated with members.
virtual bool is_ancestor_of(const any *xother) const
Conformance test; true if other conforms to this.
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 barycentric_refiner_family * clone() const
Virtual constructor; makes a new instance of the same type as this.
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.
virtual bool invariant() const
Class invariant.
An abstract policy that determines the conditions under which a zone should be refined.
static const std::string & static_class_name()
The name of this class of families.
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.
virtual ~barycentric_refiner_family()
Destructor.
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.
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 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.
A field refiner that subdivides a triangle into 6 triangles by introducing a new vertex in the center...
virtual bool invariant() const
Class invariant.
A family of field refiners that introduce a new vertex in in the barycenter of each cell (zone...
bool is_same_type(const any *other) const
True if other is the same type as this.
virtual const std::string & class_name() const
The name of this family.
void enable_invariant_check() const
Enable invariant checking.