21 #include "SheafSystem/barycentric_triangle_refiner.h" 23 #include "SheafSystem/assert_contract.h" 24 #include "SheafSystem/error_message.h" 25 #include "SheafSystem/wsv_block.h" 47 ensure(&
policy() == &xpolicy);
122 result = REFINED_ZONE_CT;
195 ensure(result.
ct() > 1);
225 static const string result(
"triangle_nodes");
229 ensure(!result.empty());
262 2.0/3.0, 1.0/6.0, 1.0/3.0, -1.0/3.0, 1.0/6.0, 1.0/3.0
264 { 1.0/6.0, -1.0/3.0, 1.0/3.0, -1.0/3.0, 2.0/3.0, 1.0/3.0},
265 {-1.0/3.0, -1.0/3.0, 1.0/3.0, 2.0/3.0, 1.0/6.0, 1.0/3.0},
266 {-1.0/3.0, -1.0/3.0, 1.0/3.0, 1.0/6.0, -1.0/3.0, 1.0/3.0},
267 {-1.0/3.0, 1.0/6.0, 1.0/3.0, -1.0/3.0, -1.0/3.0, 1.0/3.0},
268 { 1.0/6.0, 2.0/3.0, 1.0/3.0, -1.0/3.0, -1.0/3.0, 1.0/3.0}
406 require(xother != 0);
double chart_point_coord_type
The type of local coordinate in the base space; the scalar type for the local coordinate vector space...
virtual const std::string & zone_type_name() const
The name of the type of zone this creates during refinement.
size_type ct() const
The number of items currently in use.
Namespace for fields component of sheaf system.
An abstract field refiner that subdivides a polygon by introducing new vertices into the centers of t...
virtual bool is_ancestor_of(const any *xother) const
Conformance test; true if other conforms to this.
virtual barycentric_triangle_refiner & operator=(const local_field_refiner &xother)
Assignment operator.
const field_refinement_policy & policy() const
The refinement policy for this refiner.
Abstract base class with useful features for all objects.
virtual bool is_zone_centered_refiner() const
True if this adds a vertex at the center of the zone.
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...
const chart_point_coord_type * local_coordinates_map(size_type xi) const
The map from the local coordinates of refined zone xi t0 the local coordinates of the parent zone...
virtual bool invariant() const
Class invariant.
virtual const block< size_type > & first_vertex_index() const
The index in _vertex_pos of the first vertex of each new zone; contains number of zones + 1 because f...
barycentric_triangle_refiner()
Default constructor; disabled.
An abstract refiner for a field over a local region (primitive cell) in the base space.
virtual size_type unrefined_vertex_ct() const
The number of vertices with refinement depth <= unrefined zone depth.
bool invariant_check() const
True if invariant checking is enabled.
virtual size_type refined_zone_ct() const
The number of refined zones created by this.
A field refiner that subdivides a triangle into 6 triangles by introducing a new vertex in the center...
virtual barycentric_triangle_refiner * clone() const
Virtual constructor, creates a new instance of the same type as this.
virtual bool invariant() const
Class invariant.
An auto_block with a no-initialization initialization policy.
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.
Whitespace-separated-value block; A block of objects of type T that can be conveniently initialized b...
virtual ~barycentric_triangle_refiner()
Destructor.