OGS
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:
[legend]

## 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. More...

virtual ~ExtrapolatableElementCollection ()=default

## ◆ ~ExtrapolatableElementCollection()

 virtual NumLib::ExtrapolatableElementCollection::~ExtrapolatableElementCollection ( )
virtualdefault

## ◆ getIntegrationPointValues()

 virtual std::vector 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.

Parameters
 id ID of the element of which the property is queried. t The time used in the evaluation if time dependent quantities. x The current solutions of a ProcessLib::Process; more generally any nodal GlobalVector pointers for each process. dof_table The processes d.o.f. table used to get each element's local d.o.f. from x. cache Can be used to compute a property on-the-fly.
Remarks

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

## ◆ getShapeMatrix()

 virtual Eigen::Map 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.

## ◆ size()

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

Returns the number of elements whose properties shall be extrapolated.

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