19 std::string referenced_parameter_name)
28 std::vector<std::unique_ptr<ParameterBase>>
const& parameters)
override
37 return _parameter->getNumberOfGlobalComponents();
46 "Coordinate system not expected to be set for curve scaled "
49 auto const& tup = (*_parameter)(t, pos);
50 auto const scaling =
_curve.getValue(t);
52 auto const num_comp =
_parameter->getNumberOfGlobalComponents();
53 std::vector<T> cache(num_comp);
54 for (
int c = 0; c < num_comp; ++c)
56 cache[c] = scaling * tup[c];
68 std::string
const& name,
71 std::unique_ptr<MathLib::PiecewiseLinearInterpolation>>
const&
OGS_NO_DANGLING Parameter< ParameterDataType > & findParameter(std::string const ¶meter_name, std::vector< std::unique_ptr< ParameterBase > > const ¶meters, int const num_components, MeshLib::Mesh const *const mesh=nullptr)
std::unique_ptr< ParameterBase > createCurveScaledParameter(std::string const &name, BaseLib::ConfigTree const &config, std::map< std::string, std::unique_ptr< MathLib::PiecewiseLinearInterpolation > > const &curves)
int getNumberOfGlobalComponents() const override
CurveScaledParameter(std::string const &name_, MathLib::PiecewiseLinearInterpolation const &curve, std::string referenced_parameter_name)
void initialize(std::vector< std::unique_ptr< ParameterBase > > const ¶meters) override
bool isTimeDependent() const override
std::vector< T > operator()(double const t, SpatialPosition const &pos) const override
Returns the parameter value at the given time and position.
std::string const _referenced_parameter_name
Parameter< T > const * _parameter
MathLib::PiecewiseLinearInterpolation const & _curve
MeshLib::Mesh const * _mesh
std::optional< CoordinateSystem > _coordinate_system