OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
residual_shop_bdry.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 // $Id: residual_shop_bdry.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_bdry_h
14 #define __appshop__residual_shop_bdry_h
15 
16 #include <appframe/app_shop.h>
17 
23 namespace AppShop
24 {
25  namespace Residual
26  {
27  namespace Boundary
28  {
32  template <int dim>
33  void advection (
34  Vector<double>& result,
35  const std::vector<double>& input,
36  const std::vector<Vector<double> >& data,
37  unsigned int data_index,
38  const FEFaceValuesBase<dim>& fe,
39  const std::vector<Point<dim> >& velocity,
40  double factor = 1.);
41 
45  template <int dim>
46  void advection (
47  Vector<double>& result,
48  const std::vector<double>& input,
49  const std::vector<double>& data,
50  const FEFaceValuesBase<dim>& fe,
51  const VectorSlice<const std::vector<std::vector<double> > >& velocity,
52  double factor = 1.);
53 
63  template <int dim>
64  void advection (
65  Vector<double>& result,
66  const VectorSlice<const std::vector<std::vector<double> > >& input,
67  const VectorSlice<const std::vector<std::vector<double> > >& data,
68  const FEFaceValuesBase<dim>& fe,
69  const VectorSlice<const std::vector<std::vector<double> > >& velocity,
70  double factor = 1.);
78  template <int dim>
79  void u_times_n (
80  Vector<double>& result,
81  const std::vector<double>& input,
82  const FEFaceValuesBase<dim>& fe,
83  const FEFaceValuesBase<dim>& fetest,
84  double factor = 1.);
85 
96  template <int dim>
97  void u_times_n (
98  Vector<double>& result,
99  const VectorSlice<const std::vector<std::vector<double> > >& input,
100  const FEFaceValuesBase<dim>& fe,
101  const FEFaceValuesBase<dim>& fetest,
102  double factor = 1.);
103 
111  template <int dim>
112  void u_times_n_scaled (
113  Vector<double>& result,
114  const std::vector<double>& input,
115  const FEFaceValuesBase<dim>& fe,
116  const FEFaceValuesBase<dim>& fetest,
117  const std::vector<double>& a,
118  bool divide = false);
119 
127  template <int dim>
128  void u_dot_n (
129  Vector<double>& result,
130  const VectorSlice<const std::vector<std::vector<double> > >& input,
131  const FEFaceValuesBase<dim>& fe,
132  const FEFaceValuesBase<dim>& fetest,
133  double factor = 1.);
134 
142  template <int dim>
143  void u_dot_n_scaled (
144  Vector<double>& result,
145  const VectorSlice<const std::vector<std::vector<double> > >& input,
146  const FEFaceValuesBase<dim>& fe,
147  const FEFaceValuesBase<dim>& fetest,
148  const std::vector<double>& a,
149  bool divide = false);
150 
154  template <int dim>
155  void eps (
156  Vector<double>& result,
157  const VectorSlice<const std::vector<std::vector<double> > >& input,
158  const FEFaceValuesBase<dim>& fe,
159  const FEFaceValuesBase<dim>& fetest);
163  template <int dim>
164  void eps_div (
165  Vector<double>& result,
166  const VectorSlice<const std::vector<std::vector<double> > >& input,
167  const FEFaceValuesBase<dim>& fe,
168  const FEFaceValuesBase<dim>& fetest);
169 
177  template <int dim>
178  void jump (
179  Vector<double>& result,
180  const std::vector<double>& input,
181  const FEFaceValuesBase<dim>& fe,
182  const double factor = 1.);
183 
184 
192  template <int dim>
193  void jump_scaled (
194  Vector<double>& result,
195  const std::vector<double>& input,
196  const FEFaceValuesBase<dim>& fe,
197  const std::vector<double>& a,
198  const double factor = 1.,
199  bool divide = false);
207  template <int dim>
208  void jump_scaled (
209  Vector<double>& result,
210  const std::vector<double>& input,
211  const std::vector<Vector<double> >& data,
212  const unsigned int data_index,
213  const FEFaceValuesBase<dim>& fe,
214  const std::vector<double>& factor,
215  const double factor2 = 1.,
216  bool divide = false);
217 
222  template <int dim>
223  void nitsche (
224  Vector<double>& result,
225  const std::vector<double>& u,
226  const std::vector<Tensor<1,dim> >& Du,
227  const std::vector<double>& data,
228  const FEFaceValuesBase<dim>& fe,
229  double penalty,
230  double factor = 1.);
231 
237  template <int dim>
238  void nitsche (
239  Vector<double>& result,
240  const VectorSlice<const std::vector<std::vector<double> > >& u,
241  const VectorSlice<const std::vector<std::vector<Tensor<1,dim> > > >& Du,
242  const VectorSlice<const std::vector<std::vector<double> > >& data,
243  const FEFaceValuesBase<dim>& fe,
244  double penalty,
245  double factor = 1.);
246 
251  template <int dim>
252  void nitsche (
253  Vector<double>& result,
254  const std::vector<double>& u,
255  const std::vector<Tensor<1,dim> >& Du,
256  const std::vector<Vector<double> >& data,
257  const unsigned int data_index,
258  const FEFaceValuesBase<dim>& fe,
259  double penalty,
260  double factor = 1.);
261 
266  template <int dim>
267  void nitsche_scaled (
268  Vector<double>& result,
269  const std::vector<double>& u,
270  const std::vector<Tensor<1,dim> >& Du,
271  const std::vector<Vector<double> >& data,
272  const unsigned int data_index,
273  const FEFaceValuesBase<dim>& fe,
274  const std::vector<double>& factor,
275  double penalty);
276 
281  template <int dim>
282  void nitsche_scaled (
283  Vector<double>& result,
284  const VectorSlice<const std::vector<std::vector<double> > >& u,
285  const VectorSlice<const std::vector<std::vector<Tensor<1,dim> > > >& Du,
286  const std::vector<Vector<double> >& data,
287  const unsigned int data_index,
288  const FEFaceValuesBase<dim>& fe,
289  const std::vector<double>& factor,
290  double penalty);
291  }
292  }
293 }
294 
295 #endif