Public Types | |
typedef Tensor< 2, dim > | Derivative |
typedef Tensor< 1, dim > | ProjectedDerivative |
Public Member Functions | |
template<> | |
double | derivative_norm (const Derivative &d) |
template<> | |
double | derivative_norm (const Derivative &d) |
template<> | |
double | derivative_norm (const Derivative &d) |
Static Public Member Functions | |
template<class InputVector , int spacedim> | |
static ProjectedDerivative | get_projected_derivative (const FEValues< dim, spacedim > &fe_values, const InputVector &solution, const unsigned int component) |
static double | derivative_norm (const Derivative &d) |
static void | symmetrize (Derivative &derivative_tensor) |
Static Public Attributes | |
static const UpdateFlags | update_flags |
typedef Tensor<2,dim> DerivativeApproximation::SecondDerivative< dim >::Derivative |
Declare the data type which holds the derivative described by this class.
typedef Tensor<1,dim> DerivativeApproximation::SecondDerivative< dim >::ProjectedDerivative |
Likewise declare the data type that holds the derivative projected to a certain directions.
static ProjectedDerivative DerivativeApproximation::SecondDerivative< dim >::get_projected_derivative | ( | const FEValues< dim, spacedim > & | fe_values, | |
const InputVector & | solution, | |||
const unsigned int | component | |||
) | [inline, static] |
Given an FEValues object initialized to a cell, and a solution vector, extract the desired derivative at the first quadrature point (which is the only one, as we only evaluate the finite element field at the center of each cell).
static double DerivativeApproximation::SecondDerivative< dim >::derivative_norm | ( | const Derivative & | d | ) | [static] |
Return the norm of the derivative object. Here, for the (symmetric) tensor of second derivatives, we choose the absolute value of the largest eigenvalue, which is the matrix norm associated to the norm of vectors. It is also the largest value of the curvature of the solution.
static void DerivativeApproximation::SecondDerivative< dim >::symmetrize | ( | Derivative & | derivative_tensor | ) | [static] |
If for the present derivative order, symmetrization of the derivative tensor is necessary, then do so on the argument.
For the second derivatives, each entry of the tensor is set to the mean of its value and the value of the transpose element.
Note that this function actually modifies its argument.
double DerivativeApproximation::SecondDerivative< 1 >::derivative_norm | ( | const Derivative & | d | ) | [inline] |
double DerivativeApproximation::SecondDerivative< 2 >::derivative_norm | ( | const Derivative & | d | ) | [inline] |
double DerivativeApproximation::SecondDerivative< 3 >::derivative_norm | ( | const Derivative & | d | ) | [inline] |
const UpdateFlags DerivativeApproximation::SecondDerivative< dim >::update_flags [static] |
Declare which data fields have to be updated for the function get_projected_derivative
to work.