From: Timo Heister Date: Thu, 24 Jun 2021 21:54:08 +0000 (-0400) Subject: FEIV example X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fe94f41b9b62148ae023649cffbfeb9cf51a0b81;p=release-papers.git FEIV example --- diff --git a/9.3/paper.tex b/9.3/paper.tex index 5e09776..b6ecfcd 100644 --- a/9.3/paper.tex +++ b/9.3/paper.tex @@ -1001,6 +1001,26 @@ functions and solutions from two adjacent cells. The \texttt{FEInterfaceValues} class, first introduced in \dealii{} 9.2, is designed to provide the necessary interface. +\newcommand{\jump}[1]{\left[\!\left[ #1 \right]\!\right]} +\newcommand{\average}[1]{\left\{\!\left\{ #1 \right\}\!\right\}} +For example, the interface terms of the SIPG formulation for a Laplace problem +\[ +\sum_{F} - + \left< \jump{v_h}, \average{ \nabla u_h} \cdot \mathbf n \right>_F + -\left<\average{ \nabla v_h }\cdot \mathbf n,\jump{u_h}\right>_F + +\left<\jump{v_h}, \sigma \jump{u_h} \right>_F +\] +with face jump $\jump{\cdot}$ and average $\average{\cdot}$ +can be implemented as (also see \texttt{step-74}): +\begin{c++} + cell_matrix(i, j) += + (- fe_iv.jump(i, q) * (fe_iv.average_gradient(j, q) * n) + - (fe_iv.average_gradient(i, q) * n) * fe_iv.jump(j, q) + + penalty * fe_iv.jump(i, q) * fe_iv.jump(j, q) + ) * JxW[q]; +\end{c++} + + Internally, this class provides an abstraction for two \texttt{FEFaceValues} objects (or \texttt{FESubfaceValues} when using adaptive refinement). The class introduces new interface degrees of