OGS
ParameterLib::CurveScaledParameter< T > Struct Template Referencefinal

Detailed Description

template<typename T>
struct ParameterLib::CurveScaledParameter< T >

Definition at line 15 of file CurveScaledParameter.h.

#include <CurveScaledParameter.h>

Inheritance diagram for ParameterLib::CurveScaledParameter< T >:
[legend]
Collaboration diagram for ParameterLib::CurveScaledParameter< T >:
[legend]

Public Member Functions

 CurveScaledParameter (std::string const &name_, MathLib::PiecewiseLinearInterpolation const &curve, std::string referenced_parameter_name)
bool isTimeDependent () const override
void initialize (std::vector< std::unique_ptr< ParameterBase > > const &parameters) override
int getNumberOfGlobalComponents () const override
std::vector< T > operator() (double const t, SpatialPosition const &pos) const override
 Returns the parameter value at the given time and position.
Public Member Functions inherited from ParameterLib::Parameter< T >
 ~Parameter () override=default
virtual Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic > getNodalValuesOnElement (MeshLib::Element const &element, double const t) const
 Returns a matrix of values for all nodes of the given element.
 ParameterBase (std::string name_, MeshLib::Mesh const *mesh=nullptr)
Public Member Functions inherited from ParameterLib::ParameterBase
 ParameterBase (std::string name_, MeshLib::Mesh const *mesh=nullptr)
virtual ~ParameterBase ()=default
void setCoordinateSystem (CoordinateSystem const &coordinate_system)
MeshLib::Mesh const * mesh () const

Private Attributes

MathLib::PiecewiseLinearInterpolation const & _curve
Parameter< T > const * _parameter = nullptr
std::string const _referenced_parameter_name

Additional Inherited Members

Public Attributes inherited from ParameterLib::ParameterBase
std::string const name
Protected Member Functions inherited from ParameterLib::ParameterBase
std::vector< double > rotateWithCoordinateSystem (std::vector< double > const &values, SpatialPosition const &pos) const
Protected Attributes inherited from ParameterLib::ParameterBase
std::optional< CoordinateSystem_coordinate_system
MeshLib::Mesh const * _mesh

Constructor & Destructor Documentation

◆ CurveScaledParameter()

template<typename T>
ParameterLib::CurveScaledParameter< T >::CurveScaledParameter ( std::string const & name_,
MathLib::PiecewiseLinearInterpolation const & curve,
std::string referenced_parameter_name )
inline

Member Function Documentation

◆ getNumberOfGlobalComponents()

template<typename T>
int ParameterLib::CurveScaledParameter< T >::getNumberOfGlobalComponents ( ) const
inlineoverridevirtual

Returns the number of components this Parameter has at every position and point in time.

Implements ParameterLib::Parameter< T >.

Definition at line 35 of file CurveScaledParameter.h.

36 {
37 return _parameter->getNumberOfGlobalComponents();
38 }

References _parameter.

◆ initialize()

template<typename T>
void ParameterLib::CurveScaledParameter< T >::initialize ( std::vector< std::unique_ptr< ParameterBase > > const & )
inlineoverridevirtual

Parameters might depend on each other; this method allows to set up the dependencies between parameters after they have been constructed.

Reimplemented from ParameterLib::ParameterBase.

Definition at line 27 of file CurveScaledParameter.h.

29 {
33 }
OGS_NO_DANGLING Parameter< ParameterDataType > & findParameter(std::string const &parameter_name, std::vector< std::unique_ptr< ParameterBase > > const &parameters, int const num_components, MeshLib::Mesh const *const mesh=nullptr)

References ParameterLib::ParameterBase::_mesh, _parameter, _referenced_parameter_name, and ParameterLib::findParameter().

◆ isTimeDependent()

template<typename T>
bool ParameterLib::CurveScaledParameter< T >::isTimeDependent ( ) const
inlineoverridevirtual

Implements ParameterLib::ParameterBase.

Definition at line 26 of file CurveScaledParameter.h.

26{ return true; }

◆ operator()()

template<typename T>
std::vector< T > ParameterLib::CurveScaledParameter< T >::operator() ( double const t,
SpatialPosition const & pos ) const
inlineoverridevirtual

Returns the parameter value at the given time and position.

Implements ParameterLib::Parameter< T >.

Definition at line 40 of file CurveScaledParameter.h.

42 {
43 // No local coordinate transformation here, which might happen twice
44 // otherwise.
46 "Coordinate system not expected to be set for curve scaled "
47 "parameters.");
48
49 auto const& tup = (*_parameter)(t, pos);
50 auto const scaling = _curve.getValue(t);
51
52 auto const num_comp = _parameter->getNumberOfGlobalComponents();
54 for (int c = 0; c < num_comp; ++c)
55 {
56 cache[c] = scaling * tup[c];
57 }
58 return cache;
59 }
std::optional< CoordinateSystem > _coordinate_system

References ParameterLib::ParameterBase::_coordinate_system, _curve, and _parameter.

Member Data Documentation

◆ _curve

template<typename T>
MathLib::PiecewiseLinearInterpolation const& ParameterLib::CurveScaledParameter< T >::_curve
private

Definition at line 62 of file CurveScaledParameter.h.

Referenced by CurveScaledParameter(), and operator()().

◆ _parameter

template<typename T>
Parameter<T> const* ParameterLib::CurveScaledParameter< T >::_parameter = nullptr
private

Definition at line 63 of file CurveScaledParameter.h.

Referenced by getNumberOfGlobalComponents(), initialize(), and operator()().

◆ _referenced_parameter_name

template<typename T>
std::string const ParameterLib::CurveScaledParameter< T >::_referenced_parameter_name
private

Definition at line 64 of file CurveScaledParameter.h.

Referenced by CurveScaledParameter(), and initialize().


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