vectorial::Vectorizable Class Referenceabstract
Interface to make bilinear forms vectorizable. More...
#include <vectorizable.hh>
Public Member Functions | |
virtual concepts::Cloneable * | data () const =0 |
Returns the data to be shared. More... | |
virtual void | data (concepts::Cloneable *)=0 |
Sets the data to be shared. More... | |
virtual | ~Vectorizable () |
Detailed Description
Interface to make bilinear forms vectorizable.
This interface adds methods to a class to get and put additional data (which is cloneable).
Bilinear forms which act as components of a vectorial::BilinearForm often share data amongst each other (e.g. Jacobians at the quadrature points—they only need to be computed once and can be used for all components of the vector valued bilinear form). When doing a deep copy of such a vector valued bilinear form, the components have to be copied and the shared data too. The most sensible place to keep the data is in vectorial::BilinearForm as this is the container for the scalar bilinear forms. After cloning of the scalar components of the bilnear form, the data has to be set in a second step (after having cloned it).
For vectorial::BilinearForm to be able to act on the bilinear forms that need it, they have to be derived from this class. As the data itself has to be cloneable, the deep copy of the vectorial::BilinearForm can be realised.
Definition at line 39 of file vectorizable.hh.
Constructor & Destructor Documentation
◆ ~Vectorizable()
|
inlinevirtual |
Definition at line 41 of file vectorizable.hh.
Member Function Documentation
◆ data() [1/2]
|
pure virtual |
Returns the data to be shared.
Implemented in hp3D::RotRot, hp3D::DivDiv< Weight >, hp2D::RotRot, and hp2D::DivDiv< Weight >.
◆ data() [2/2]
|
pure virtual |
Sets the data to be shared.
Implemented in hp3D::RotRot, hp3D::DivDiv< Weight >, hp2D::RotRot, and hp2D::DivDiv< Weight >.
The documentation for this class was generated from the following file:
- vectorial/vectorizable.hh