NumLib::ExtrapolatableElementCollection Class Referenceabstract

Detailed Description

Adaptor to get information needed by an Extrapolator from an "arbitrary" collection of elements (e.g., local assemblers).

This is an interface class; suitable implementations have to be provided for concrete collections of extrapolatable elements.

Definition at line 29 of file ExtrapolatableElementCollection.h.

#include <ExtrapolatableElementCollection.h>

Inheritance diagram for NumLib::ExtrapolatableElementCollection:

Public Member Functions

virtual Eigen::Map< const Eigen::RowVectorXd > getShapeMatrix (std::size_t const id, unsigned const integration_point) const =0
virtual std::vector< double > const & getIntegrationPointValues (std::size_t const id, const double t, std::vector< GlobalVector * > const &x, std::vector< NumLib::LocalToGlobalIndexMap const * > const &dof_table, std::vector< double > &cache) const =0
virtual std::size_t size () const =0
 Returns the number of elements whose properties shall be extrapolated.
virtual ~ExtrapolatableElementCollection ()=default

Constructor & Destructor Documentation

◆ ~ExtrapolatableElementCollection()

virtual NumLib::ExtrapolatableElementCollection::~ExtrapolatableElementCollection ( )

Member Function Documentation

◆ getIntegrationPointValues()

virtual std::vector< double > const & NumLib::ExtrapolatableElementCollection::getIntegrationPointValues ( std::size_t const id,
const double t,
std::vector< GlobalVector * > const & x,
std::vector< NumLib::LocalToGlobalIndexMap const * > const & dof_table,
std::vector< double > & cache ) const
pure virtual

Returns integration point values of some property of a specific element.

idID of the element of which the property is queried.
tThe time used in the evaluation if time dependent quantities.
xThe current solutions of a ProcessLib::Process; more generally any nodal GlobalVector pointers for each process.
dof_tableThe processes d.o.f. table used to get each element's local d.o.f. from x.
cacheCan be used to compute a property on-the-fly.

Since this method returns a reference, integration point values can not be computed locally and just returned.

Instead, the vector cache can be used to store some derived quantities that should be used as integration point values. They can be written to the cache and a reference to the cache can then be returned by the implementation of this method. Ordinary integration point values can be returned directly (if they are stored in the local assembler), and the cache can be left untouched.

For usage examples see the processes already implemented or the unit test in TestExtrapolation.cpp

Implemented in NumLib::ExtrapolatableLocalAssemblerCollection< LocalAssemblerCollection >.

Referenced by NumLib::LocalLinearLeastSquaresExtrapolator::calculateResidualElement(), and NumLib::LocalLinearLeastSquaresExtrapolator::extrapolateElement().

◆ getShapeMatrix()

virtual Eigen::Map< const Eigen::RowVectorXd > NumLib::ExtrapolatableElementCollection::getShapeMatrix ( std::size_t const id,
unsigned const integration_point ) const
pure virtual

Returns the shape matrix of the element with the given id at the given integration_point.

Implemented in NumLib::ExtrapolatableLocalAssemblerCollection< LocalAssemblerCollection >.

Referenced by NumLib::LocalLinearLeastSquaresExtrapolator::extrapolateElement().

◆ size()

virtual std::size_t NumLib::ExtrapolatableElementCollection::size ( ) const
pure virtual

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