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 = std::reference_wrapper< Eigen::VectorXd >
 
using SolutionVectorTypeRaw = typename Impl::DeduceRawVectorType< std::remove_cvref_t< std::reference_wrapper< Eigen::VectorXd > > >::Type
 
using ParameterType = std::reference_wrapper< double >
 
using ParameterTypeRaw = typename PM::type
 

Public Member Functions

 FErequirements ()=default
 
 FErequirements (Base &&base)
 
 FErequirements (const Base &base)
 
FErequirementsoperator= (const Base &base)
 
FErequirementsoperator= (Base &&base)
 
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...
 
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 >
Deprecated:
FErequirements is deprecaded and will be removed after v0.5. Use FERequirements instead.

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

using Ikarus::FERequirements< std::reference_wrapper< Eigen::VectorXd > , std::reference_wrapper< double > >::ParameterType = std::reference_wrapper< double >
inherited

◆ ParameterTypeRaw

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

◆ SolutionVectorType

using Ikarus::FERequirements< std::reference_wrapper< Eigen::VectorXd > , std::reference_wrapper< double > >::SolutionVectorType = std::reference_wrapper< Eigen::VectorXd >
inherited

◆ SolutionVectorTypeRaw

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

Constructor & Destructor Documentation

◆ FErequirements() [1/3]

template<typename SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
Ikarus::FErequirements< SV, PM >::FErequirements ( )
default

◆ FErequirements() [2/3]

template<typename SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
Ikarus::FErequirements< SV, PM >::FErequirements ( Base &&  base)
inline

◆ FErequirements() [3/3]

template<typename SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
Ikarus::FErequirements< SV, PM >::FErequirements ( const Base base)
inline

Member Function Documentation

◆ addAffordance()

FERequirements & Ikarus::FERequirements< std::reference_wrapper< Eigen::VectorXd > , std::reference_wrapper< double > >::addAffordance ( Affordance &&  affordance)
inlineinherited

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()

const SolutionVectorTypeRaw & Ikarus::FERequirements< std::reference_wrapper< Eigen::VectorXd > , std::reference_wrapper< double > >::getGlobalSolution ( const FESolutions key) const
inlineinherited

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()

const ParameterTypeRaw & Ikarus::FERequirements< std::reference_wrapper< Eigen::VectorXd > , std::reference_wrapper< double > >::getParameter ( FEParameter &&  key) const
inlineinherited

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()

bool Ikarus::FERequirements< std::reference_wrapper< Eigen::VectorXd > , std::reference_wrapper< double > >::hasAffordance ( Affordance &&  affordance) const
inlineinherited

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()

FERequirements & Ikarus::FERequirements< std::reference_wrapper< Eigen::VectorXd > , std::reference_wrapper< double > >::insertGlobalSolution ( const FESolutions key,
SolutionVectorTypeRaw sol 
)
inlineinherited

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()

FERequirements & Ikarus::FERequirements< std::reference_wrapper< Eigen::VectorXd > , std::reference_wrapper< double > >::insertParameter ( const FEParameter key,
ParameterTypeRaw val 
)
inlineinherited

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.

◆ operator=() [1/2]

template<typename SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
FErequirements & Ikarus::FErequirements< SV, PM >::operator= ( Base &&  base)
inline

◆ operator=() [2/2]

template<typename SV = std::reference_wrapper<Eigen::VectorXd>, typename PM = std::reference_wrapper<double>>
FErequirements & Ikarus::FErequirements< SV, PM >::operator= ( const Base base)
inline

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