KASKADE 7 development version
|
Dirichlet boundary conditions by Nitsche's method. More...
#include <boundaryConditions.hh>
Dirichlet boundary conditions by Nitsche's method.
For the Dirichlet boundary condition \( u|_{\partial \Omega} = u_D \), this defines the term
\[ \frac{\gamma}{2} h_F^{-1} |u-u_D|^2 - u^T u_x \kappa n\]
(and its derivatives), which can be added to the variational functional. The scaling by the face diameter \( h_F \) is supposed to provide nearly optimal convergence rates for linear finite elements.
This can lead to indefinite stiffness matrices if \( \gamma \) is not chosen sufficiently large, but does not cause ill-conditioning on mesh refinement, in contrast to DirichletPenaltyBoundary.
This follows R. Stenberg: On some techniques for approximating boundary conditions in the finite element method, J Comp. Appl. Math. 63:139-148, 1995.
GridView | the grid view on which the problem is defined (used for ctype and face type) |
components | the number of vectorial components of the FE function |
Scalar | the type of scalar entries of the FE function |
Definition at line 172 of file boundaryConditions.hh.
Public Types | |
using | Vector = Dune::FieldVector< Scalar, components > |
Public Member Functions | |
void | moveTo (typename GridView::IntersectionIterator const &fi) |
Moves the boundary condition to a new face. More... | |
void | setBoundaryData (Dune::FieldVector< typename GridView::ctype, dim-1 > const &xi, Scalar gamma_, Vector const &u, Vector const &ud, Dune::FieldMatrix< Scalar, components, dim > ux_, Dune::FieldMatrix< Scalar, dim, dim > const &kappa) |
Defines the data for the boundary condition. More... | |
Scalar | d0 () const |
Vector | d1 (VariationalArg< Scalar, dim > const &arg) const |
Dune::FieldMatrix< Scalar, components, components > | d2 (VariationalArg< Scalar, dim > const &argTest, VariationalArg< Scalar, dim > const &argAnsatz) const |
using Kaskade::DirichletNitscheBoundary< GridView, components, ScalarType >::Vector = Dune::FieldVector<Scalar,components> |
Definition at line 180 of file boundaryConditions.hh.
|
inline |
Definition at line 220 of file boundaryConditions.hh.
|
inline |
Definition at line 222 of file boundaryConditions.hh.
|
inline |
Definition at line 228 of file boundaryConditions.hh.
|
inline |
Moves the boundary condition to a new face.
This is called before calling d0,d1,d2 on a new face, and here the weight \( h_F^{-1} \) is computed once.
Definition at line 188 of file boundaryConditions.hh.
|
inline |
Defines the data for the boundary condition.
xi | The local position \( \xi \) within the face. |
gamma | The penalty factor. |
u | The current boundary value around which to linearize. |
ud | The Dirichlet value. |
ux | The current solution's derivative at the boundary. |
kappa | The diffusivity tensor. |
Definition at line 209 of file boundaryConditions.hh.