OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
matrix_shop_face.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 // $Id: matrix_shop_face.h 1348 2013-08-16 00:45:07Z secanell $
3 //
4 // Copyright (C) 2006, 2007, 2008, 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_face_h
14 #define __appshop__matrix_shop_face_h
15 
16 #include <appframe/app_shop.h>
17 #include <appframe/matrix_base.h>
18 
23 using namespace AppFrame;
24 
25 namespace AppShop
26 {
27  namespace Matrix
28  {
29  namespace Face
30  {
34  template <int dim>
35  void advection (
36  FullMatrix<double>& Mii,
37  FullMatrix<double>& Mie,
38  FullMatrix<double>& Mei,
39  FullMatrix<double>& Mee,
40  const FEFaceValuesBase<dim>& int_fe,
41  const FEFaceValuesBase<dim>& ext_fe,
42  const VectorSlice<const std::vector<std::vector<double> > >& velocity,
43  double factor = 1.);
44 
48  template <int dim>
49  void advection (
50  FullMatrix<double>& Mii,
51  FullMatrix<double>& Mie,
52  FullMatrix<double>& Mei,
53  FullMatrix<double>& Mee,
54  const FEFaceValuesBase<dim>& int_fe,
55  const FEFaceValuesBase<dim>& ext_fe,
56  const std::vector<Point<dim> >& velocity);
57 
65  template <int dim>
66  void u_times_n (
67  std::vector<MatrixBlock<FullMatrix<double> > >& intint,
68  std::vector<MatrixBlock<FullMatrix<double> > >& intext,
69  std::vector<MatrixBlock<FullMatrix<double> > >& extint,
70  std::vector<MatrixBlock<FullMatrix<double> > >& extext,
71  const std::vector<unsigned int>& indices,
72  const FEFaceValuesBase<dim>& int_fe,
73  const FEFaceValuesBase<dim>& ext_fe,
74  const FEFaceValuesBase<dim>& int_fetest,
75  const FEFaceValuesBase<dim>& ext_fetest,
76  double factor = 1.);
77 
81  template <int dim>
82  void u_times_n_scaled (
83  FullMatrix<double>& intint,
84  FullMatrix<double>& intext,
85  FullMatrix<double>& extint,
86  FullMatrix<double>& extext,
87  const FEFaceValuesBase<dim>& int_fetest,
88  const FEFaceValuesBase<dim>& int_fe,
89  const FEFaceValuesBase<dim>& ext_fetest,
90  const FEFaceValuesBase<dim>& ext_fe,
91  const std::vector<double>& int_factor,
92  const std::vector<double>& ext_factor);
93 
97  template <int dim>
98  void div_super (
99  FullMatrix<double>& Mii,
100  FullMatrix<double>& Mie,
101  FullMatrix<double>& Mei,
102  FullMatrix<double>& Mee,
103  const FEFaceValuesBase<dim>& int_fe,
104  const FEFaceValuesBase<dim>& int_fetest,
105  const FEFaceValuesBase<dim>& ext_fe,
106  const FEFaceValuesBase<dim>& ext_fetest);
110  template <int dim>
111  void u_ni (
112  FullMatrix<double>& Mii,
113  FullMatrix<double>& Mie,
114  FullMatrix<double>& Mei,
115  FullMatrix<double>& Mee,
116  const FEFaceValuesBase<dim>& int_fe,
117  const FEFaceValuesBase<dim>& ext_fe,
118  const FEFaceValuesBase<dim>& int_fetest,
119  const FEFaceValuesBase<dim>& ext_fetest,
120  unsigned int i);
121 
125  template <int dim>
126  void u_ni_scaled (
127  FullMatrix<double>& intint,
128  FullMatrix<double>& intext,
129  FullMatrix<double>& extint,
130  FullMatrix<double>& extext,
131  const FEFaceValuesBase<dim>& int_fe,
132  const FEFaceValuesBase<dim>& ext_fe,
133  const FEFaceValuesBase<dim>& int_fetest,
134  const FEFaceValuesBase<dim>& ext_fetest,
135  unsigned int d,
136  const std::vector<double>& int_factor,
137  const std::vector<double>& ext_factor);
138 
142  template <int dim>
143  void jump (
144  FullMatrix<double>& Mii,
145  FullMatrix<double>& Mie,
146  FullMatrix<double>& Mei,
147  FullMatrix<double>& Mee,
148  const FEFaceValuesBase<dim>& int_fe,
149  const FEFaceValuesBase<dim>& ext_fe,
150  const double factor2);
154  template <int dim>
155  void jump_scaled (
156  FullMatrix<double>& Mii,
157  FullMatrix<double>& Mie,
158  FullMatrix<double>& Mei,
159  FullMatrix<double>& Mee,
160  const FEFaceValuesBase<dim>& int_fe,
161  const FEFaceValuesBase<dim>& ext_fe,
162  const std::vector<double>& factor,
163  const double factor2,
164  bool divide = false);
175  template <int dim>
176  void ip (
177  FullMatrix<double>& Mii,
178  FullMatrix<double>& Mie,
179  FullMatrix<double>& Mei,
180  FullMatrix<double>& Mee,
181  const FEFaceValuesBase<dim>& int_fe,
182  const FEFaceValuesBase<dim>& ext_fe,
183  double penalty,
184  double int_factor = 1.,
185  double ext_factor = -1.);
191  template <int dim>
192  void ip_scaled (
193  FullMatrix<double>& Mii,
194  FullMatrix<double>& Mie,
195  FullMatrix<double>& Mei,
196  FullMatrix<double>& Mee,
197  const FEFaceValuesBase<dim>& int_fe,
198  const FEFaceValuesBase<dim>& ext_fe,
199  const std::vector<double>& factor,
200  double penalty);
201 
202  }
203  }
204 }
205 
206 #endif