OGS
|
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>
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 |
|
virtualdefault |
|
pure virtual |
Returns integration point values of some property of a specific element.
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. |
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().
|
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().
|
pure virtual |
Returns the number of elements whose properties shall be extrapolated.
Implemented in NumLib::ExtrapolatableLocalAssemblerCollection< LocalAssemblerCollection >.
Referenced by NumLib::LocalLinearLeastSquaresExtrapolator::calculateResiduals(), and NumLib::LocalLinearLeastSquaresExtrapolator::extrapolate().