Go to the documentation of this file.
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>
72 #ifdef LIBMESH_ENABLE_DEPRECATED
84 virtual void set (
const T & new_value)
override
95 libmesh_assert_equal_to(accessor->get(), val);
96 accessor->set(new_value);
103 virtual const T &
get ()
const override
111 libmesh_assert_equal_to(accessor->get(), val);
119 virtual std::unique_ptr<ParameterAccessor<T>>
clone()
const override
123 pmp->
_accessors.push_back(accessor->clone().release());
125 return std::unique_ptr<ParameterAccessor<T>>(pmp);
146 #endif // LIBMESH_PARAMETER_MULTIACCESSOR_H
Accessor object allowing reading and modification of the independent variables in a parameter sensiti...
std::vector< ParameterAccessor< T > * > _accessors
The libMesh namespace provides an interface to certain functionality in the library.
Accessor object allowing reading and modification of the independent variables in a parameter sensiti...
virtual std::unique_ptr< ParameterAccessor< T > > clone() const =0
virtual const T & get() const override
Getter: get the value of the parameter we access.
virtual void set(const T &new_value) override
Setter: change the value of the parameter we access.
void push_back(const ParameterAccessor< T > &new_accessor)
ParameterMultiAccessor()
Constructor: no parameters attached yet.
virtual std::unique_ptr< ParameterAccessor< T > > clone() const override
~ParameterMultiAccessor()
ParameterMultiAccessor(const ParameterAccessor< T > ¶m_accessor)
Constructor: take the first sub-accessor for the parameter.
virtual ParameterAccessor< T > & operator=(T *) override
A simple reseater won't work with a multi-accessor.