21 #include "SheafSystem/constant_eval_family.h" 23 #include "SheafSystem/assert_contract.h" 24 #include "SheafSystem/base_space_member.h" 25 #include "SheafSystem/constant_hex.h" 26 #include "SheafSystem/constant_point.h" 27 #include "SheafSystem/constant_quad.h" 28 #include "SheafSystem/constant_segment.h" 29 #include "SheafSystem/constant_tet.h" 30 #include "SheafSystem/constant_triangle.h" 31 #include "SheafSystem/factory.h" 32 #include "SheafSystem/fiber_bundles_namespace.h" 33 #include "SheafSystem/int_set.h" 34 #include "SheafSystem/namespace_poset.h" 35 #include "SheafSystem/sheaf.h" 45 fiber_bundle::constant_eval_family::
145 require(xother != 0);
165 fiber_bundle::constant_eval_family::
196 ensure(!result.empty());
212 static const string result(
"constant");
216 ensure(!result.empty());
266 lmbr.attach_to_state(lhost,
"segment");
269 lmbr.attach_to_state(lhost,
"segment_complex");
272 lmbr.attach_to_state(lhost,
"triangle");
275 lmbr.attach_to_state(lhost,
"triangle_nodes");
278 lmbr.attach_to_state(lhost,
"triangle_complex");
281 lmbr.attach_to_state(lhost,
"quad");
284 lmbr.attach_to_state(lhost,
"quad_nodes");
287 lmbr.attach_to_state(lhost,
"quad_complex");
290 lmbr.attach_to_state(lhost,
"hex");
293 lmbr.attach_to_state(lhost,
"hex_nodes");
296 lmbr.attach_to_state(lhost,
"hex_complex");
299 lmbr.attach_to_state(lhost,
"structured_block_1d");
302 lmbr.attach_to_state(lhost,
"structured_block_2d");
305 lmbr.attach_to_state(lhost,
"structured_block_3d");
308 lmbr.attach_to_state(lhost,
"tetra");
311 lmbr.attach_to_state(lhost,
"tetra_nodes");
314 lmbr.attach_to_state(lhost,
"tetra_complex");
317 lmbr.detach_from_state();
352 fiber_bundle::constant_eval_family::
353 constant_eval_family()
const pod_type & pod() const
The "plain old data" storage of this; the value in the external id space.
virtual bool invariant() const
Class invariant.
The default name space; a poset which contains other posets as members.
bool state_is_read_accessible() const
True if this is attached and if the state is accessible for read or access control is disabled...
members_type _members
The members of the family.
A section evaluator with a constant value over a square 2D domain.
A section evaluator with a constant value over a 1D domain.
void force_item(index_type xindex, const_reference_type xitem)
Puts the item xitem at index xindex, resizing if necessary; any other new storage allocated is uninit...
A section evaluator with a constant value over a 1D domain.
A section evaluator with a constant value over a triangular 2D domain.
eval_family()
Default constructor.
poset_state_handle & member_poset(pod_index_type xhub_id, bool xauto_access=true) const
The poset_state_handle object referred to by hub id xhub_id.
bool is_initialized() const
True if this has been populated with members.
static const std::string & prototypes_poset_name()
The name of the prototypes poset.
virtual void initialize(const namespace_poset &xname_space)
Initializes this to contain members for name space xname_space.
virtual bool extrema_are_dofs() const
True if the extrema (minima or maxima) of the members of this family occur at the discretization poin...
A client handle for a member of a base space poset.
virtual bool is_ancestor_of(const any *xother) const
Conformance test; true if other conforms to this.
Abstract base class with useful features for all objects.
static const std::string & static_class_name()
The name of this class of families.
A client handle for a mutable partially ordered set.
A family of compatible section evaluators, one for each member of some family of cell types; a map fr...
virtual bool dofs_are_values() const
True if the dofs used by the members of this family are section values, that is, the evaluators are i...
virtual constant_eval_family * clone() const
Virtual constructor; makes a new instance of the same type as this.
void disable_invariant_check() const
Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing inv...
virtual void release_access(bool xall=false) const
Release access. If xall is true, release all levels of access. Otherwise, release one level of access...
bool contains_poset(pod_index_type xhub_id, bool xauto_access=true) const
True if this contains a poset with hub id xhub_id..
void initialize_members(size_type xmembers_ub)
Initialize storage for the members.
bool invariant_check() const
True if invariant checking is enabled.
A family of section evaluators containing members for constant functions on primitive cells...
virtual const std::string & class_name() const
The name of this family.
virtual scoped_index member_index_ub() const
The upper bound on the member_index;.
A section evaluator with a constant value over a tetrahedral 3D domain.
void attach_to_state(const namespace_poset *xns, const poset_path &xpath, bool xauto_access=true)
Attach to the state specified by path xpath in the namespace xns.
virtual ~constant_eval_family()
Destructor.
virtual void get_read_access() const
Get read access to the state associated with this.
A section evaluator using trilinear interpolation over a cubic 3D domain.
Namespace for the fiber_bundles component of the sheaf system.
bool is_same_type(const any *other) const
True if other is the same type as this.
virtual bool invariant() const
Class invariant.
void enable_invariant_check() const
Enable invariant checking.
virtual void initialize(const namespace_poset &xname_space)=0
Initializes this to contain members for name space xname_space.