OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
matrix_shop_bdry.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 // $Id: matrix_shop_bdry.h 1348 2013-08-16 00:45:07Z secanell $
3 //
4 // Copyright (C) 2006, 2007, 2009 by Guido Kanschat
5 //
6 // This file is subject to QPL and may not be distributed
7 // without copyright and license information. Please refer
8 // to the file deal.II/doc/license.html for the text and
9 // further information on this license.
10 //
11 //---------------------------------------------------------------------------
12 
13 #ifndef __appshop__matrix_shop_bdry_h
14 #define __appshop__matrix_shop_bdry_h
15 
16 #include <appframe/app_shop.h>
17 #include <appframe/matrix_base.h>
18 
23 using namespace AppFrame;
24 
25 
26 namespace AppShop
27 {
28  namespace Matrix
29  {
30  namespace Boundary
31  {
35  template <int dim>
36  void advection(
38  const FEFaceValuesBase<dim>& fe,
39  const std::vector<Point<dim> >& velocity,
40  double factor = 1.);
41 
45  template <int dim>
46  void advection(
48  const FEFaceValuesBase<dim>& fe,
49  const VectorSlice<const std::vector<std::vector<double> > >& velocity,
50  double factor = 1.);
51 
57  template <int dim>
58  void u_dot_n (
59  std::vector<MatrixBlock<FullMatrix<double> > >& M,
60  const std::vector<unsigned int>& indices,
61  const FEFaceValuesBase<dim>& fe,
62  const FEFaceValuesBase<dim>& fetest,
63  double factor = 1.);
64 
70  template <int dim>
71  void u_dot_n_scaled (
72  std::vector<MatrixBlock<FullMatrix<double> > >& M,
73  const std::vector<unsigned int>& indices,
74  const FEFaceValuesBase<dim>& fe,
75  const FEFaceValuesBase<dim>& fetest,
76  const std::vector<double>& factor,
77  bool divide = false);
78 
83  template <int dim>
84  void u_ni (
86  const FEFaceValuesBase<dim>& fe,
87  const FEFaceValuesBase<dim>& fetest,
88  unsigned int i);
89 
97  template <int dim>
98  void jump (
100  const FEFaceValuesBase<dim>& fe,
101  const double a = 1.);
105  template <int dim>
106  void jump_scaled (
108  const FEFaceValuesBase<dim>& fe,
109  const std::vector<double>& factor,
110  const double factor2 = 1.,
111  bool divide = false);
115  template <int dim>
116  void nitsche (
118  const FEFaceValuesBase<dim>& fe,
119  double penalty,
120  double factor = 1.);
121 
125  template <int dim>
126  void nitsche_scaled (
128  const FEFaceValuesBase<dim>& fe,
129  const std::vector<double>& factor,
130  double penalty);
131 
135  template <int dim>
136  void nitsche_div (
138  const FEFaceValuesBase<dim>& fe,
139  double penalty);
140  }
141  }
142 }
143 
144 
145 #endif