20 #ifndef LIBMESH_SENSITIVITY_DATA_H 21 #define LIBMESH_SENSITIVITY_DATA_H 110 unsigned int parameter_index)
const;
117 unsigned int parameter_index1,
118 unsigned int parameter_index2)
const;
125 unsigned int parameter_index);
133 unsigned int parameter_index1,
134 unsigned int parameter_index2);
174 const std::size_t Np = parameter_vector.
size();
175 const unsigned int Nq = sys.
n_qois();
180 for (
unsigned int i=0; i != Nq; ++i)
195 const std::size_t Np = parameter_vector.
size();
196 const unsigned int Nq = sys.
n_qois();
201 for (
unsigned int i=0; i != Nq; ++i)
206 for (std::size_t j=0; j != Np; ++j)
215 unsigned int parameter_index)
const 217 libmesh_assert_less (qoi_index,
_grad_data.size());
218 libmesh_assert_less (parameter_index,
_grad_data[qoi_index].size());
220 return _grad_data[qoi_index][parameter_index];
227 unsigned int parameter_index)
229 libmesh_assert_less (qoi_index,
_grad_data.size());
230 libmesh_assert_less (parameter_index,
_grad_data[qoi_index].size());
232 return _grad_data[qoi_index][parameter_index];
239 unsigned int parameter_index1,
240 unsigned int parameter_index2)
const 242 libmesh_assert_less (qoi_index,
_hess_data.size());
243 libmesh_assert_less (parameter_index1,
_hess_data[qoi_index].size());
244 libmesh_assert_less (parameter_index2,
_hess_data[qoi_index][parameter_index1].size());
246 return _hess_data[qoi_index][parameter_index1][parameter_index2];
253 unsigned int parameter_index1,
254 unsigned int parameter_index2)
256 libmesh_assert_less (qoi_index,
_hess_data.size());
257 libmesh_assert_less (parameter_index1,
_hess_data[qoi_index].size());
258 libmesh_assert_less (parameter_index2,
_hess_data[qoi_index][parameter_index1].size());
260 return _hess_data[qoi_index][parameter_index1][parameter_index2];
265 #endif // LIBMESH_SENSITIVITY_DATA_H const Number & derivative(unsigned int qoi_index, unsigned int parameter_index) const
std::vector< std::vector< std::vector< Number > > > _hess_data
Specifies parameters for parameter sensitivity calculations.
Used to specify quantities of interest in a simulation.
std::vector< std::vector< Number > > _grad_data
void allocate_hessian_data(const QoISet &qoi_indices, const System &sys, const ParameterVector ¶meter_vector)
unsigned int n_qois() const
const SensitivityData & _sd
bool has_index(std::size_t) const
std::vector< dof_id_type, Threads::scalable_allocator< dof_id_type > > Row
void allocate_data(const QoISet &qoi_indices, const System &sys, const ParameterVector ¶meter_vector)
Holds completed parameter sensitivity calculations.
Manages consistently variables, degrees of freedom, and coefficient vectors.
const Number & second_derivative(unsigned int qoi_index, unsigned int parameter_index1, unsigned int parameter_index2) const
const Number & operator[](unsigned int parameter)
ConstRow(const SensitivityData &sd, unsigned int qoi)
Row(SensitivityData &sd, unsigned int qoi)
Number & operator[](unsigned int parameter)
ConstRow operator[](unsigned int qoi) const