deal.II version GIT relicensing-2165-gc91f007519 2024-11-20 01: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
Functions
LocalIntegrators::GradDiv Namespace Reference

Functions

template<int dim>
void cell_matrix (FullMatrix< double > &M, const FEValuesBase< dim > &fe, double factor=1.)
 
template<int dim, typename number >
void cell_residual (Vector< number > &result, const FEValuesBase< dim > &fetest, const ArrayView< const std::vector< Tensor< 1, dim > > > &input, const double factor=1.)
 
template<int dim>
void nitsche_matrix (FullMatrix< double > &M, const FEValuesBase< dim > &fe, double penalty, double factor=1.)
 
template<int dim>
void nitsche_residual (Vector< double > &result, const FEValuesBase< dim > &fe, const ArrayView< const std::vector< double > > &input, const ArrayView< const std::vector< Tensor< 1, dim > > > &Dinput, const ArrayView< const std::vector< double > > &data, double penalty, double factor=1.)
 
template<int dim>
void ip_matrix (FullMatrix< double > &M11, FullMatrix< double > &M12, FullMatrix< double > &M21, FullMatrix< double > &M22, const FEValuesBase< dim > &fe1, const FEValuesBase< dim > &fe2, double penalty, double factor1=1., double factor2=-1.)
 
template<int dim>
void ip_residual (Vector< double > &result1, Vector< double > &result2, const FEValuesBase< dim > &fe1, const FEValuesBase< dim > &fe2, const ArrayView< const std::vector< double > > &input1, const ArrayView< const std::vector< Tensor< 1, dim > > > &Dinput1, const ArrayView< const std::vector< double > > &input2, const ArrayView< const std::vector< Tensor< 1, dim > > > &Dinput2, double pen, double int_factor=1., double ext_factor=-1.)
 

Detailed Description

Local integrators related to the grad-div operator and its boundary traces

Function Documentation

◆ cell_matrix()

template<int dim>
void LocalIntegrators::GradDiv::cell_matrix ( FullMatrix< double > &  M,
const FEValuesBase< dim > &  fe,
double  factor = 1. 
)

The weak form of the grad-div operator penalizing volume changes

\[ \int_Z \nabla\cdot u \nabla \cdot v \,dx \]

Definition at line 51 of file grad_div.h.

◆ cell_residual()

template<int dim, typename number >
void LocalIntegrators::GradDiv::cell_residual ( Vector< number > &  result,
const FEValuesBase< dim > &  fetest,
const ArrayView< const std::vector< Tensor< 1, dim > > > &  input,
const double  factor = 1. 
)

The weak form of the grad-div residual

\[ \int_Z \nabla\cdot u \nabla \cdot v \,dx \]

Definition at line 85 of file grad_div.h.

◆ nitsche_matrix()

template<int dim>
void LocalIntegrators::GradDiv::nitsche_matrix ( FullMatrix< double > &  M,
const FEValuesBase< dim > &  fe,
double  penalty,
double  factor = 1. 
)
inline

The matrix for the weak boundary condition of Nitsche type for linear elasticity:

\[ \int_F \Bigl(\gamma (u \cdot n)(v \cdot n) - \nabla\cdot u v\cdot n - u \cdot n \nabla \cdot v \Bigr)\;ds. \]

Definition at line 121 of file grad_div.h.

◆ nitsche_residual()

template<int dim>
void LocalIntegrators::GradDiv::nitsche_residual ( Vector< double > &  result,
const FEValuesBase< dim > &  fe,
const ArrayView< const std::vector< double > > &  input,
const ArrayView< const std::vector< Tensor< 1, dim > > > &  Dinput,
const ArrayView< const std::vector< double > > &  data,
double  penalty,
double  factor = 1. 
)

Weak boundary condition for the Laplace operator by Nitsche, vector valued version, namely on the face F the vector

\[ \int_F \Bigl(\gamma (\mathbf u \cdot \mathbf n- \mathbf g \cdot \mathbf n) (\mathbf v \cdot \mathbf n) - \nabla \cdot \mathbf u (\mathbf v \cdot \mathbf n) - (\mathbf u-\mathbf g) \cdot \mathbf n \nabla \cdot v\Bigr)\;ds. \]

Here, u is the finite element function whose values and gradient are given in the arguments input and Dinput, respectively. g is the inhomogeneous boundary value in the argument data. \(\gamma\) is the usual penalty parameter.

Definition at line 173 of file grad_div.h.

◆ ip_matrix()

template<int dim>
void LocalIntegrators::GradDiv::ip_matrix ( FullMatrix< double > &  M11,
FullMatrix< double > &  M12,
FullMatrix< double > &  M21,
FullMatrix< double > &  M22,
const FEValuesBase< dim > &  fe1,
const FEValuesBase< dim > &  fe2,
double  penalty,
double  factor1 = 1.,
double  factor2 = -1. 
)

The interior penalty flux for the grad-div operator. See ip_residual() for details.

Definition at line 220 of file grad_div.h.

◆ ip_residual()

template<int dim>
void LocalIntegrators::GradDiv::ip_residual ( Vector< double > &  result1,
Vector< double > &  result2,
const FEValuesBase< dim > &  fe1,
const FEValuesBase< dim > &  fe2,
const ArrayView< const std::vector< double > > &  input1,
const ArrayView< const std::vector< Tensor< 1, dim > > > &  Dinput1,
const ArrayView< const std::vector< double > > &  input2,
const ArrayView< const std::vector< Tensor< 1, dim > > > &  Dinput2,
double  pen,
double  int_factor = 1.,
double  ext_factor = -1. 
)

Grad-div residual term for the symmetric interior penalty method:

\[ \int_F \Bigl( \gamma [\mathbf u \cdot\mathbf n] \cdot[\mathbf v \cdot \mathbf n] - \{\nabla \cdot \mathbf u\}[\mathbf v\cdot \mathbf n] - [\mathbf u\times \mathbf n]\{\nabla\cdot \mathbf v\} \Bigr) \; ds. \]

See for instance Hansbo and Larson, 2002

Definition at line 300 of file grad_div.h.