20 #include "SheafSystem/differentiable_section_evaluator.h" 22 #include "SheafSystem/assert_contract.h" 23 #include "SheafSystem/block.h" 24 #include "SheafSystem/sec_vd.h" 74 require(precondition_of(dxi_local(xlocal_coord_index,
82 dxi_local(xlocal_coord_index,
88 xresult_dofs.
set_ct(xsource_dofs.
ct());
92 ensure(postcondition_of(dxi_local(xlocal_coord_index,
98 ensure(xresult_dofs.
ct() == xsource_dofs.
ct());
116 require(xcoord_dofs != 0);
117 require(xcoord_dofs_ub >= 0);
118 require(xlocal_coords != 0);
119 require(xlocal_coords_ub >= db());
120 require(jacobian_values() != 0);
170 require(xcoord_dofs != 0);
171 require(xcoord_dofs_ub >= 0);
172 require(xlocal_coords != 0);
173 require(xlocal_coords_ub >= db());
174 require(jacobian_values() != 0);
231 ensure(is_same_type(result));
246 require(is_ancestor_of(&xother));
276 if(invariant_check())
280 disable_invariant_check();
284 enable_invariant_check();
300 require(xother != 0);
virtual bool invariant() const
Class invariant, intended to be redefined in each descendant. See below for template for invariant in...
index_type ub() const
The upper bound on the storage array. The number of items current allocated in the storage array...
size_type ct() const
The number of items currently in use.
sec_vd_dof_type dof_type
The type of degree of freedom.
Abstract base class with useful features for all objects.
virtual value_type jacobian_determinant(const dof_type xcoord_dofs[], size_type xcoord_dofs_ub, size_type xdf, const coord_type xlocal_coords[], size_type xlocal_coords_ub)
Computes the the determinant of the jacobian matrix at local coordinates xlocal_coords with coordinat...
virtual ~differentiable_section_evaluator()
Destructor.
pointer_type base() const
The underlying storage array.
void set_ct(size_type xct)
Sets ct() == xct.
An abstract section evaluator that can be differentiated.
virtual differentiable_section_evaluator * clone() const =0
Virtual constructor, makes a new instance of the same type as this.
unsigned long size_type
An unsigned integral type used to represent sizes and capacities.
const value_type * jacobian_values() const
The result of the preceding call to jacobian.
chart_point_coord_type coord_type
The type of local coordinate; the scalar type for the local coordinate vector space.
virtual void jacobian(const dof_type xcoord_dofs[], size_type xcoord_dofs_ub, size_type xdf, const dof_type xlocal_coords[], size_type xlocal_coords_ub)
Computes the the jacobian matrix at local coordinates xlocal_coords with coordinate dofs xcoord_dofs...
vd_value_type value_type
The type of component in the value; the scalar type in the range vector space.
An abstract local section evaluator; a map from {local coordinates x dofs} to section value...
differentiable_section_evaluator()
Default constructor.
virtual bool is_ancestor_of(const any *other) const
Conformance test; true if other conforms to this.
virtual void dxi_local(size_type xlocal_coord_index, const dof_type xsource_dofs[], size_type xsource_dofs_ub, dof_type xresult_dofs[], size_type xresult_dofs_ub) const =0
First partial derivative of this with respect to local coordinate xlocal_coord_index.
virtual bool invariant() const
Class invariant.
virtual differentiable_section_evaluator & operator=(const differentiable_section_evaluator &xother)
Assignment operator.
An auto_block with a no-initialization initialization policy.
Namespace for the fiber_bundles component of the sheaf system.