25 #ifndef SHEAF_DLL_SPEC_H 26 #include "SheafSystem/sheaf_dll_spec.h" 30 #include "SheafSystem/ed.h" 152 e1_lite(
const row_dofs_type& xrow_dofs);
157 e1_lite& operator=(
const row_dofs_type& xrow_dofs);
168 operator row_dofs_type& ();
174 operator const row_dofs_type& ()
const;
182 virtual void put_component(
value_type x_comp);
247 virtual int dd()
const;
271 static const tp_lite& static_tp_prototype(
int xp);
277 virtual const tp_lite& tp_prototype(
int xp)
const;
283 static const atp_lite& static_atp_prototype(
int xp);
289 virtual const atp_lite& atp_prototype(
int xp)
const;
295 static const stp_lite& static_stp_prototype(
int xp);
301 virtual const stp_lite& stp_prototype(
int xp)
const;
328 virtual const std::string& class_name()
const;
365 virtual bool is_ancestor_of(
const any_lite& xother)
const;
370 bool invariant()
const;
380 virtual const void*
row_dofs()
const;
400 class SHEAF_DLL_SPEC
e1 :
public ed 412 static const poset_path& standard_schema_path();
506 const row_dofs_type& xrdt,
507 bool xauto_access =
true);
512 e1& operator=(
const row_dofs_type& xrdt);
522 e1& operator=(
const e1& xother);
532 virtual const volatile_type& lite_prototype()
const;
537 virtual volatile_type* lite_type()
const;
611 virtual void put_component(
dof_type xcomp);
617 operator row_dofs_type& ();
623 operator const row_dofs_type& ()
const;
643 static tp* new_tp(
tp_space& xvector_space,
int xp);
649 static atp* new_atp(
tp_space& xvector_space,
int xp);
655 static stp* new_stp(
tp_space& xvector_space,
int xp);
661 virtual tp* new_tp(
int xp,
bool xauto_access)
const;
667 virtual atp* new_atp(
int xp,
bool xauto_access)
const;
673 virtual stp* new_stp(
int xp,
bool xauto_access)
const;
692 virtual const std::string& class_name()
const;
709 inline e1*
clone(
bool xnew_state,
bool xauto_access =
true)
const 711 return static_cast<e1*
>(
ed::clone(xnew_state, xauto_access));
730 bool is_ancestor_of(
const any* other)
const;
735 bool invariant()
const;
751 template <
typename T>
752 std::ostream& operator<<(std::ostream& xos, const e1_row_dofs_type<T>& xrdt);
757 #endif // ifndef E1_H virtual e1_lite * clone(bool xnew_state, bool xauto_access) const
Virtual constructor, makes a new instance of the same type as this; synonym for clone(), intended for use only in certain templates.
e1_row_dofs_type< T > * clone(bool xnew_state, bool xauto_access) const
Virtual constructor, makes a new instance of the same type as this; synonym for clone(), intended for use only in certain templates.
A symmetric tensor of degree p over an abstract vector space.
vd_value_type value_type
The type of component in the fiber; the scalar type in the fiber vector space.
An antisymmetric tensor of degree p.
The default name space; a poset which contains other posets as members.
The standard fiber bundles name space; extends the standard sheaves namespace by defining base space...
A client handle for a general, abstract partially order set.
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
value_type component(int xindex) const
The xindex-th component.
T components[1]
The components (row_dofs).
T::row_dofs_type & row_dofs(T &x0)
The row dofs pod type for x0 (mutable version).
Euclidean vector space of dimension 1 (persistent version).
static const std::string & static_class_name()
The name of this class.
An antisymmetric tensor of degree p over an abstract vector space (volatile version).
A general tensor of "degree" p and given "variance" over an abstract vector space.
Abstract base class with useful features for all volatile objects.
e1_row_dofs_type< T > row_dofs_type
The type of the row dofs (type of this).
Abstract base class with useful features for all objects.
Euclidean vector space of dimension d (volatile version).
e1_lite volatile_type
The associated volatile type.
An index within the external ("client") scope of a given id space.
virtual value_type component(int xindex) const
The value of the xi-th component.
e1_row_dofs_type< double > row_dofs_type
The type of the row dofs.
A general tensor of degree p over an abstract vector space (volatile version). Volatile version does ...
static int d()
The dimension of the row dof components.
virtual ed * clone() const
Make a new handle, no state instance of current.
Row dofs type for class e1.
bool operator==(const singly_linked_list< T, Alloc > &lhs, const singly_linked_list< T, Alloc > &rhs)
Checks if the contents of lhs and rhs are equal, that is, whether lhs.size() == rhs.size() and each element in lhs compares equal with the element in rhs at the same position.
e1_row_dofs_type< double > row_dofs_type
The type of the row dofs.
void put_component(int xindex, value_type xcomp)
Set the xindex-th component to xcomp.
An abstract vector space viewed as an antisymmetric tensor space of degree 1.
Euclidean vector space of dimension d (peresistent version).
int_type pod_index_type
The plain old data index type.
Euclidean vector space of dimension 1 (volatile version).
T & operator[](int xindex)
Value of xindex-th component (row dof) (non const version).
An abstract client handle for a member of a poset.
e1_row_dofs_type< T > * clone() const
Creates a new instance of the same type as this.
vd_dof_type dof_type
The type of the degrees of freedom. Note that although dof_type == value_type in this implementation...
virtual void put_component(int xindex, value_type xvalue)
Sets the value of the xindex-th component to xvalue.
An abstract tensor space of degree p.
row_dofs_type _row_dofs
Row_dofs_type.
A symmetric tensor of degree p over an abstract vector space (volatile version).
e1 vector_space_type
Type of underlying vector space.
Namespace for the fiber_bundles component of the sheaf system.
e1 * clone(bool xnew_state, bool xauto_access=true) const
Make a new handle instance of current. Attach the new instance to a new state if xnew_state is true...
T dof_type
The type of the dofs.