OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
residual_shop_face.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 // $Id: residual_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__residual_shop_face_h
14 #define __appshop__residual_shop_face_h
15 
16 #include <appframe/app_shop.h>
17 
23 namespace AppShop
24 {
25  namespace Residual
26  {
27  namespace Face
28  {
32  template <int dim>
33  void advection(
34  Vector<double>& int_result,
35  Vector<double>& ext_result,
36  const std::vector<double>& int_input,
37  const std::vector<double>& ext_input,
38  const FEFaceValuesBase<dim>& int_fe,
39  const FEFaceValuesBase<dim>& ext_fe,
40  const std::vector<Point<dim> >& velocity,
41  double factor = 1.);
42 
52  template <int dim>
53  void advection (
54  Vector<double>& int_result,
55  Vector<double>& ext_result,
56  const std::vector<double>& int_input,
57  const std::vector<double>& ext_input,
58  const FEFaceValuesBase<dim>& int_fe,
59  const FEFaceValuesBase<dim>& ext_fe,
60  const VectorSlice<const std::vector<std::vector<double> > >& velocity,
61  double factor = 1.);
62 
72  template <int dim>
73  void advection (
74  Vector<double>& int_result,
75  Vector<double>& ext_result,
76  const VectorSlice<const std::vector<std::vector<double> > >& int_input,
77  const VectorSlice<const std::vector<std::vector<double> > >& ext_input,
78  const FEFaceValuesBase<dim>& int_fe,
79  const FEFaceValuesBase<dim>& ext_fe,
80  const VectorSlice<const std::vector<std::vector<double> > >& velocity,
81  double factor = 1.);
82 
86  template <int dim>
87  void u_ni (
88  Vector<double>& int_result,
89  Vector<double>& ext_result,
90  const std::vector<double>& int_input,
91  const std::vector<double>& ext_input,
92  unsigned int direction,
93  const FEFaceValuesBase<dim>& int_fe,
94  const FEFaceValuesBase<dim>& ext_fe,
95  const FEFaceValuesBase<dim>& int_fetest,
96  const FEFaceValuesBase<dim>& ext_fetest,
97  double factor = 1.);
105  template <int dim>
106  void u_times_n (
107  Vector<double>& int_result,
108  Vector<double>& ext_result,
109  const std::vector<double>& int_input,
110  const std::vector<double>& ext_input,
111  const FEFaceValuesBase<dim>& int_fe,
112  const FEFaceValuesBase<dim>& ext_fe,
113  const FEFaceValuesBase<dim>& int_fetest,
114  const FEFaceValuesBase<dim>& ext_fetest,
115  double int_factor = 1.,
116  double ext_factor = 0);
123  template <int dim>
124  void u_dot_n (
125  Vector<double>& int_result,
126  Vector<double>& ext_result,
127  const VectorSlice<const std::vector<std::vector<double> > >& int_input,
128  const VectorSlice<const std::vector<std::vector<double> > >& ext_input,
129  const FEFaceValuesBase<dim>& int_fe,
130  const FEFaceValuesBase<dim>& ext_fe,
131  const FEFaceValuesBase<dim>& int_fetest,
132  const FEFaceValuesBase<dim>& ext_fetest,
133  double factor = 1.);
137  template <int dim>
138  void u_dot_n_scaled (
139  Vector<double>& int_result,
140  Vector<double>& ext_result,
141  const VectorSlice<const std::vector<std::vector<double> > >& int_input_value,
142  const VectorSlice<const std::vector<std::vector<double> > >& ext_input_value,
143  const FEFaceValuesBase<dim>& int_fetest,
144  const FEFaceValuesBase<dim>& ext_fetest,
145  const FEFaceValuesBase<dim>& int_fe,
146  const FEFaceValuesBase<dim>& ext_fe,
147  const std::vector<double>& int_factor,
148  const std::vector<double>& ext_factor);
155  template <int dim>
156  void div_super (
157  Vector<double>& int_result,
158  Vector<double>& ext_result,
159  const VectorSlice<const std::vector<std::vector<double> > >& int_input,
160  const VectorSlice<const std::vector<std::vector<double> > >& ext_input,
161  const FEFaceValuesBase<dim>& int_fe,
162  const FEFaceValuesBase<dim>& ext_fe,
163  const FEFaceValuesBase<dim>& int_fetest,
164  const FEFaceValuesBase<dim>& ext_fetest);
171  template <int dim>
172  void grad_super (
173  Vector<double>& int_result,
174  Vector<double>& ext_result,
175  const std::vector<double>& int_input,
176  const std::vector<double>& ext_input,
177  const FEFaceValuesBase<dim>& int_fe,
178  const FEFaceValuesBase<dim>& ext_fe,
179  const FEFaceValuesBase<dim>& int_fetest,
180  const FEFaceValuesBase<dim>& ext_fetest);
181 
185  template <int dim>
186  void jump (
187  Vector<double>& int_result,
188  Vector<double>& ext_result,
189  const std::vector<double>& int_input,
190  const std::vector<double>& ext_input,
191  const FEFaceValuesBase<dim>& int_fe,
192  const FEFaceValuesBase<dim>& ext_fe,
193  const double factor2);
194 
198  template <int dim>
199  void jump_scaled (
200  Vector<double>& int_result,
201  Vector<double>& ext_result,
202  const std::vector<double>& int_input,
203  const std::vector<double>& ext_input,
204  const FEFaceValuesBase<dim>& int_fe,
205  const FEFaceValuesBase<dim>& ext_fe,
206  const std::vector<double>& factor,
207  const double factor2,
208  bool divide = false);
209 
215  template <int dim>
216  void ip (
217  Vector<double>& int_result,
218  Vector<double>& ext_result,
219  const std::vector<double>& int_u,
220  const std::vector<Tensor<1,dim> >& int_Du,
221  const std::vector<double>& ext_u,
222  const std::vector<Tensor<1,dim> >& ext_Du,
223  const FEFaceValuesBase<dim>& int_fe,
224  const FEFaceValuesBase<dim>& ext_fe,
225  double penalty,
226  double int_factor = 1.,
227  double ext_factor = -1.);
233  template <int dim>
234  void ip (
235  Vector<double>& int_result,
236  Vector<double>& ext_result,
237  const VectorSlice<const std::vector<std::vector<double> > >& int_u,
238  const VectorSlice<const std::vector<std::vector<Tensor<1,dim> > > >& int_Du,
239  const VectorSlice<const std::vector<std::vector<double> > >& ext_u,
240  const VectorSlice<const std::vector<std::vector<Tensor<1,dim> > > >& ext_Du,
241  const FEFaceValuesBase<dim>& int_fe,
242  const FEFaceValuesBase<dim>& ext_fe,
243  double penalty,
244  double int_factor = 1.,
245  double ext_factor = -1.);
251  template <int dim>
252  void ip_scaled (
253  Vector<double>& int_result,
254  Vector<double>& ext_result,
255  const std::vector<double>& int_u,
256  const std::vector<Tensor<1,dim> >& int_Du,
257  const std::vector<double>& ext_u,
258  const std::vector<Tensor<1,dim> >& ext_Du,
259  const FEFaceValuesBase<dim>& int_fe,
260  const FEFaceValuesBase<dim>& ext_fe,
261  const std::vector<double>& factor,
262  double penalty);
263 
269  template <int dim>
270  void ip_scaled (
271  Vector<double>& int_result,
272  Vector<double>& ext_result,
273  const VectorSlice<const std::vector<std::vector<double> > >& int_u,
274  const VectorSlice<const std::vector<std::vector<Tensor<1,dim> > > >& int_Du,
275  const VectorSlice<const std::vector<std::vector<double> > >& ext_u,
276  const VectorSlice<const std::vector<std::vector<Tensor<1,dim> > > >& ext_Du,
277  const FEFaceValuesBase<dim>& int_fe,
278  const FEFaceValuesBase<dim>& ext_fe,
279  const std::vector<double>& factor,
280  double penalty);
281 
282 
286  template <int dim>
287  void eps (
288  Vector<double>& int_result,
289  Vector<double>& ext_result,
290  const VectorSlice<const std::vector<std::vector<double> > >& int_input,
291  const VectorSlice<const std::vector<std::vector<double> > >& ext_input,
292  const FEFaceValuesBase<dim>& int_fe,
293  const FEFaceValuesBase<dim>& ext_fe,
294  const FEFaceValuesBase<dim>& int_fetest,
295  const FEFaceValuesBase<dim>& ext_fetest);
296 
300  template <int dim>
301  void eps_div (
302  Vector<double>& int_result,
303  Vector<double>& ext_result,
304  const VectorSlice<const std::vector<std::vector<double> > >& int_input,
305  const VectorSlice<const std::vector<std::vector<double> > >& ext_input,
306  const FEFaceValuesBase<dim>& int_fe,
307  const FEFaceValuesBase<dim>& ext_fe,
308  const FEFaceValuesBase<dim>& int_fetest,
309  const FEFaceValuesBase<dim>& ext_fetest);
310  }
311  }
312 }
313 
314 #endif