24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 29 #include "SheafSystem/met_ed.h" 32 #ifndef SYMMETRIC_MATRIX_3X3_H 33 #include "SheafSystem/symmetric_matrix_3x3.h" 37 #include "SheafSystem/e3.h" 199 met_e3_lite& operator=(
const row_dofs_type& xrow_dofs);
209 met_e3_lite& operator=(
const matrix_type& xmatrix);
215 operator matrix_type& ();
221 operator const matrix_type& ()
const;
227 operator row_dofs_type& ();
233 operator const row_dofs_type& ()
const;
251 virtual void put_components(
const value_type& xx_comp,
331 virtual int dd()
const;
350 virtual const tp_lite& tp_prototype(
int xp)
const;
356 virtual const atp_lite& atp_prototype(
int xp)
const;
362 virtual const stp_lite& stp_prototype(
int xp)
const;
392 virtual const std::string& class_name()
const;
429 virtual bool is_ancestor_of(
const any_lite& xother)
const;
434 bool invariant()
const;
444 virtual const void*
row_dofs()
const;
474 static const poset_path& standard_schema_path();
570 const row_dofs_type& xrdt,
571 bool xauto_access =
true);
576 met_e3& operator=(
const row_dofs_type& xrdt);
596 virtual const volatile_type& lite_prototype()
const;
601 virtual volatile_type* lite_type()
const;
607 operator row_dofs_type& ();
613 operator const row_dofs_type& ()
const;
705 virtual tp* new_tp(
int xp,
bool xauto_access)
const;
711 virtual atp* new_atp(
int xp,
bool xauto_access)
const;
717 virtual stp* new_stp(
int xp,
bool xauto_access)
const;
735 virtual const std::string& class_name()
const;
752 inline met_e3*
clone(
bool xnew_state,
bool xauto_access =
true)
const 774 bool is_ancestor_of(
const any* xother)
const;
779 bool invariant()
const;
794 template <
typename T>
795 std::ostream& operator<<(std::ostream& xos, const met_e3_row_dofs_type<T>& xrdt);
797 namespace met_algebra
803 SHEAF_DLL_SPEC
void raise(
const met_e3& xmetric,
const e3& xcovector,
e3& xresult,
809 SHEAF_DLL_SPEC
void lower(
const met_e3& xmetric,
const e3& xvector,
e3& xresult,
839 #endif // ifndef MET_E3_H SHEAF_DLL_SPEC tensor_variance lower(const tensor_variance &x0, int xi)
The variance of the lower of a tensor with variance x0 on index xi.
A symmetric tensor of degree p over an abstract vector space.
An antisymmetric tensor of degree p.
Euclidean vector space of dimension 3 (volatile version).
row_dofs_type _row_dofs
Row_dofs_type.
vd_value_type value_type
The type of component in the fiber; the scalar type in the fiber vector space.
A metric tensor over a 1 dimensional Euclidean vector space (volatile version).
virtual met_e3_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.
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.
e3_lite vector_space_type
Type of underlying vector space.
A metric tensor over a d-dimensional Euclidean vector space (persistent version). ...
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
T components[6]
The xx, xy and yy dofs.
static const std::string & static_class_name()
The name of this class.
A metric tensor over a d-dimensional Euclidean vector space (volatile version).
met_e3_row_dofs_type< T > row_dofs_type
The type of the row dofs (type of this).
virtual void put_components(const dof_type xcomps[], int xcomps_dimension)
Set values of all the components to the values in xcomps.
e3 vector_space_type
Type of underlying vector space.
Euclidean vector space of dimension 3 (persistent version).
T::row_dofs_type & row_dofs(T &x0)
The row dofs pod type for x0 (mutable version).
met_e3_row_dofs_type< T > * clone() const
Creates a new instance of the same type as this.
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.
Abstract base class with useful features for all objects.
An index within the external ("client") scope of a given id space.
T & operator[](int xindex)
Value of xindex-th component (row dof) (non const version).
T dof_type
The type of the dofs.
Row dofs type for class met_e3.
met_e3_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.
met_e3 * 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...
A general tensor of degree p over an abstract vector space (volatile version). Volatile version does ...
A metric tensor over a 3 dimensional Euclidean vector space (persistent version). ...
static int d()
The dimension of the row dof components.
int_type pod_index_type
The plain old data index type.
symmetric_matrix_3x3< T > matrix_type
The type of the associated matrix.
An abstract client handle for a member of a poset.
met_e3_row_dofs_type< double > row_dofs_type
The type of the row dofs.
virtual met_ed * clone() const
Make a new handle, no state instance of current.
met_e3_row_dofs_type< double > row_dofs_type
The type of the row dofs.
A symmetric tensor of degree p over an abstract vector space (volatile version).
An abstract symmetric tensor space of degree p.
Namespace for the fiber_bundles component of the sheaf system.
met_e3_lite volatile_type
The associated volatile type.
met_e3_row_dofs_type< double >::matrix_type matrix_type
The type of the associated matrix.
Symmetric matrix with 3 rows and 3 columns.