libMesh
|
Data structure for specifying which Parameters should be independent variables in a parameter sensitivity calculation. More...
#include <parameter_vector.h>
Public Member Functions | |
ParameterVector () | |
Default constructor: "no parameters". More... | |
ParameterVector (const std::vector< Number *> ¶ms) | |
Constructor-from-vector-of-Number*: each points to a parameter. More... | |
~ParameterVector () | |
Destructor - deletes ParameterAccessor objects. More... | |
void | deep_copy (ParameterVector &target) const |
Deep copy constructor: the target will now own new copies of all the parameter values I'm pointing to. More... | |
void | shallow_copy (ParameterVector &target) const |
Shallow copy constructor: the target will now point to all the parameter values I'm pointing to. More... | |
void | value_copy (ParameterVector &target) const |
Value copy method: the target , which should already have as many parameters as I do, will now have those parameters set to my values. More... | |
void | clear () |
Resets to "no parameters". More... | |
std::size_t | size () const |
void | resize (std::size_t s) |
Sets the number of parameters to be used. More... | |
void | push_back (std::unique_ptr< ParameterAccessor< Number >> new_accessor) |
Adds an additional parameter accessor to the end of the vector. More... | |
void | deep_resize (std::size_t s) |
Sets the number of parameters to be used. More... | |
const ParameterAccessor< Number > & | operator[] (std::size_t i) const |
ParameterAccessor< Number > & | operator[] (std::size_t i) |
ParameterVector & | operator*= (const Number a) |
Multiplication operator; acts individually on each parameter. More... | |
ParameterVector & | operator+= (const ParameterVector &a) |
Addition operator. More... | |
Private Attributes | |
std::vector< ParameterAccessor< Number > * > | _params |
Pointers to parameters which may exist elsewhere. More... | |
std::vector< Number > | _my_data |
Parameters which I own; e.g. More... | |
bool | _is_shallow_copy |
Am I a shallow copy? If so then I shouldn't be deleting my ParameterAccessors. More... | |
Data structure for specifying which Parameters should be independent variables in a parameter sensitivity calculation.
Definition at line 45 of file parameter_vector.h.
libMesh::ParameterVector::ParameterVector | ( | ) |
Default constructor: "no parameters".
Definition at line 51 of file parameter_vector.h.
|
explicit |
Constructor-from-vector-of-Number*: each points to a parameter.
libMesh::ParameterVector::~ParameterVector | ( | ) |
Destructor - deletes ParameterAccessor objects.
Definition at line 163 of file parameter_vector.h.
References clear().
void libMesh::ParameterVector::clear | ( | ) |
Resets to "no parameters".
Definition at line 171 of file parameter_vector.h.
References _is_shallow_copy, _my_data, and _params.
Referenced by LaplaceSystem::get_parameter_vector(), and ~ParameterVector().
void libMesh::ParameterVector::deep_copy | ( | ParameterVector & | target | ) | const |
Deep copy constructor: the target
will now own new copies of all the parameter values I'm pointing to.
void libMesh::ParameterVector::deep_resize | ( | std::size_t | s | ) |
Sets the number of parameters to be used.
This method is for resizing a ParameterVector that owns its own parameter values
ParameterVector& libMesh::ParameterVector::operator*= | ( | const Number | a | ) |
Multiplication operator; acts individually on each parameter.
ParameterVector& libMesh::ParameterVector::operator+= | ( | const ParameterVector & | a | ) |
Addition operator.
The parameter vector to be added in must have the same number of values.
const ParameterAccessor< Number > & libMesh::ParameterVector::operator[] | ( | std::size_t | i | ) | const |
Definition at line 195 of file parameter_vector.h.
References _params.
ParameterAccessor< Number > & libMesh::ParameterVector::operator[] | ( | std::size_t | i | ) |
Definition at line 205 of file parameter_vector.h.
References _params.
void libMesh::ParameterVector::push_back | ( | std::unique_ptr< ParameterAccessor< Number >> | new_accessor | ) |
Adds an additional parameter accessor to the end of the vector.
We will free this accessor when we are finished with it; we request that it be passed to us as a std::unique_ptr to reflect that fact in the API.
Definition at line 184 of file parameter_vector.h.
References _is_shallow_copy, and _params.
Referenced by CoupledSystem::get_parameter_vector(), and HeatSystem::get_parameter_vector().
void libMesh::ParameterVector::resize | ( | std::size_t | s | ) |
Sets the number of parameters to be used.
If the new size is larger than the old, empty ParameterPointer accessors fill the new entries.
void libMesh::ParameterVector::shallow_copy | ( | ParameterVector & | target | ) | const |
Shallow copy constructor: the target
will now point to all the parameter values I'm pointing to.
std::size_t libMesh::ParameterVector::size | ( | ) | const |
Definition at line 91 of file parameter_vector.h.
References _params.
Referenced by libMesh::SensitivityData::allocate_data(), and libMesh::SensitivityData::allocate_hessian_data().
void libMesh::ParameterVector::value_copy | ( | ParameterVector & | target | ) | const |
Value copy method: the target
, which should already have as many parameters as I do, will now have those parameters set to my values.
|
private |
Am I a shallow copy? If so then I shouldn't be deleting my ParameterAccessors.
Definition at line 154 of file parameter_vector.h.
Referenced by clear(), and push_back().
|
private |
Parameters which I own; e.g.
as the result of a deep copy
Definition at line 148 of file parameter_vector.h.
Referenced by clear().
|
private |
Pointers to parameters which may exist elsewhere.
Definition at line 143 of file parameter_vector.h.
Referenced by clear(), operator[](), push_back(), and size().