Skip to content
Snippets Groups Projects
Commit ccf425bb authored by Christoph Lehmann's avatar Christoph Lehmann Committed by Dmitri Naumov
Browse files

[PL] Parameters tell if they are time-dependent

parent 72fffd00
No related branches found
No related tags found
No related merge requests found
......@@ -19,26 +19,30 @@ template <typename T>
struct ConstantParameter final : public Parameter<T>
{
/// Construction with single value.
ConstantParameter(T const& value) : _value({value}) {}
explicit ConstantParameter(T const& value) : _values({value}) {}
/// Construction with a tuple.
/// The given tuple must be non-empty.
ConstantParameter(std::vector<T> const& value) : _value(value)
explicit ConstantParameter(std::vector<T> const& values) : _values(values)
{
assert(!value.empty());
assert(!values.empty());
}
bool isTimeDependent() const override { return false; }
unsigned getNumberOfComponents() const override
{
return static_cast<unsigned>(_value.size());
return static_cast<unsigned>(_values.size());
}
std::vector<T> const& operator()(
double const /*t*/, SpatialPosition const& /*pos*/) const override
{
return _value;
return _values;
}
private:
std::vector<T> const _value;
std::vector<T> const _values;
};
std::unique_ptr<ParameterBase> createConstantParameter(
......
......@@ -26,6 +26,8 @@ struct CurveScaledParameter final : public Parameter<T> {
{
}
bool isTimeDependent() const override { return true; }
void initialize(
std::vector<
std::unique_ptr<ProcessLib::ParameterBase>> const& parameters)
......
......@@ -29,6 +29,8 @@ struct MeshElementParameter final : public Parameter<T> {
{
}
bool isTimeDependent() const override { return false; }
unsigned getNumberOfComponents() const override
{
return _property.getNumberOfComponents();
......
......@@ -29,6 +29,8 @@ struct MeshNodeParameter final : public Parameter<T> {
{
}
bool isTimeDependent() const override { return false; }
unsigned getNumberOfComponents() const override
{
return _property.getNumberOfComponents();
......
......@@ -39,6 +39,8 @@ struct ParameterBase
{
virtual ~ParameterBase() = default;
virtual bool isTimeDependent() const = 0;
/// Parameters might depend on each other; this method allows to set up the
/// dependencies between parameters after they have been constructed.
virtual void initialize(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment