20 #ifndef LIBMESH_PARAMETER_MULTIACCESSOR_H 21 #define LIBMESH_PARAMETER_MULTIACCESSOR_H 25 #include "libmesh/libmesh_common.h" 26 #include "libmesh/parameter_accessor.h" 46 template <
typename T=Number>
69 virtual void set (
const T & new_value)
override 80 libmesh_assert_equal_to(accessor->get(), val);
81 accessor->set(new_value);
88 virtual const T &
get ()
const override 96 libmesh_assert_equal_to(accessor->get(), val);
104 virtual std::unique_ptr<ParameterAccessor<T>>
clone()
const override 106 auto pmp = std::make_unique<ParameterMultiAccessor<T>>();
108 pmp->_accessors.push_back(accessor->clone());
127 std::vector<std::unique_ptr<ParameterAccessor<T>>>
_accessors;
132 #endif // LIBMESH_PARAMETER_MULTIACCESSOR_H ~ParameterMultiAccessor()=default
ParameterMultiAccessor(const ParameterAccessor< T > ¶m_accessor)
Constructor: take the first sub-accessor for the parameter.
virtual std::unique_ptr< ParameterAccessor< T > > clone() const override
The libMesh namespace provides an interface to certain functionality in the library.
void push_back(const ParameterAccessor< T > &new_accessor)
ParameterMultiAccessor()=default
Constructor: no parameters attached yet.
Accessor object allowing reading and modification of the independent variables in a parameter sensiti...
std::vector< std::unique_ptr< ParameterAccessor< T > > > _accessors
virtual std::unique_ptr< ParameterAccessor< T > > clone() const =0
Accessor object allowing reading and modification of the independent variables in a parameter sensiti...