]> https://gitweb.dealii.org/ - dealii.git/commitdiff
be a bit more explicit 3735/head
authorGuido Kanschat <dr.guido.kanschat@gmail.com>
Mon, 9 Jan 2017 06:15:35 +0000 (07:15 +0100)
committerGuido Kanschat <dr.guido.kanschat@gmail.com>
Mon, 9 Jan 2017 18:35:11 +0000 (19:35 +0100)
doc/news/changes/minor/20170109GuidoKanschat [new file with mode: 0644]
include/deal.II/integrators/laplace.h
tests/integrators/laplacian_02.cc

diff --git a/doc/news/changes/minor/20170109GuidoKanschat b/doc/news/changes/minor/20170109GuidoKanschat
new file mode 100644 (file)
index 0000000..d32b920
--- /dev/null
@@ -0,0 +1,6 @@
+New: LocalIntegrators::Laplace::ip_tangential_matrix() and
+LocalIntegrators::Laplace::nitsche_tangential_matrix() implement
+interior penalty and Nitsche boundary conditions for vector valued
+Poisson problems.
+<br>
+(Guido Kanschat, 2017/01/09)
index e7a156eac1f2784f48bef1ce337fddd30a895b32..8c9494689fce06fc1b70214f0dab39d32769573b 100644 (file)
@@ -1,6 +1,6 @@
 // ---------------------------------------------------------------------
 //
-// Copyright (C) 2010 - 2015 by the deal.II authors
+// Copyright (C) 2010 - 2017 by the deal.II authors
 //
 // This file is part of the deal.II library.
 //
@@ -232,12 +232,12 @@ namespace LocalIntegrators
 
                 for (unsigned int d=0; d<dim; ++d)
                   {
-                    const double v = fe.shape_value_component(i,k,d)-vdotn*n[d];
-                    const double dnv = n * fe.shape_grad_component(i,k,d)-ngradvn*n[d];
-                    const double u = fe.shape_value_component(j,k,d)-udotn*n[d];
-                    const double dnu = n * fe.shape_grad_component(j,k,d)-ngradun*n[d];
+                    const double v_t = fe.shape_value_component(i,k,d)-vdotn*n[d];
+                    const double dnv_t = n * fe.shape_grad_component(i,k,d)-ngradvn*n[d];
+                    const double u_t = fe.shape_value_component(j,k,d)-udotn*n[d];
+                    const double dnu_t = n * fe.shape_grad_component(j,k,d)-ngradun*n[d];
 
-                    M(i,j) += dx *(2.*penalty*u*v-dnu*v-dnv*u);
+                    M(i,j) += dx *(2.*penalty*u_t*v_t-dnu_t*v_t-dnv_t*u_t);
                   }
               }
         }
@@ -426,7 +426,7 @@ namespace LocalIntegrators
      * @warning This function is still under development!
      *
      * @author Bärbel Janssen, Guido Kanschat
-     * @date 2013
+     * @date 2013, 2017
      */
     template <int dim>
     void ip_tangential_matrix (
@@ -462,6 +462,9 @@ namespace LocalIntegrators
           const Tensor<1,dim> n = fe1.normal_vector(k);
           for (unsigned int i=0; i<n_dofs; ++i)
             {
+              // We compute the tangential component by subtracting
+              // the normal component from the total. Thus, compute
+              // the normal component first
               for (unsigned int j=0; j<n_dofs; ++j)
                 {
                   double u1dotn = 0.;
@@ -487,6 +490,9 @@ namespace LocalIntegrators
                       ngradv2n += n*fe2.shape_grad_component(i,k,d)*n[d];
                     }
 
+                  // The following code is equal to ip_matrix() with
+                  // the only exception that all variables introduced
+                  // below denote tangential components.
                   for (unsigned int d=0; d<dim; ++d)
                     {
                       const double vi = fe1.shape_value_component(i,k,d)-v1dotn*n[d];
index cb5820344963e4cd7dc63b90e44f40cc8238d20b..4d9a8782ead8aadd5318a10df916df72875c71a1 100644 (file)
@@ -1,6 +1,6 @@
 // ---------------------------------------------------------------------
 //
-// Copyright (C) 2012 - 2016 by the deal.II authors
+// Copyright (C) 2012 - 2017 by the deal.II authors
 //
 // This file is part of the deal.II library.
 //

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.