|
6 | 6 | #include "Geometry/Dimension.hh" |
7 | 7 |
|
8 | 8 | namespace Spheral { |
| 9 | +""" |
9 | 10 |
|
10 | | -//============================== gradient() ============================== |
11 | | -template |
12 | | -FieldList<Dim< %(ndim)s >, MathTraits<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>::GradientType> |
13 | | -gradient<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>(const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& fieldList, |
14 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>& position, |
15 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& weight, |
16 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& mass, |
17 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& density, |
18 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::SymTensor>& Hfield, |
19 | | - const TableKernel< Dim< %(ndim)s > >& kernel); |
| 11 | +for Value in ("Scalar", "Vector"): |
| 12 | + text += """ |
20 | 13 | template |
21 | | -FieldList<Dim< %(ndim)s >, MathTraits<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>::GradientType> |
22 | | -gradient<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>(const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>& fieldList, |
23 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>& position, |
24 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& weight, |
25 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& mass, |
26 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& density, |
27 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::SymTensor>& Hfield, |
28 | | - const TableKernel< Dim< %(ndim)s > >& kernel); |
| 14 | +FieldList<%%(Dim)s, MathTraits<%%(Dim)s, %(Value)s>::GradientType> |
| 15 | +gradient<%%(Dim)s, %(Value)s>(const FieldList<%%(Dim)s, %(Value)s>& fieldList, |
| 16 | + const FieldList<%%(Dim)s, %%(Vector)s>& position, |
| 17 | + const FieldList<%%(Dim)s, %%(Scalar)s>& weight, |
| 18 | + const FieldList<%%(Dim)s, %%(Scalar)s>& mass, |
| 19 | + const FieldList<%%(Dim)s, %%(Scalar)s>& density, |
| 20 | + const FieldList<%%(Dim)s, %%(SymTensor)s>& Hfield, |
| 21 | + const TableKernel< %%(Dim)s >& kernel); |
29 | 22 |
|
30 | 23 | template |
31 | | -FieldList<Dim< %(ndim)s >, std::vector<MathTraits<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>::GradientType>> |
32 | | -gradient<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>(const FieldList<Dim< %(ndim)s >, std::vector<Dim< %(ndim)s >::Scalar>>& fieldList, |
33 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>& position, |
34 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& weight, |
35 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& mass, |
36 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& density, |
37 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::SymTensor>& Hfield, |
38 | | - const TableKernel< Dim< %(ndim)s > >& kernel); |
39 | | -template |
40 | | -FieldList<Dim< %(ndim)s >, std::vector<MathTraits<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>::GradientType>> |
41 | | -gradient<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>(const FieldList<Dim< %(ndim)s >, std::vector<Dim< %(ndim)s >::Vector>>& fieldList, |
42 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>& position, |
43 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& weight, |
44 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& mass, |
45 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& density, |
46 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::SymTensor>& Hfield, |
47 | | - const TableKernel< Dim< %(ndim)s > >& kernel); |
| 24 | +FieldList<%%(Dim)s, std::vector<MathTraits<%%(Dim)s, %(Value)s>::GradientType>> |
| 25 | +gradient<%%(Dim)s, %(Value)s>(const FieldList<%%(Dim)s, std::vector<%(Value)s>>& fieldList, |
| 26 | + const FieldList<%%(Dim)s, %%(Vector)s>& position, |
| 27 | + const FieldList<%%(Dim)s, %%(Scalar)s>& weight, |
| 28 | + const FieldList<%%(Dim)s, %%(Scalar)s>& mass, |
| 29 | + const FieldList<%%(Dim)s, %%(Scalar)s>& density, |
| 30 | + const FieldList<%%(Dim)s, %%(SymTensor)s>& Hfield, |
| 31 | + const TableKernel< %%(Dim)s >& kernel); |
48 | 32 |
|
| 33 | +template |
| 34 | +void |
| 35 | +gradientPairs<%%(Dim)s, %(Value)s>(FieldList<%%(Dim)s, MathTraits<%%(Dim)s, %(Value)s>::GradientType>& result, |
| 36 | + const FieldList<%%(Dim)s, %(Value)s>& field, |
| 37 | + const FieldList<%%(Dim)s, %%(Vector)s>& position, |
| 38 | + const FieldList<%%(Dim)s, %%(Scalar)s>& weight, |
| 39 | + const FieldList<%%(Dim)s, %%(SymTensor)s>& Hfield, |
| 40 | + const ConnectivityMap<%%(Dim)s>& conn, |
| 41 | + const TableKernel<%%(Dim)s>& kernel); |
| 42 | +""" % {"Value" : "%(" + Value + ")s"} |
49 | 43 |
|
| 44 | +text += """ |
50 | 45 | //============================== limiter() ============================== |
51 | 46 | template |
52 | | -FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::SymTensor> |
53 | | -limiter<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>(const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>& fieldList, |
54 | | - const FieldList<Dim< %(ndim)s >, MathTraits<Dim< %(ndim)s >, Dim< %(ndim)s >::Scalar>::GradientType>& gradient, |
55 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>& position, |
56 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::SymTensor>& Hfield, |
57 | | - const TableKernel< Dim< %(ndim)s > >& kernel); |
| 47 | +FieldList<%(Dim)s, %(SymTensor)s> |
| 48 | +limiter<%(Dim)s, %(Scalar)s>(const FieldList<%(Dim)s, %(Scalar)s>& fieldList, |
| 49 | + const FieldList<%(Dim)s, MathTraits<%(Dim)s, %(Scalar)s>::GradientType>& gradient, |
| 50 | + const FieldList<%(Dim)s, %(Vector)s>& position, |
| 51 | + const FieldList<%(Dim)s, %(SymTensor)s>& Hfield, |
| 52 | + const TableKernel< %(Dim)s >& kernel); |
58 | 53 | template |
59 | | -FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::SymTensor> |
60 | | -limiter<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>(const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>& fieldList, |
61 | | - const FieldList<Dim< %(ndim)s >, MathTraits<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>::GradientType>& gradient, |
62 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::Vector>& position, |
63 | | - const FieldList<Dim< %(ndim)s >, Dim< %(ndim)s >::SymTensor>& Hfield, |
64 | | - const TableKernel< Dim< %(ndim)s > >& kernel); |
| 54 | +FieldList<%(Dim)s, %(SymTensor)s> |
| 55 | +limiter<%(Dim)s, %(Vector)s>(const FieldList<%(Dim)s, %(Vector)s>& fieldList, |
| 56 | + const FieldList<%(Dim)s, MathTraits<%(Dim)s, %(Vector)s>::GradientType>& gradient, |
| 57 | + const FieldList<%(Dim)s, %(Vector)s>& position, |
| 58 | + const FieldList<%(Dim)s, %(SymTensor)s>& Hfield, |
| 59 | + const TableKernel< %(Dim)s >& kernel); |
65 | 60 |
|
66 | 61 | } |
67 | 62 | """ |
0 commit comments