21 #include "SheafSystem/met_ed.h" 23 #include "SheafSystem/abstract_poset_member.impl.h" 24 #include "SheafSystem/assert_contract.h" 25 #include "SheafSystem/at0.h" 26 #include "SheafSystem/stp_space.h" 27 #include "SheafSystem/fiber_bundles_namespace.h" 28 #include "SheafSystem/schema_poset_member.h" 29 #include "SheafSystem/wsv_block.h" 134 vd_lite::operator=(xrow_dofs);
138 postcondition_of(vd_lite::operator=(xrow_dofs));
226 const string& result = static_class_name();
230 ensure(!result.empty());
245 static const string result(
"met_ed_lite");
249 ensure(!result.empty());
271 ensure(is_same_type(*result));
295 require(&xother != 0);
301 bool result =
dynamic_cast<const met_ed_lite*
>(&xother) != 0;
314 if(invariant_check())
318 disable_invariant_check();
322 invariance(met_lite::invariant());
328 enable_invariant_check();
355 static const poset_path result(standard_schema_poset_name(),
"met_ed_schema");
377 standard_schema_path().member_name(),
378 met::standard_schema_path(),
382 lschema.detach_from_state();
407 require(!xhost_path.
empty());
410 require(xschema_path.
full());
412 require(schema_poset_member::conforms_to(xns, xschema_path, standard_schema_path()));
420 host_type::new_table(xns, xhost_path, xschema_path, 2, xvector_space_path, xauto_access);
424 ensure(xns.
owns(result, xauto_access));
425 ensure(result.
path(
true) == xhost_path);
427 ensure(result.
schema(
true).
path(xauto_access) == xschema_path);
429 ensure(result.
factor_ct(
true) == result.
d(
true));
430 ensure(result.
d(
true) == schema_poset_member::row_dof_ct(xns, xschema_path, xauto_access));
432 ensure(result.
p(
true) == 2);
433 ensure(result.
dd(
true) == result.
d(
true));
477 attach_to_state(xhost, xhub_id);
483 ensure(index() == xhub_id);
484 ensure(is_attached());
498 attach_to_state(xhost, xid.
hub_pod());
504 ensure(index() ==~ xid);
505 ensure(is_attached());
516 require(!xname.empty());
521 attach_to_state(xhost, xname);
527 ensure(name() == xname);
528 ensure(is_attached());
538 require(xother != 0);
542 attach_to_state(xother);
547 ensure(is_attached());
548 ensure(is_same_state(xother));
558 require(precondition_of(new_jim_state(xhost, 0,
false, xauto_access)));
562 new_jim_state(xhost, 0,
false, xauto_access);
566 ensure(postcondition_of(new_jim_state(xhost, 0,
false, xauto_access)));
580 require(is_ancestor_of(&xother));
581 require(precondition_of(attach_to_state(&xother)));
585 attach_to_state(&xother);
589 ensure(postcondition_of(attach_to_state(&xother)));
603 require(precondition_of(attach_to_state(&xother)));
607 attach_to_state(&xother);
611 ensure(postcondition_of(attach_to_state(&xother)));
745 const string& result = static_class_name();
749 ensure(!result.empty());
764 static const string result(
"met_ed");
768 ensure(!result.empty());
817 require(xother != 0);
824 bool result =
dynamic_cast<const met_ed*
>(xother) != 0;
848 invariance(met::invariant());
850 if (invariant_check())
854 disable_invariant_check();
860 enable_invariant_check();
865 ensure(is_derived_query);
virtual poset_path path(bool xauto_access=true) const
The path of this poset.
bool state_is_auto_read_write_accessible(bool xauto_access) const
True if state is auto accessible for read and write, that is, if the state is already accessible for ...
bool full() const
True if both poset name and member name are not empty.
static void make_standard_schema(namespace_poset &xns)
Creates the standard schema for this class in namespace xns.
poset_path path(bool xauto_access=true) const
A path to this component.
static host_type & new_host(namespace_type &xns, const poset_path &xhost_path, const poset_path &xschema_path, const poset_path &xvector_space_path, bool xauto_access)
Creates a new host table for members of this type. The poset is created in namespace xns with path xh...
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...
bool path_is_auto_read_accessible(const poset_path &xpath, bool xauto_access) const
True if the state referred to xpath exists and is auto read accessible.
The standard fiber bundles name space; extends the standard sheaves namespace by defining base space...
poset_path vector_space_path() const
The path of the underlying vector space.
virtual volatile_type * lite_type() const
Virtual conversion to the associated volatile type.
bool contains_poset_member(pod_index_type xposet_hub_id, pod_index_type xmember_hub_id, bool xauto_access=true) const
True if this contains a poset with hub id xposet_hub_id which contains a member with hub id xmember_h...
A client handle for a general, abstract partially order set.
A metric tensor over a d-dimensional Euclidean vector space (persistent version). ...
virtual const std::string & class_name() const
The name of this class.
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
virtual const volatile_type & lite_prototype() const
Virtual constructor for the associated volatile type.
bool invariant() const
Class invariant.
bool invariant() const
Class invariant.
virtual ~met_ed_lite()
Destructor.
A metric tensor over a d-dimensional Euclidean vector space (volatile version).
met_ed_lite & operator=(const met_ed_lite &xother)
Assignment operator.
A metric tensor over an abstract vector space (volatile version).
T::row_dofs_type & row_dofs(T &x0)
The row dofs pod type for x0 (mutable version).
virtual met_ed & operator=(const abstract_poset_member &xother)
Assignment operator; synonym for attach_to_state(&xother).
static int d(const namespace_poset &xns, int xp, const poset_path &xvector_space_path, bool xauto_access)
The tensor dimension implied by tensor degree xp and the dimension of the domain vector space specifi...
Abstract base class with useful features for all volatile objects.
Abstract base class with useful features for all objects.
virtual schema_poset_member & schema()
The schema for this poset (mutable version).
A space of scalars viewed as an antisymmetric tensor space of degree 0.
bool state_is_read_write_accessible() const
True if this is attached and if the state is accessible for read and write or access control is disab...
bool owns(const poset_state_handle &xposet, bool xauto_access) const
True if and only if this contains the poset xposet. synonym for contains_poset(xposet.poset_path(true), xauto_access)
An index within the external ("client") scope of a given id space.
virtual const std::string & class_name() const
The name of this class.
bool contains_path(const poset_path &xpath, bool xauto_access=true) const
True if this contains the poset or poset member specified by xpath.
virtual bool contains_member(pod_index_type xmbr_hub_id, bool xauto_access=true) const
True if some version of this poset contains poset member with hub id xmbr_hub_id. ...
int p(int xd, int xdd) const
Tensor degree as a function of tensor dimension xd and domain dimension xdd.
met_ed()
Default constructor.
bool empty() const
True if both poset name and member name are empty.
bool contains_poset(pod_index_type xhub_id, bool xauto_access=true) const
True if this contains a poset with hub id xhub_id..
static int factor_ct(int xd)
Factor_ct() as a function of dimension xd.
virtual bool is_ancestor_of(const any_lite &xother) const
Conformance test; true if other conforms to this.
int_type pod_index_type
The plain old data index type.
int dd() const
The dimension of the underlying ("domain") vector space.
static const std::string & static_class_name()
The name of this class.
bool is_ancestor_of(const any *xother) const
True if xother conforms to current.
An abstract client handle for a member of a poset.
static const std::string & static_class_name()
The name of this class.
static const poset_path & standard_schema_path()
The path to the standard schema for this class.
virtual met_ed * clone() const
Make a new handle, no state instance of current.
An abstract symmetric tensor space of degree p.
Namespace for the fiber_bundles component of the sheaf system.
Row dofs type for class vd.
virtual met_ed_lite * clone() const
Virtual constructor, makes a new instance of the same type as this.
bool state_is_not_read_accessible() const
True if this is attached and if the state is accessible for read or if access control is disabled...
A client handle for a poset member which has been prepared for use as a schema.
met_ed_lite()
Default constructor.
pod_type hub_pod() const
The pod value of this mapped to the unglued hub id space.