SheafSystem  0.0.0.0
fiber_bundle::section_evaluator Class Referenceabstract

An abstract local section evaluator; a map from {local coordinates x dofs} to section value. More...

#include <section_evaluator.h>

Inheritance diagram for fiber_bundle::section_evaluator:
sheaf::any fiber_bundle::differentiable_section_evaluator fiber_bundle::integrable_section_evaluator fiber_bundle::linear_fcn_space fiber_bundle::bilinear_2d fiber_bundle::constant_fcn_space fiber_bundle::linear_1d fiber_bundle::linear_2d fiber_bundle::linear_3d fiber_bundle::quadratic_1d fiber_bundle::quadratic_2d fiber_bundle::quadratic_3d fiber_bundle::trilinear_3d fiber_bundle::uniform_1d fiber_bundle::uniform_2d fiber_bundle::uniform_3d

SECTION_EVALUATOR FACET

typedef chart_point_coord_type coord_type
 The type of local coordinate; the scalar type for the local coordinate vector space. More...
 
typedef vd_value_type value_type
 The type of component in the value; the scalar type in the range vector space. More...
 
typedef sec_vd_dof_type dof_type
 The type of degree of freedom. More...
 
 section_evaluator (const section_evaluator &xother)
 Copy constructor. More...
 
virtual ~section_evaluator ()
 Destructor. More...
 
 section_evaluator ()
 Default constructor. More...
 

DOMAIN FACET

virtual int db () const =0
 The base dimension; the dimension of the local coordinates (independent variable). More...
 
virtual void local_coordinates (pod_index_type xindex, coord_type xresult[], size_type xresult_ub) const =0
 The local coordinates of the dof with local index xindex. More...
 
void local_coordinates (pod_index_type xindex, block< coord_type > &xresult) const
 The local coordinates of the dof with local index xindex. More...
 
virtual void center (coord_type xresult[], size_type xresult_ub) const
 The local coordinates at the center of the evaluator. More...
 
void center (block< coord_type > &xresult) const
 The local coordinates at the center of the evaluator. More...
 
virtual bool in_standard_domain (const dof_type xlocal_coords[], size_type xlocal_coords_ub) const =0
 True if the specified local coordinates are in the "standard" domain. More...
 
bool in_standard_domain (const block< dof_type > &xlocal_coords) const
 True if the specified local coordinates are in the "standard" domain. More...
 

EVALUATION FACET

virtual size_type dof_ct () const =0
 The number of dofs required for each component of the dependent variable. More...
 
bool df_is_variable () const
 True if and only if the fiber dimension (number of components of the dependent variable) is variable. More...
 
virtual int df () const
 The fiber dimension (number of components of dependent variable). More...
 
virtual dof_type value_at_coord (const dof_type xdofs[], size_type xdofs_ub, const dof_type xlocal_coords[], size_type xlocal_coords_ub) const
 Value at a specified local_coordinate. Single component version. More...
 
dof_type value_at_coord (const block< dof_type > &xdofs, const block< dof_type > &xlocal_coords) const
 Value at a specified local_coordinate. Single component version. More...
 
virtual void value_at_coord (const dof_type xdofs[], size_type xdofs_ub, const dof_type xlocal_coords[], size_type xlocal_coords_ub, dof_type xresult[], size_type xresult_ub) const =0
 Values at a specified local_coordinate. Multiple component version. More...
 
void value_at_coord (const block< dof_type > &xdofs, const block< dof_type > &xlocal_coords, block< dof_type > &xresult) const
 Values at a specified local_coordinate. Multiple component version. More...
 
virtual void coord_at_value (const dof_type xdofs[], size_type xdofs_ub, const dof_type xvalue[], size_type xvalue_ub, dof_type xlocal_coords[], size_type xlocal_coords_ub) const =0
 The local coordinates of a point at which the field has the value xvalue. The dofs are assumed to be interleaved. More...
 
void coord_at_value (const block< dof_type > &xdofs, const block< dof_type > &xvalue, block< dof_type > &xlocal_coords) const
 The local coordinates of a point at which the field has the value xvalue. The dofs are assumed to be interleaved. More...
 
virtual dof_type min (const dof_type xdofs[], size_type xdofs_ub) const
 The minimum value of the scalar or component section defined by xdofs. More...
 
dof_type min (const block< dof_type > &xdofs) const
 The minimum value of the scalar or component section defined by xdofs. More...
 
virtual void min (const dof_type xdofs[], size_type xdofs_ub, dof_type xresult[], size_type xresult_ub) const
 The minimum value of the vector section defined by xdofs. More...
 
void min (const block< dof_type > &xdofs, block< dof_type > &xresult) const
 The minimum value of the vector section defined by xdofs. More...
 
virtual dof_type max (const dof_type xdofs[], size_type xdofs_ub) const
 The maximum value of the scalar or component section defined by xdofs. More...
 
dof_type max (const block< dof_type > &xdofs) const
 The maximum value of the scalar or component section defined by xdofs. More...
 
virtual void max (const dof_type xdofs[], size_type xdofs_ub, dof_type xresult[], size_type xresult_ub) const
 The maximum value of the vector section defined by xdofs. More...
 
void max (const block< dof_type > &xdofs, block< dof_type > &xresult) const
 The maximum value of the vector section defined by xdofs. More...
 

ANY FACET

virtual section_evaluatorclone () const =0
 Virtual constructor, makes a new instance of the same type as this. More...
 
virtual section_evaluatoroperator= (const section_evaluator &xother)
 Assignment operator. More...
 
virtual bool invariant () const
 Class invariant. More...
 
virtual bool is_ancestor_of (const any *other) const
 Conformance test; true if other conforms to this. More...
 

Additional Inherited Members

- Public Member Functions inherited from sheaf::any
bool is_same_type (const any *other) const
 True if other is the same type as this. More...
 
virtual ~any ()
 Destructor. More...
 
bool invariant_check () const
 True if invariant checking is enabled. More...
 
void enable_invariant_check () const
 Enable invariant checking. More...
 
void disable_invariant_check () const
 Disable invariant check. Intended for preventing recursive calls to invariant and for suppressing invariant checking during multi-phase initialization. More...
 
int disable_invariance_check_request_depth () const
 Number of times disable_invariant_check has been called without matching call to enable_invariant_check. More...
 
- Protected Member Functions inherited from sheaf::any
 any ()
 default constructor More...
 

Detailed Description

An abstract local section evaluator; a map from {local coordinates x dofs} to section value.

Definition at line 53 of file section_evaluator.h.

Member Typedef Documentation

◆ coord_type

The type of local coordinate; the scalar type for the local coordinate vector space.

Definition at line 77 of file section_evaluator.h.

◆ dof_type

The type of degree of freedom.

Definition at line 88 of file section_evaluator.h.

◆ value_type

The type of component in the value; the scalar type in the range vector space.

Definition at line 83 of file section_evaluator.h.

Constructor & Destructor Documentation

◆ section_evaluator() [1/2]

fiber_bundle::section_evaluator::section_evaluator ( const section_evaluator xother)

Copy constructor.

Todo:
revise the signatures of the functions in this class and all its descendants to properly distinguish between the above three types.
Postcondition

Definition at line 34 of file section_evaluator.cc.

References ~section_evaluator().

◆ ~section_evaluator()

fiber_bundle::section_evaluator::~section_evaluator ( )
virtual

Destructor.

Postcondition

Definition at line 51 of file section_evaluator.cc.

References section_evaluator().

Referenced by section_evaluator().

◆ section_evaluator() [2/2]

fiber_bundle::section_evaluator::section_evaluator ( )
protected

Default constructor.

Postcondition

Definition at line 66 of file section_evaluator.cc.

References db().

Referenced by ~section_evaluator().

Member Function Documentation

◆ center() [1/2]

◆ center() [2/2]

void fiber_bundle::section_evaluator::center ( block< coord_type > &  xresult) const

The local coordinates at the center of the evaluator.

Precondition
  • precondition_of(center(xresult.base(), xresult.ub()))
Postcondition
  • postcondition_of(center(xresult.base(), xresult.ub()))
  • xresult.ct() == db()

Definition at line 188 of file section_evaluator.cc.

References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), in_standard_domain(), sheaf::auto_block< T, un_block_initialization_policy< T > >::set_ct(), and sheaf::auto_block< T, un_block_initialization_policy< T > >::ub().

◆ clone()

◆ coord_at_value() [1/2]

◆ coord_at_value() [2/2]

void fiber_bundle::section_evaluator::coord_at_value ( const block< dof_type > &  xdofs,
const block< dof_type > &  xvalue,
block< dof_type > &  xlocal_coords 
) const

The local coordinates of a point at which the field has the value xvalue. The dofs are assumed to be interleaved.

Precondition
  • precondition_of(coord_at_value(xdofs.base(), xdofs.ct(), xvalue.base(), xvalue.ct(), xlocal_coords.base(), xlocal_coords.ub()))
Postcondition
  • postcondition_of(coord_at_value(xdofs.base(), xdofs.ct(), xvalue.base(), xvalue.ub(), xlocal_coords.base(), xlocal_coords.ub()))
  • xlocal_coords.ct() == db()

Definition at line 451 of file section_evaluator.cc.

References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), min(), sheaf::auto_block< T, un_block_initialization_policy< T > >::set_ct(), and sheaf::auto_block< T, un_block_initialization_policy< T > >::ub().

◆ db()

◆ df()

int fiber_bundle::section_evaluator::df ( ) const
virtual

The fiber dimension (number of components of dependent variable).

Postcondition
  • result >= 0

Definition at line 306 of file section_evaluator.cc.

References value_at_coord().

Referenced by df_is_variable().

◆ df_is_variable()

bool fiber_bundle::section_evaluator::df_is_variable ( ) const

True if and only if the fiber dimension (number of components of the dependent variable) is variable.

Postcondition
  • result == (df() == 0)

Definition at line 286 of file section_evaluator.cc.

References df().

Referenced by dof_ct().

◆ dof_ct()

sheaf::size_type fiber_bundle::section_evaluator::dof_ct ( ) const
pure virtual

The number of dofs required for each component of the dependent variable.

Is Abstract.

Postcondition
  • result >= 0

Implemented in fiber_bundle::linear_fcn_space.

Definition at line 264 of file section_evaluator.cc.

References df_is_variable().

Referenced by geometry::d_array_point_locator< DC, DB >::box_list(), fields::body_builder::build_pa(), and in_standard_domain().

◆ in_standard_domain() [1/2]

◆ in_standard_domain() [2/2]

bool fiber_bundle::section_evaluator::in_standard_domain ( const block< dof_type > &  xlocal_coords) const

True if the specified local coordinates are in the "standard" domain.

Precondition
  • precondition_of(in_standard_domain(xlocal_coords.base(), xlocal_coords.ct()))
Postcondition
  • postcondition_of(in_standard_domain(xlocal_coords.base(), xlocal_coords.ct()))

Definition at line 236 of file section_evaluator.cc.

References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), and dof_ct().

◆ invariant()

◆ is_ancestor_of()

◆ local_coordinates() [1/2]

◆ local_coordinates() [2/2]

void fiber_bundle::section_evaluator::local_coordinates ( pod_index_type  xindex,
block< coord_type > &  xresult 
) const

The local coordinates of the dof with local index xindex.

Precondition
  • precondition_of(local_coordinates(xindex, xresult.base(), xresult.ub()))
Postcondition
  • postcondition_of(local_coordinates(xindex, xresult.base(), xresult.ub()))
  • xresult.ct() == db()

Definition at line 136 of file section_evaluator.cc.

References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), center(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), local_coordinates(), sheaf::auto_block< T, un_block_initialization_policy< T > >::set_ct(), and sheaf::auto_block< T, un_block_initialization_policy< T > >::ub().

Referenced by local_coordinates().

◆ max() [1/4]

◆ max() [2/4]

fiber_bundle::section_evaluator::dof_type fiber_bundle::section_evaluator::max ( const block< dof_type > &  xdofs) const

The maximum value of the scalar or component section defined by xdofs.

Precondition
  • precondition_of(max(xdofs.base(), xdofs.ct()))
Postcondition
  • postcondition_of(max(xdofs.base(), xdofs.ct()))

Definition at line 635 of file section_evaluator.cc.

References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), max(), and fiber_bundle::vd_algebra::max().

◆ max() [3/4]

void fiber_bundle::section_evaluator::max ( const dof_type  xdofs[],
size_type  xdofs_ub,
dof_type  xresult[],
size_type  xresult_ub 
) const
virtual

The maximum value of the vector section defined by xdofs.

Precondition
  • xdofs != 0
  • xdofs_ub > 0
  • xresult != 0
  • xresult_ub > 0

Definition at line 657 of file section_evaluator.cc.

References max().

◆ max() [4/4]

void fiber_bundle::section_evaluator::max ( const block< dof_type > &  xdofs,
block< dof_type > &  xresult 
) const

The maximum value of the vector section defined by xdofs.

Precondition
  • precondition_of(max(xdofs.base(), xdofs.ct(), xresult.base(), xresult.ct()))
Postcondition
  • postcondition_of(max(xdofs.base(), xdofs.ct(), xresult.base(), xresult.ct()))

Definition at line 697 of file section_evaluator.cc.

References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), clone(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), and fiber_bundle::vd_algebra::max().

◆ min() [1/4]

◆ min() [2/4]

fiber_bundle::section_evaluator::dof_type fiber_bundle::section_evaluator::min ( const block< dof_type > &  xdofs) const

The minimum value of the scalar or component section defined by xdofs.

Precondition
  • precondition_of(min(xdofs.base(), xdofs.ct()))
Postcondition
  • postcondition_of(min(xdofs.base(), xdofs.ct()))

Definition at line 523 of file section_evaluator.cc.

References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), min(), and fiber_bundle::vd_algebra::min().

◆ min() [3/4]

void fiber_bundle::section_evaluator::min ( const dof_type  xdofs[],
size_type  xdofs_ub,
dof_type  xresult[],
size_type  xresult_ub 
) const
virtual

The minimum value of the vector section defined by xdofs.

Precondition
  • xdofs != 0
  • xdofs_ub > 0
  • xresult != 0
  • xresult_ub > 0

Definition at line 545 of file section_evaluator.cc.

References min().

◆ min() [4/4]

void fiber_bundle::section_evaluator::min ( const block< dof_type > &  xdofs,
block< dof_type > &  xresult 
) const

The minimum value of the vector section defined by xdofs.

Precondition
  • precondition_of(min(xdofs.base(), xdofs.ct(), xresult.base(), xresult.ct()))
Postcondition
  • postcondition_of(min(xdofs.base(), xdofs.ct(), xresult.base(), xresult.ct()))
  • xresult.ct() == xresult.ct()

Definition at line 585 of file section_evaluator.cc.

References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), max(), and fiber_bundle::vd_algebra::min().

◆ operator=()

◆ value_at_coord() [1/4]

◆ value_at_coord() [2/4]

fiber_bundle::sec_vd_dof_type fiber_bundle::section_evaluator::value_at_coord ( const block< dof_type > &  xdofs,
const block< dof_type > &  xlocal_coords 
) const

Value at a specified local_coordinate. Single component version.

Precondition
  • precondition_of(value_at_coord(xdofs.base(), xdofs.ct(), xlocal_coords.base(), xlocal_coords.ct());)
Postcondition
  • postcondition_of(value_at_coord(xdofs.base(), xdofs.ct(), xlocal_coords.base(), xlocal_coords.ct());)

Definition at line 331 of file section_evaluator.cc.

References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), sheaf::auto_block< T, un_block_initialization_policy< T > >::ct(), and value_at_coord().

◆ value_at_coord() [3/4]

virtual void fiber_bundle::section_evaluator::value_at_coord ( const dof_type  xdofs[],
size_type  xdofs_ub,
const dof_type  xlocal_coords[],
size_type  xlocal_coords_ub,
dof_type  xresult[],
size_type  xresult_ub 
) const
pure virtual

Values at a specified local_coordinate. Multiple component version.

Implemented in fiber_bundle::constant_fcn_space, and fiber_bundle::linear_fcn_space.

◆ value_at_coord() [4/4]

void fiber_bundle::section_evaluator::value_at_coord ( const block< dof_type > &  xdofs,
const block< dof_type > &  xlocal_coords,
block< dof_type > &  xresult 
) const

Values at a specified local_coordinate. Multiple component version.

Precondition
  • precondition_of(value_at_coord(xdofs.base(), xdofs.ct(), xlocal_coords.base(), xlocal_coords.ct(), xresult.base(), xresult.ct());)
Postcondition
  • postcondition_of(value_at_coord(xdofs.base(), xdofs.ct(), xlocal_coords.base(), xlocal_coords.ct(), xresult.base(), xresult.ct());)

Definition at line 390 of file section_evaluator.cc.

References sheaf::auto_block< T, un_block_initialization_policy< T > >::base(), coord_at_value(), and sheaf::auto_block< T, un_block_initialization_policy< T > >::ct().


The documentation for this class was generated from the following files: