ParameterVector Class Reference
#include <parameter_vector.h>
Public Member Functions | |
| ParameterVector () | |
| ParameterVector (const std::vector< Number * > ¶ms) | |
| void | deep_copy (ParameterVector &target) const |
| void | shallow_copy (ParameterVector &target) const |
| void | value_copy (const ParameterVector &target) const |
| void | clear () |
| unsigned int | size () const |
| void | resize (unsigned int s) |
| Number * | operator[] (unsigned int i) const |
| Number *& | operator[] (unsigned int i) |
| ParameterVector & | operator*= (const Number a) |
| ParameterVector & | operator+= (const ParameterVector &a) |
| const ParameterVector & | operator+= (const ParameterVector &a) const |
Private Attributes | |
| std::vector< Number * > | _params |
| std::vector< Number > | _my_data |
Detailed Description
Data structure for specifying which Parameters should be independent variables in a parameter sensitivity calculation.Definition at line 39 of file parameter_vector.h.
Constructor & Destructor Documentation
| ParameterVector::ParameterVector | ( | ) | [inline] |
| ParameterVector::ParameterVector | ( | const std::vector< Number * > & | params | ) | [inline] |
Constructor-from-vector-of-Number*: each points to a parameter
Definition at line 50 of file parameter_vector.h.
00050 : _params(params) {}
Member Function Documentation
| void ParameterVector::clear | ( | ) | [inline] |
Resets to "no parameters"
Definition at line 74 of file parameter_vector.h.
References _params.
00074 { _params.clear(); }
| void 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
Definition at line 34 of file parameter_vector.C.
References _my_data, and _params.
Referenced by ImplicitSystem::qoi_parameter_hessian_vector_product(), ImplicitSystem::weighted_sensitivity_adjoint_solve(), and ImplicitSystem::weighted_sensitivity_solve().
00035 { 00036 const unsigned int Np = this->_params.size(); 00037 target._params.resize(Np); 00038 target._my_data.resize(Np); 00039 for (unsigned int i=0; i != Np; ++i) 00040 { 00041 target._params[i] = &target._my_data[i]; 00042 target._my_data[i] = *(this->_params[i]); 00043 } 00044 }
| ParameterVector & ParameterVector::operator*= | ( | const Number | a | ) |
Multiplication operator; acts individually on each parameter.
Definition at line 67 of file parameter_vector.C.
References _params.
00068 { 00069 const unsigned int Np = this->_params.size(); 00070 for (unsigned int i=0; i != Np; ++i) 00071 *(this->_params[i]) *= a; 00072 return *this; 00073 }
| const ParameterVector & ParameterVector::operator+= | ( | const ParameterVector & | a | ) | const |
Addition operator. The parameter vector to be added in must have the same number of values.
Definition at line 77 of file parameter_vector.C.
References _params.
00078 { 00079 const unsigned int Np = this->_params.size(); 00080 libmesh_assert(a._params.size() == Np); 00081 for (unsigned int i=0; i != Np; ++i) 00082 *(this->_params[i]) += *(a._params[i]); 00083 return *this; 00084 }
| ParameterVector & ParameterVector::operator+= | ( | const ParameterVector & | a | ) |
Addition operator. The parameter vector to be added in must have the same number of values.
Definition at line 87 of file parameter_vector.C.
| Number *& ParameterVector::operator[] | ( | unsigned int | i | ) | [inline] |
Returns a reference to a pointer to a parameter value, suitable for repointing it to a different address.
Definition at line 144 of file parameter_vector.h.
References _params.
| Number * ParameterVector::operator[] | ( | unsigned int | i | ) | const [inline] |
Returns a pointer to a parameter value
Definition at line 134 of file parameter_vector.h.
References _params.
| void ParameterVector::resize | ( | unsigned int | s | ) | [inline] |
Sets the number of parameters to be used
Definition at line 84 of file parameter_vector.h.
References _params.
00084 { _params.resize(s); }
| void ParameterVector::shallow_copy | ( | ParameterVector & | target | ) | const |
| unsigned int ParameterVector::size | ( | ) | const [inline] |
Returns the number of parameters to be used
Definition at line 79 of file parameter_vector.h.
References _params.
Referenced by ImplicitSystem::adjoint_qoi_parameter_sensitivity(), SensitivityData::allocate_data(), SensitivityData::allocate_hessian_data(), ImplicitSystem::assemble_residual_derivatives(), ImplicitSystem::forward_qoi_parameter_sensitivity(), ImplicitSystem::qoi_parameter_hessian(), ImplicitSystem::qoi_parameter_hessian_vector_product(), System::qoi_parameter_sensitivity(), and ImplicitSystem::sensitivity_solve().
00079 { return _params.size(); }
| void ParameterVector::value_copy | ( | const 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.
Definition at line 56 of file parameter_vector.C.
References _params.
Referenced by ImplicitSystem::qoi_parameter_hessian_vector_product(), ImplicitSystem::weighted_sensitivity_adjoint_solve(), and ImplicitSystem::weighted_sensitivity_solve().
00057 { 00058 const unsigned int Np = this->_params.size(); 00059 libmesh_assert(target._params.size() == Np); 00060 00061 for (unsigned int i=0; i != Np; ++i) 00062 *(this->_params[i]) = *(target._params[i]); 00063 }
Member Data Documentation
std::vector<Number> ParameterVector::_my_data [private] |
Parameters which I own; e.g. as the result of a deep copy
Definition at line 123 of file parameter_vector.h.
Referenced by deep_copy(), and shallow_copy().
std::vector<Number *> ParameterVector::_params [private] |
Pointers to parameters which may exist elsewhere
Definition at line 118 of file parameter_vector.h.
Referenced by clear(), deep_copy(), operator*=(), operator+=(), operator[](), resize(), shallow_copy(), size(), and value_copy().
The documentation for this class was generated from the following files: