typename Mapping<dim>::InternalDataBase &mapping_internal,
InternalDataBase &fe_internal,
FEValuesData<dim> &data) const;
+
+ private:
+ /**
+ * Second derivatives of shapes
+ * functions are not computed
+ * analytically, but by finite
+ * differences of the
+ * gradients. This static
+ * variable denotes the step
+ * length to be used for
+ * that. It's value is set to
+ * 1e-6.
+ */
+ static const double fd_step_length;
+
/**
* Allow the FESystem class to
/*------------------------------- FiniteElementBase ----------------------*/
+template <int dim>
+const double FiniteElementBase<dim>::fd_step_length = 1.0e-6;
+
+
template <int dim>
void
FiniteElementBase<dim>::
for (unsigned int d=0; d<dim; ++d)
{
Point<dim> shift;
-//TODO:[GK] unify the places where the finite differencing step length is used
- shift (d) = 1.e-6;
+ shift (d) = fd_step_length;
// generate points and FEValues
// objects shifted in
const Tensor<1,dim>& left
= fe_internal.differences[d1+dim]->shape_grad(shape, q);
-//TODO:[GK] unify the places where the finite differencing step length is used
// compute the second
// derivative from a
// symmetric difference
// approximation
for (unsigned int d=0; d<dim; ++d)
- diff_quot[d][q][d1] = 1./(2*1.e-6) * (right[d]-left[d]);
+ diff_quot[d][q][d1] = 1./(2*fd_step_length) * (right[d]-left[d]);
}
// up to now we still have