version 0.4.1
Ikarus::FERequirements< SV, PM > Class Template Reference

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

#include <ikarus/finiteelements/ferequirements.hh>

Inheritance diagram for Ikarus::FERequirements< SV, PM >:
[legend]

Public Types

using SolutionVectorType = SV
 
using SolutionVectorTypeRaw = typename Impl::DeduceRawVectorType< std::remove_cvref_t< SV > >::Type
 
using ParameterType = PM
 
using ParameterTypeRaw = typename PM::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 SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
class Ikarus::FERequirements< SV, PM >

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
SVType of the solution vector, defaulting to std::reference_wrapper<Eigen::VectorXd>.
PMType of the parameter, defaulting to std::reference_wrapper<double>.

Member Typedef Documentation

◆ ParameterType

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

◆ ParameterTypeRaw

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

◆ SolutionVectorType

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

◆ SolutionVectorTypeRaw

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

Member Function Documentation

◆ addAffordance()

template<typename SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
template<FEAffordance Affordance>
FERequirements & Ikarus::FERequirements< SV, PM >::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.

◆ getGlobalSolution()

template<typename SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
const SolutionVectorTypeRaw & Ikarus::FERequirements< SV, PM >::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.

◆ getParameter()

template<typename SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
const ParameterTypeRaw & Ikarus::FERequirements< SV, PM >::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.

◆ hasAffordance()

template<typename SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
template<FEAffordance Affordance>
bool Ikarus::FERequirements< SV, PM >::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 SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
FERequirements & Ikarus::FERequirements< SV, PM >::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.

◆ insertParameter()

template<typename SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
FERequirements & Ikarus::FERequirements< SV, PM >::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.

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