version 0.4
Ikarus::FERequirements< SolutionVectorType_, ParameterType_ > Class Template Reference

Class representing the requirements for finite element calculations. More...

#include <ikarus/finiteelements/ferequirements.hh>

Inheritance diagram for Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >:
[legend]

Public Types

using SolutionVectorType = SolutionVectorType_
 
using SolutionVectorTypeRaw = typename Impl::DeduceRawVectorType< std::remove_cvref_t< SolutionVectorType_ > >::Type
 
using ParameterType = ParameterType_
 
using ParameterTypeRaw = typename ParameterType_::type
 

Public Member Functions

template<FEAffordance Affordance>
FERequirementsaddAffordance (Affordance &&affordance)
 Add an affordance to the requirements. More...
 
FERequirementsinsertParameter (const FEParameter &key, ParameterTypeRaw &val)
 Insert a parameter into the requirements. More...
 
FERequirementsinsertGlobalSolution (const FESolutions &key, SolutionVectorTypeRaw &sol)
 Insert a global solution vector into the requirements. More...
 
const SolutionVectorTypeRawgetGlobalSolution (const FESolutions &key) const
 Get the raw global solution vector for a specific type. More...
 
const ParameterTypeRawgetParameter (FEParameter &&key) const
 Get the raw parameter value for a specific key. More...
 
template<FEAffordance Affordance>
bool hasAffordance (Affordance &&affordance) const
 Check if a specific affordance is present in the requirements. More...
 

Detailed Description

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
class Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >

This class defines the requirements for finite element calculations, including the types of solution vectors and parameters needed. It provides methods to add affordances, insert parameters, and manage global solution vectors.

Template Parameters
SolutionVectorType_Type of the solution vector, defaulting to std::reference_wrapper<Eigen::VectorXd>.
ParameterType_Type of the parameter, defaulting to std::reference_wrapper<double>.

Member Typedef Documentation

◆ ParameterType

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
using Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >::ParameterType = ParameterType_

◆ ParameterTypeRaw

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
using Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >::ParameterTypeRaw = typename ParameterType_::type

◆ SolutionVectorType

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
using Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >::SolutionVectorType = SolutionVectorType_

◆ SolutionVectorTypeRaw

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
using Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >::SolutionVectorTypeRaw = typename Impl::DeduceRawVectorType<std::remove_cvref_t<SolutionVectorType_> >::Type

Member Function Documentation

◆ addAffordance()

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
template<FEAffordance Affordance>
FERequirements & Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >::addAffordance ( Affordance &&  affordance)
inline

This function adds the specified affordance to the requirements.

Template Parameters
AffordanceType of affordance to be added.
Parameters
affordanceThe affordance to be added.
Returns
Reference to the updated FERequirements instance.
Here is the caller graph for this function:

◆ getGlobalSolution()

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
const SolutionVectorTypeRaw & Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >::getGlobalSolution ( const FESolutions key) const
inline

This function retrieves the raw global solution vector for the specified type.

Parameters
keyThe key representing the type of the solution vector.
Returns
Const reference to the raw global solution vector.
Exceptions
Dune::RangeErrorif the specified type is not found in the requirements.
Here is the caller graph for this function:

◆ getParameter()

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
const ParameterTypeRaw & Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >::getParameter ( FEParameter &&  key) const
inline

This function retrieves the raw parameter value for the specified key.

Parameters
keyThe key representing the parameter.
Returns
Const reference to the raw parameter value.
Exceptions
Dune::RangeErrorif the specified key is not found in the requirements.
Here is the caller graph for this function:

◆ hasAffordance()

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
template<FEAffordance Affordance>
bool Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >::hasAffordance ( Affordance &&  affordance) const
inline

This function checks if the specified affordance is present in the requirements.

Template Parameters
AffordanceType of affordance to be checked.
Parameters
affordanceThe affordance to be checked.
Returns
True if the affordance is present, false otherwise.

◆ insertGlobalSolution()

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
FERequirements & Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >::insertGlobalSolution ( const FESolutions key,
SolutionVectorTypeRaw sol 
)
inline

This function inserts the specified global solution vector into the requirements.

Parameters
keyThe key representing the type of the solution vector.
solReference to the raw global solution vector.
Returns
Reference to the updated FERequirements instance.
Here is the caller graph for this function:

◆ insertParameter()

template<typename SolutionVectorType_ = std::reference_wrapper<Eigen::VectorXd>, typename ParameterType_ = std::reference_wrapper<double>>
FERequirements & Ikarus::FERequirements< SolutionVectorType_, ParameterType_ >::insertParameter ( const FEParameter key,
ParameterTypeRaw val 
)
inline

This function inserts the specified parameter into the requirements.

Parameters
keyThe key representing the parameter.
valReference to the raw parameter value.
Returns
Reference to the updated FERequirements instance.
Here is the caller graph for this function:

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