Class representing the requirements for finite element calculations. More...
#include <ikarus/finiteelements/ferequirements.hh>
Public Types | |
| using | SolutionVectorType = SV |
| Type of the solution vector. More... | |
| using | ParameterType = PM |
| Type of the parameter. More... | |
Public Member Functions | |
| FERequirements ()=default | |
| Default constructor. More... | |
| template<typename SV2 = SV, typename PM2 = PM> | |
| FERequirements (SV2 &&solVec, PM2 &¶meter) | |
| Constructor initializing the solution vector and parameter. More... | |
| template<typename PB > | |
| FERequirements (const Ikarus::BasisHandler< PB > &basis) | |
| Constructor from a basis. More... | |
| FERequirements (const FERequirements &other) | |
| Copy constructor. More... | |
| FERequirements & | operator= (const FERequirements &other) |
| Copy assignment operator. More... | |
| FERequirements & | insertParameter (const PM &val) |
| Insert a parameter into the requirements. More... | |
| template<typename SV2 = SolutionVectorType> | |
| FERequirements & | insertGlobalSolution (SV2 &&solVec) |
| Insert a global solution vector into the requirements. More... | |
| const SolutionVectorType & | globalSolution () const |
| Get the global solution vector. More... | |
| SV & | globalSolution () |
| Get the global solution vector. More... | |
| std::size_t | size () |
| A helper function to get the size of the solution vector. More... | |
| const PM & | parameter () const |
| Get the parameter value. More... | |
| PM & | parameter () |
| Get the parameter value. More... | |
| bool | populated () const |
| Tells if the class contains all needed values. More... | |
| template<typename T > | |
| SV & | operator+= (const T &rhs) |
| Enables the usage of the class as a solution vector. More... | |
| template<typename UF > | |
| void | syncParameterAndGlobalSolution (UF &&updateFunction) |
| This function syncs the parameter and the global solution vector. The can get out of sync, when the given update function changes the global solution vector due to a change of the parameter. This is usually the case for inhomogeneous boundary conditions. More... | |
This class defines the requirements for finite element calculations, including the types of solution vectors and parameters needed.
| sol | The finite element solution tag. |
| para | The finite element parameter tag. |
| SV | Type of the solution vector, defaulting to Eigen::VectorXd. |
| PM | Type of the parameter, defaulting to double. |
| using Ikarus::FERequirements< sol, para, SV, PM >::ParameterType = PM |
| using Ikarus::FERequirements< sol, para, SV, PM >::SolutionVectorType = SV |
|
default |
|
inline |
| solVec | Solution vector. |
| parameter | Parameter value. |
|
inline |
| PB | The type of the basis. |
| basis | the basis |
|
inline |
Performs a deep copy of the solution vector and parameter.
| other | The object to copy from. |
|
inline |
|
inline |
|
inline |
This function inserts the specified global solution vector into the requirements and deletes the old one.
| solVec | Reference to the raw global solution vector. |
|
inline |
This function inserts the specified parameter into the requirements.
| val | Reference to the raw parameter value. |
|
inline |
| T | The type of the value to add to the solution vector. |
| rhs | The value to add to the solution vector. |
|
inline |
Performs a deep copy of the solution vector and parameter.
| other | The object to assign from. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
| UF | The type of the update function. |
| updateFunction | The update function. |