*/
template <class InputVector>
void get_function_values (const InputVector &fe_function,
- std::vector<value_type> &values) const;
+ std::vector<typename ProductType<value_type,typename InputVector::value_type>::type> &values) const;
/**
* Return the divergence of the selected vector components of the finite
*/
template <class InputVector>
void get_function_divergences (const InputVector &fe_function,
- std::vector<divergence_type> &divergences) const;
+ std::vector<typename ProductType<divergence_type,typename InputVector::value_type>::type> &divergences) const;
private:
/**
*/
template <class InputVector>
void get_function_values (const InputVector &fe_function,
- std::vector<value_type> &values) const;
+ std::vector<typename ProductType<value_type,typename InputVector::value_type>::type> &values) const;
/**
*/
template <class InputVector>
void get_function_divergences (const InputVector &fe_function,
- std::vector<divergence_type> &divergences) const;
+ std::vector<typename ProductType<divergence_type,typename InputVector::value_type>::type> &divergences) const;
private:
/**
void
SymmetricTensor<2, dim, spacedim>::
get_function_values(const InputVector &fe_function,
- std::vector<value_type> &values) const
+ std::vector<typename ProductType<value_type,typename InputVector::value_type>::type> &values) const
{
typedef FEValuesBase<dim, spacedim> FVB;
Assert(fe_values.update_flags & update_values,
fe_values.present_cell->n_dofs_for_dof_handler());
// get function values of dofs on this cell
- dealii::Vector<double> dof_values(fe_values.dofs_per_cell);
+ dealii::Vector<typename InputVector::value_type> dof_values(fe_values.dofs_per_cell);
fe_values.present_cell->get_interpolated_dof_values(fe_function, dof_values);
internal::do_function_values<dim,spacedim>
(dof_values, fe_values.shape_values, shape_function_data, values);
void
SymmetricTensor<2, dim, spacedim>::
get_function_divergences(const InputVector &fe_function,
- std::vector<divergence_type> &divergences) const
+ std::vector<typename ProductType<divergence_type,typename InputVector::value_type>::type> &divergences) const
{
typedef FEValuesBase<dim, spacedim> FVB;
Assert(fe_values.update_flags & update_gradients,
// get function values of dofs
// on this cell
- dealii::Vector<double> dof_values(fe_values.dofs_per_cell);
+ dealii::Vector<typename InputVector::value_type> dof_values(fe_values.dofs_per_cell);
fe_values.present_cell->get_interpolated_dof_values(fe_function, dof_values);
internal::do_function_divergences<dim,spacedim>
(dof_values, fe_values.shape_gradients, shape_function_data, divergences);
void
Tensor<2, dim, spacedim>::
get_function_values(const InputVector &fe_function,
- std::vector<value_type> &values) const
+ std::vector<typename ProductType<value_type,typename InputVector::value_type>::type> &values) const
{
typedef FEValuesBase<dim, spacedim> FVB;
Assert(fe_values.update_flags & update_values,
fe_values.present_cell->n_dofs_for_dof_handler());
// get function values of dofs on this cell
- dealii::Vector<double> dof_values(fe_values.dofs_per_cell);
+ dealii::Vector<typename InputVector::value_type> dof_values(fe_values.dofs_per_cell);
fe_values.present_cell->get_interpolated_dof_values(fe_function, dof_values);
internal::do_function_values<dim,spacedim>
(dof_values, fe_values.shape_values, shape_function_data, values);
void
Tensor<2, dim, spacedim>::
get_function_divergences(const InputVector &fe_function,
- std::vector<divergence_type> &divergences) const
+ std::vector<typename ProductType<divergence_type,typename InputVector::value_type>::type> &divergences) const
{
typedef FEValuesBase<dim, spacedim> FVB;
Assert(fe_values.update_flags & update_gradients,
// get function values of dofs
// on this cell
- dealii::Vector<double> dof_values(fe_values.dofs_per_cell);
+ dealii::Vector<typename InputVector::value_type> dof_values(fe_values.dofs_per_cell);
fe_values.present_cell->get_interpolated_dof_values(fe_function, dof_values);
internal::do_function_divergences<dim,spacedim>
(dof_values, fe_values.shape_gradients, shape_function_data, divergences);