deal.II version GIT relicensing-2167-g9622207b8f 2024-11-21 12:40:00+00:00
\(\newcommand{\dealvcentcolon}{\mathrel{\mathop{:}}}\) \(\newcommand{\dealcoloneq}{\dealvcentcolon\mathrel{\mkern-1.2mu}=}\) \(\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]}\) \(\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}}\)
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | List of all members
DerivativeApproximation::internal::SecondDerivative< dim > Class Template Reference

Public Types

using Derivative = Tensor< 2, dim >
 
using ProjectedDerivative = Tensor< 1, dim >
 

Public Member Functions

double derivative_norm (const Derivative &d)
 
double derivative_norm (const Derivative &d)
 
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 = update_gradients
 

Detailed Description

template<int dim>
class DerivativeApproximation::internal::SecondDerivative< dim >

The following class is used to describe the data needed to compute the finite difference approximation to the second derivatives on a cell. See the general documentation of this class for more information on implementational details.

Definition at line 189 of file derivative_approximation.cc.

Member Typedef Documentation

◆ Derivative

template<int dim>
using DerivativeApproximation::internal::SecondDerivative< dim >::Derivative = Tensor<2, dim>

Declare the data type which holds the derivative described by this class.

Definition at line 202 of file derivative_approximation.cc.

◆ ProjectedDerivative

template<int dim>
using DerivativeApproximation::internal::SecondDerivative< dim >::ProjectedDerivative = Tensor<1, dim>

Likewise declare the data type that holds the derivative projected to a certain directions.

Definition at line 208 of file derivative_approximation.cc.

Member Function Documentation

◆ get_projected_derivative()

template<int dim>
template<class InputVector , int spacedim>
SecondDerivative< dim >::ProjectedDerivative DerivativeApproximation::internal::SecondDerivative< dim >::get_projected_derivative ( const FEValues< dim, spacedim > &  fe_values,
const InputVector &  solution,
const unsigned int  component 
)
inlinestatic

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).

Definition at line 252 of file derivative_approximation.cc.

◆ derivative_norm() [1/4]

template<int dim>
double DerivativeApproximation::internal::SecondDerivative< dim >::derivative_norm ( const Derivative d)
inlinestatic

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 \(l_2\) norm of vectors. It is also the largest value of the curvature of the solution.

Definition at line 490 of file derivative_approximation.cc.

◆ symmetrize()

template<int dim>
void DerivativeApproximation::internal::SecondDerivative< dim >::symmetrize ( Derivative derivative_tensor)
inlinestatic

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.

Definition at line 513 of file derivative_approximation.cc.

◆ derivative_norm() [2/4]

double DerivativeApproximation::internal::SecondDerivative< 1 >::derivative_norm ( const Derivative d)
inline

Definition at line 281 of file derivative_approximation.cc.

◆ derivative_norm() [3/4]

double DerivativeApproximation::internal::SecondDerivative< 2 >::derivative_norm ( const Derivative d)
inline

Definition at line 290 of file derivative_approximation.cc.

◆ derivative_norm() [4/4]

double DerivativeApproximation::internal::SecondDerivative< 3 >::derivative_norm ( const Derivative d)
inline

Definition at line 313 of file derivative_approximation.cc.

Member Data Documentation

◆ update_flags

template<int dim>
const UpdateFlags DerivativeApproximation::internal::SecondDerivative< dim >::update_flags = update_gradients
static

Declare which data fields have to be updated for the function get_projected_derivative to work.

Definition at line 196 of file derivative_approximation.cc.


The documentation for this class was generated from the following file: