24 #ifndef SHEAF_DLL_SPEC_H 25 #include "SheafSystem/sheaf_dll_spec.h" 29 #include "SheafSystem/sec_tuple.h" 33 #include "SheafSystem/at0.h" 152 bool xauto_access =
true);
164 bool xauto_access =
true);
173 int xbase_version = CURRENT_HOST_VERSION,
174 bool xauto_access =
true);
189 sec_vd& operator=(
const vd& xfiber);
204 bool fiber_is_ancestor_of(
const any* xother)
const;
209 virtual const fiber_type& fiber_prototype()
const;
214 virtual int d()
const;
219 virtual int d(
bool xauto_access)
const;
229 poset_path scalar_space_path(
bool xauto_access)
const;
234 virtual bool is_vector(
bool xauto_access)
const;
239 virtual void put_is_vector(
bool xauto_access);
244 virtual bool is_covector(
bool xauto_access)
const;;
249 virtual void put_is_covector(
bool xauto_access);
254 scalar_type* comp(
int i)
const;
259 void set_comp(
int i, scalar_type* xcomponent);
264 vd* value_at_point(
const chart_point& xpt,
bool xauto_access =
true)
const;
269 virtual void value_at_point_pa(
const chart_point& xpt,
271 bool xauto_access =
true)
const;
276 virtual void value_at_point_ua(
const chart_point& xpt,
279 bool xauto_access =
true)
const;
284 virtual int dof_packet_ub();
289 void dof_tuple(dof_type* xbuf,
int xbuflen)
const;
295 sec_vd* deep_copy(
bool xauto_access);
300 void deep_copy(
sec_vd& xother,
bool xauto_access);
338 sec_vd* unify(
bool xauto_access);
345 void unify(
sec_vd& xresult,
bool xauto_access);
412 virtual const std::string& class_name()
const;
417 static const std::string& static_class_name();
422 virtual sec_vd* clone()
const;
429 inline sec_vd*
clone(
bool xnew_state,
bool xauto_access =
true)
const 451 host_type* host()
const;
475 bool is_ancestor_of(
const any* xother)
const;
480 bool invariant()
const;
518 template <
int P,
typename VECTOR_TYPE>
685 SHEAF_DLL_SPEC
size_t deep_size(
const sec_vd& x0,
bool xinclude_shallow =
true);
691 namespace sec_vd_algebra
718 #ifndef DOXYGEN_1_5_4_SKIP_UNKNOWN 726 #endif // ifndef DOXYGEN_1_5_4_SKIP_UNKNOWN 734 #ifndef DOXYGEN_1_5_4_SKIP_UNKNOWN 742 #endif // ifndef DOXYGEN_1_5_4_SKIP_UNKNOWN 785 #ifndef DOXYGEN_1_5_4_SKIP_UNKNOWN 790 SHEAF_DLL_SPEC
void max(
const sec_vd& x0,
vd_lite& xresult,
bool xauto_access);
800 SHEAF_DLL_SPEC
void min(
const sec_vd& x0,
vd_lite& xresult,
bool xauto_access);
807 #endif // ifndef DOXYGEN_1_5_4_SKIP_UNKNOWN 827 #ifndef DOXYGEN_1_5_4_SKIP_UNKNOWN 845 #endif // ifndef DOXYGEN_1_5_4_SKIP_UNKNOWN 855 template <
typename S0,
typename S1,
typename SR,
typename F>
856 void binary_op(
const S0& x0,
const S1& x1, SR& xresult, F xfunctor,
862 template <
typename S0,
typename SR,
typename F>
869 template <
typename S0,
typename SR,
typename F>
870 void unary_op(
const S0& x0, SR& xresult, F xfunctor,
876 template <
typename S0,
typename F>
883 template <
typename S0,
typename SR,
typename F>
884 void unary_op(
const S0& x0, SR& xresult1, SR& xresult2, F xfunctor,
891 #endif // ifndef SEC_VD_H void get_fiber(pod_index_type xdisc_id, void *xfiber, size_type xfiber_size) const
Sets xfiber to the fiber referred to by discretization id xdisc_id.
double chart_point_coord_type
The type of local coordinate in the base space; the scalar type for the local coordinate vector space...
void put_fiber(pod_index_type xdisc_id, const void *xfiber, size_type xfiber_size)
Sets the fiber referred to by discretization id xdisc_id to xfiber.
sec_vd tp_type
Type of general tensor of degree 1 over sec_vd.
virtual sec_tuple * clone() const
Make a new handle, no state instance of current.
void atp_type
Type of antisymmetric tensor of degree P over VECTOR_TYPE.
sec_vd * 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...
at0 stp_type
Type of symmetric tensor of degree 0 over sec_vd.
The abstract map from section dof ids to section dof values of heterogeneous type.
SHEAF_DLL_SPEC vd_lite * max(const sec_vd &x0, bool xauto_access)
Maximum (auto-allocated version).
A section of a bundle with fiber type tuple.
The default name space; a poset which contains other posets as members.
SHEAF_DLL_SPEC void divide_equal(sec_vd &xresult, const vd_value_type &xother, bool xauto_access)
xresult divide_equal xresult (pre-allocated version); synonym for divide(xresult, xresult...
The standard fiber bundles name space; extends the standard sheaves namespace by defining base space...
sec_at3 atp_type
Type of antisymmetric tensor of degree 3 over sec_vd.
A client handle for a general, abstract partially order set.
SHEAF_DLL_SPEC void subtract_equal(sec_vd &xresult, const sec_vd &xother, bool xauto_access)
x0 subtract_equal x1 (self-allocated version); synonym for subtract(xresult, xother, xresult, xauto_access).
SHEAF_DLL_SPEC void extrema(const sec_vd &x0, sec_vd_value_type xmin[], size_type xmin_ub, sec_vd_value_type xmax[], size_type xmax_ub)
$$SCRIBBLE This function is called from point_locator::update_domain in Shell_components. We continue to provide it here until we can eliminate it.
sec_atp atp_type
Type of antisymmetric tensor of degree P over sec_vd.
sec_stp stp_type
Type of symmetric tensor of degree P over sec_vd.
A path defined by a poset name and a member name separated by a forward slash ('/'). For example: "cell_definitions/triangle".
A member of a sec_rep_space; a section.
sec_vd atp_type
Type of antisymmetric tensor of degree 1 over sec_vd.
sec_vd stp_type
Type of symmetric tensor of degree 1 over sec_vd.
An abstract vector section space of dimension d.
chart_point_coord_type coord_type
The type of local coordinate; the scalar type for the local coordinate vector space.
sec_st3 stp_type
Type of symmetric tensor of degree 3 over sec_vd.
SHEAF_DLL_SPEC void assign(sec_vd &x0, const vd_value_type &xvalue, bool xauto_access)
Assignment to a scalar constant.
A section of a bundle with fiber type t3.
sec_vd_value_type value_type
The type of component in the value; the scalar type in the fiber space.
Abstract base class with useful features for all objects.
Abstract vector space over dof_type (volatile version).
sec_at2 atp_type
Type of antisymmetric tensor of degree 2 over sec_vd.
SHEAF_DLL_SPEC void subtract(const sec_vd &x0, const sec_vd &x1, sec_vd &xresult, bool xauto_access)
x0 subtract x1 (pre-allocated version).
sec_st4 stp_type
Type of symmetric tensor of degree 4 over sec_vd.
SHEAF_DLL_SPEC void multiply(const sec_vd &x0, const vd_value_type &x1, sec_vd &xresult, bool xauto_access)
x0 multiplied by x1 (a constant) (pre-allocated version).
An index within the external ("client") scope of a given id space.
SHEAF_DLL_SPEC void add_equal(sec_vd &xresult, const sec_vd &xother, bool xauto_access)
x0 add_equal x1 (self-allocated version); synonym for add(xresult, xother, xresult, xauto_access).
A section of a bundle with fiber type at2.
A section of a bundle with fiber type atp.
A scalar viewed as an antisymmetric tensor of degree 0. As the degree is 0 there is nothing to be sym...
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
Tensor types of degree P over VECTOR_TYPE. Must be specialized for every supported combination of VEC...
sec_t4 tp_type
Type of general tensor of degree 4 over sec_vd.
A section of a bundle with fiber type st2.
void atp_type
Type of antisymmetric tensor of degree 4 over sec_vd.
A section of a bundle with fiber type stp.
sec_st2 stp_type
Type of symmetric tensor of degree 2 over sec_vd.
void unary_op(const S0 &x0, SR &xresult1, SR &xresult2, F xfunctor, bool xauto_access)
Unary operator (has 2 return sections).
A section of a bundle with fiber type t4.
A section of a bundle with fiber type at3.
sec_at0 scalar_type
The scalar type in the section space.
sec_t2 tp_type
Type of general tensor of degree 2 over sec_vd.
sec_vd_space host_type
Typedefs:
A section of a bundle with fiber type st3.
SHEAF_DLL_SPEC tensor_variance contract(const tensor_variance &x0, int xp, int xq)
The variance of the contration of a tensor with variance x0 on indices xp and xq. ...
void force_fiber(pod_index_type xdisc_id, const void *xfiber, size_type xfiber_size)
Sets the fiber referred to by discretization id xdisc_id to xfiber; reallocates dof map memory if nec...
SHEAF_DLL_SPEC void add(const sec_vd &x0, const sec_vd &x1, sec_vd &xresult, bool xauto_access)
x0 add x1 (pre-allocated version).
A section of a fiber bundle with a d-dimensional vector space fiber.
void binary_op(const S0 &x0, const vd_value_type &x1, SR &xresult, F xfunctor, bool xauto_access)
Binary operator.
void stp_type
Type of symmetric tensor of degree P over VECTOR_TYPE.
vd fiber_type
The fiber type.
A section of a bundle with fiber type tp.
SHEAF_DLL_SPEC void multiply_equal(sec_vd &xresult, const vd_value_type &xother, bool xauto_access)
xresult multiply_equal xresult (pre-allocated version); synonym for multiply(xresult, xother, xresult, xauto_access).
int_type pod_index_type
The plain old data index type.
sec_vd_dof_type dof_type
The type of degree of freedom.
sec_tp tp_type
Type of general tensor of degree P over sec_vd.
A section of a bundle with fiber type st4.
at0 atp_type
Type of antisymmetric tensor of degree 0 over sec_vd.
An abstract client handle for a member of a poset.
SHEAF_DLL_SPEC vd_lite * min(const sec_vd &x0, bool xauto_access)
Minimum (auto-allocated version).
double sec_vd_dof_type
The type of degree of freedom in the section space.
at0 tp_type
Type of general tensor of degree 0 over sec_vd.
Namespace for the fiber_bundles component of the sheaf system.
vd_value_type sec_vd_value_type
The type of component in the value of a section at a point.
SHEAF_DLL_SPEC void divide(const sec_vd &x0, const vd_value_type &x1, sec_vd &xresult, bool xauto_access)
x0 divided by x1 (a constant) (pre-allocated version).
Abstract vector space over dof_type.
Antisymetric tensor of degree 0. As the degree is 0 there is nothing to be symmetric or antisymmetric...
double vd_value_type
The type of component in the fiber; the scalar type in the fiber vector space.
A section of a bundle with fiber type tp.
sec_t3 tp_type
Type of general tensor of degree 3 over sec_vd.
void tp_type
Type of general tensor of degree P over VECTOR_TYPE.
A handle for a poset whose members are numerical representations of sections of a fiber bundle...