Proto
Proto_Operator.H
1 #pragma once
2 
3 #include "Proto_BoxData.H"
4 //#include "AMRState.H"
5 
6 namespace Operator {
7 
8  using namespace Proto;
9 
10  /*
11  template<unsigned int C>
12  inline void faceDivergence(PatchState<C, 0>& a_div,
13  const PatchState<0,C>& a_flux,
14  double a_dx);
15  */
17 
20  template<class T, unsigned int C, unsigned char D, unsigned char E>
21  inline BoxData<T,C,D,E> convolve(
22  const BoxData<T,C,D,E>& a_ctr,
23  const BoxData<T,C,D,E>& a_2nd);
24 
26 
29  template<class T, unsigned int C, unsigned char D, unsigned char E>
30  inline void convolve(
31  BoxData<T,C,D,E>& a_avg,
32  const BoxData<T,C,D,E>& a_ctr,
33  const BoxData<T,C,D,E>& a_2nd);
34 
36 
39  template<class T, unsigned int C, unsigned char D, unsigned char E>
40  inline BoxData<T,C,D,E> deconvolve(
41  const BoxData<T,C,D,E>& a_avg,
42  const BoxData<T,C,D,E>& a_2nd);
43 
45 
48  template<class T, unsigned int C, unsigned char D, unsigned char E>
49  inline void deconvolve(
50  BoxData<T,C,D,E>& a_ctr,
51  const BoxData<T,C,D,E>& a_avg,
52  const BoxData<T,C,D,E>& a_2nd);
53 
55 
58  template<class T, unsigned int C, unsigned char D, unsigned char E>
59  inline BoxData<T,C,D,E> convolveFace(
60  const BoxData<T,C,D,E>& a_ctr,
61  const BoxData<T,C,D,E>& a_2nd,
62  int a_dir);
63 
65 
68  template<class T, unsigned int C, unsigned char D, unsigned char E>
69  inline void convolveFace(
70  BoxData<T,C,D,E>& a_avg,
71  const BoxData<T,C,D,E>& a_ctr,
72  const BoxData<T,C,D,E>& a_2nd,
73  int a_dir);
74 
76 
79  template<class T, unsigned int C, unsigned char D, unsigned char E>
80  inline BoxData<T,C,D,E> deconvolveFace(
81  const BoxData<T,C,D,E>& a_avg,
82  const BoxData<T,C,D,E>& a_2nd,
83  int a_dir);
84 
86 
89  template<class T, unsigned int C, unsigned char D, unsigned char E>
90  inline void deconvolveFace(
91  BoxData<T,C,D,E>& a_ctr,
92  const BoxData<T,C,D,E>& a_avg,
93  const BoxData<T,C,D,E>& a_2nd,
94  int a_dir);
95 
97 
100  template<class T, unsigned int C, unsigned char D, unsigned char E>
101  inline BoxData<T,C,D,E> cellProduct(
102  const BoxData<T,C,D,E>& a_pavg,
103  const BoxData<T,C,D,E>& a_qavg,
104  const BoxData<T,C,D,E>& a_p2nd,
105  const BoxData<T,C,D,E>& a_q2nd);
106 
108 
111  template<class T, unsigned int C, unsigned char D, unsigned char E>
112  inline void cellProduct(
113  BoxData<T,C,D,E>& a_product,
114  const BoxData<T,C,D,E>& a_pavg,
115  const BoxData<T,C,D,E>& a_qavg,
116  const BoxData<T,C,D,E>& a_p2nd,
117  const BoxData<T,C,D,E>& a_q2nd);
118 
120 
123  template<class T, unsigned int C, unsigned char D, unsigned char E>
124  inline BoxData<T,C,D,E> faceProduct(
125  const BoxData<T,C,D,E>& a_pavg,
126  const BoxData<T,C,D,E>& a_qavg,
127  const BoxData<T,C,D,E>& a_p2nd,
128  const BoxData<T,C,D,E>& a_q2nd,
129  int a_dir);
130 
132 
135  template<class T, unsigned int C, unsigned char D, unsigned char E>
136  inline void faceProduct(BoxData<T,C,D,E>& a_dest,
137  const BoxData<T,C,D,E>& a_pavg,
138  const BoxData<T,C,D,E>& a_qavg,
139  const BoxData<T,C,D,E>& a_p2nd,
140  const BoxData<T,C,D,E>& a_q2nd,
141  int a_dir);
142 
144 
147  template<class T, unsigned int C, unsigned char D, unsigned char E>
148  inline BoxData<T,C,D,E> cellQuotient(
149  const BoxData<T,C,D,E>& a_pavg,
150  const BoxData<T,C,D,E>& a_qavg,
151  const BoxData<T,C,D,E>& a_p2nd,
152  const BoxData<T,C,D,E>& a_q2nd);
153 
155 
158  template<class T, unsigned int C, unsigned char D, unsigned char E>
159  inline void cellQuotient(
160  BoxData<T,C,D,E>& a_quotient,
161  const BoxData<T,C,D,E>& a_pavg,
162  const BoxData<T,C,D,E>& a_qavg,
163  const BoxData<T,C,D,E>& a_p2nd,
164  const BoxData<T,C,D,E>& a_q2nd);
165 
167 
170  template<class T, unsigned int C, unsigned char D, unsigned char E>
171  inline BoxData<T,C,D,E> faceQuotient(
172  const BoxData<T,C,D,E>& a_pavg,
173  const BoxData<T,C,D,E>& a_qavg,
174  const BoxData<T,C,D,E>& a_p2nd,
175  const BoxData<T,C,D,E>& a_q2nd,
176  int a_dir);
177 
179 
182  template<class T, unsigned int C, unsigned char D, unsigned char E>
183  inline void faceQuotient(
184  BoxData<T,C,D,E>& a_quotient,
185  const BoxData<T,C,D,E>& a_pavg,
186  const BoxData<T,C,D,E>& a_qavg,
187  const BoxData<T,C,D,E>& a_p2nd,
188  const BoxData<T,C,D,E>& a_q2nd,
189  int a_dir);
190 
192  template<class T, unsigned int C, unsigned char D, unsigned char E>
193  inline BoxData<T,C,D,E> cellToFace(
194  const BoxData<T,C,D,E>& a_cell,
195  int a_dir);
196 
198  template<class T, unsigned int C, unsigned char D, unsigned char E>
199  inline void cellToFace(
200  BoxData<T,C,D,E>& a_face,
201  const BoxData<T,C,D,E>& a_cell,
202  int a_dir);
203 
205  template<class T, unsigned int C, unsigned char D, unsigned char E>
206  inline BoxData<T,C,D,E> diffCellToFace(
207  const BoxData<T,C,D,E>& a_data,
208  int a_dir);
209 
211  template<class T, unsigned int C, unsigned char D, unsigned char E>
212  inline void diffCellToFace(
213  BoxData<T,C,D,E>& a_deriv,
214  const BoxData<T,C,D,E>& a_data,
215  int a_dir);
216 }
217 #include "implem/Proto_OperatorI.H"
Definition: Proto_Operator.H:6
Multidimensional Rectangular Array.
Definition: Proto_BoxData.H:458
Definition: Proto_Box.H:11