22 #include "SheafSystem/edge_centered_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::edge_centered_refiner_family::
55 initialize(xbase_space, xpolicy);
60 ensure(postcondition_of(initialize(xbase_space, xpolicy)));
67 fields::edge_centered_refiner_family::
117 ensure(!result.empty());
132 static const string result(
"edge_centered_refiner_family");
136 ensure(!result.empty());
137 ensure(result ==
"edge_centered_refiner_family");
147 fields::edge_centered_refiner_family::
148 edge_centered_refiner_family()
168 fields::edge_centered_refiner_family::
169 _has_prototype = make_prototype();
172 fields::edge_centered_refiner_family::
355 require(xother != 0);
A field refiner that subdivides a triangle into 4 triangles by introducing a new vertex in the center...
virtual edge_centered_refiner_family * clone() const
Virtual constructor; makes a new instance of the same type as this.
static const std::string & static_class_name()
The name of this class of families.
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 const std::string & class_name() const
The name of this family.
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.
virtual bool invariant() const
Class invariant.
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.
A family of field refiners that introduce a new vertex in each edge, but avoid introducing new vertic...
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...
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.
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 bool is_ancestor_of(const any *xother) const
Conformance test; true if other conforms to this.
virtual bool invariant() const
Class invariant.
bool is_same_type(const any *other) const
True if other is the same type as this.
virtual ~edge_centered_refiner_family()
Destructor.
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.
void enable_invariant_check() const
Enable invariant checking.