21 #include "SheafSystem/assert_contract.h" 22 #include "SheafSystem/base_space_member.h" 23 #include "SheafSystem/bilinear_2d.h" 24 #include "SheafSystem/constant_point.h" 25 #include "SheafSystem/dlinear_eval_family.h" 26 #include "SheafSystem/factory.h" 27 #include "SheafSystem/fiber_bundles_namespace.h" 28 #include "SheafSystem/int_set.h" 29 #include "SheafSystem/linear_1d.h" 30 #include "SheafSystem/linear_2d.h" 31 #include "SheafSystem/linear_3d.h" 32 #include "SheafSystem/namespace_poset.h" 33 #include "SheafSystem/sheaf.h" 34 #include "SheafSystem/trilinear_3d.h" 44 fiber_bundle::dlinear_eval_family::
144 require(xother != 0);
164 fiber_bundle::dlinear_eval_family::
195 ensure(!result.empty());
211 static const string result(
"dlinear");
215 ensure(!result.empty());
264 lmbr.attach_to_state(lhost,
"segment");
267 lmbr.attach_to_state(lhost,
"segment_complex");
270 lmbr.attach_to_state(lhost,
"triangle");
273 lmbr.attach_to_state(lhost,
"triangle_nodes");
276 lmbr.attach_to_state(lhost,
"triangle_complex");
279 lmbr.attach_to_state(lhost,
"quad");
282 lmbr.attach_to_state(lhost,
"quad_nodes");
285 lmbr.attach_to_state(lhost,
"quad_complex");
288 lmbr.attach_to_state(lhost,
"hex");
291 lmbr.attach_to_state(lhost,
"hex_nodes");
294 lmbr.attach_to_state(lhost,
"hex_complex");
297 lmbr.attach_to_state(lhost,
"structured_block_1d");
300 lmbr.attach_to_state(lhost,
"structured_block_2d");
303 lmbr.attach_to_state(lhost,
"structured_block_3d");
306 lmbr.attach_to_state(lhost,
"tetra");
309 lmbr.attach_to_state(lhost,
"tetra_nodes");
312 lmbr.attach_to_state(lhost,
"tetra_complex");
315 lmbr.detach_from_state();
350 fiber_bundle::dlinear_eval_family::
351 dlinear_eval_family()
virtual dlinear_eval_family * clone() const
Virtual constructor; makes a new instance of the same type as this.
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 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...
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 family of section evaluators containing uni-, bi-, and tri-linear evaluators.
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.
A section evaluator using linear interpolation over a tetrahedral 3D domain.
virtual const std::string & class_name() const
The name of this family.
A client handle for a member of a base space poset.
Abstract base class with useful features for all objects.
virtual ~dlinear_eval_family()
Destructor.
A section evaluator using trilinear interpolation over a cubic 3D domain.
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 is_ancestor_of(const any *xother) const
Conformance test; true if other conforms to this.
virtual void initialize(const namespace_poset &xname_space)
Initializes this to contain members for name space xname_space.
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...
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 section evaluator using linear interpolation over a triangular 2D domain.
virtual scoped_index member_index_ub() const
The upper bound on the member_index;.
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...
A section evaluator using linear interpolation over a 1D 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 void get_read_access() const
Get read access to the state associated with this.
Namespace for the fiber_bundles component of the sheaf system.
A section evaluator using bilinear interpolation over a square 2D domain.
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.