//@}
- /**
- * @name Post-processing
- */
- //@{
-
- /*
- * Return the complete set of degree of freedom values of
- * auto-differentiable number type. These store the same scalar values as
- * the independent variables $\mathbf{X}$ about which the solution is
- * linearized.
- *
- * Operations performed with these numbers are not tracked by the AD,
- * libraries so they are considered "non-sensitive" variables.
- * The values of the components of the returned object are initialized to
- * the values set with register_dof_values().
- *
- * @return An array of auto-differentiable type numbers representing the
- * local degree of freedom values.
- *
- * @note This function is not typically used within the context of automatic
- * differentation computations, but can make performing substutitions in
- * other post-processing computations more straight forward.
- *
- * @note For taped AD numbers, this operation is only valid outside recording mode.
- */
- std::vector<ad_type>
- get_non_sensitive_dof_values() const;
-
- //@}
-
/**
* @name Operations specific to taped mode: Reusing tapes
*/
- template <enum AD::NumberTypes ADNumberTypeCode, typename ScalarType>
- std::vector<
- typename ADHelperCellLevelBase<ADNumberTypeCode, ScalarType>::ad_type>
- ADHelperCellLevelBase<ADNumberTypeCode,
- ScalarType>::get_non_sensitive_dof_values() const
- {
- if (ADNumberTraits<ad_type>::is_taped == true)
- {
- Assert(this->active_tape_index() !=
- Numbers<ad_type>::invalid_tape_index,
- ExcMessage("Invalid tape index"));
- }
-
- std::vector<ad_type> out(this->n_independent_variables(),
- dealii::internal::NumberType<ad_type>::value(
- 0.0));
- for (unsigned int i = 0; i < this->n_independent_variables(); ++i)
- this->initialize_non_sensitive_independent_variable(i, out[i]);
-
- return out;
- }
-
-
-
template <enum AD::NumberTypes ADNumberTypeCode, typename ScalarType>
void
ADHelperCellLevelBase<ADNumberTypeCode, ScalarType>::set_dof_values(