Gyselalib++
 
Loading...
Searching...
No Matches
types.hpp
1// SPDX-License-Identifier: MIT
2#pragma once
3
4#include "ddc_aliases.hpp"
5#include "ddc_helper.hpp"
6#include "vector_field.hpp"
7#include "vector_field_mem.hpp"
8
9
10// GRIDS -----------------------------------------------------------------------------------------
11
13template <class Patch>
14using Grid1OnPatch = typename Patch::Grid1;
15
17template <class Patch>
18using Grid2OnPatch = typename Patch::Grid2;
19
20
21
22// FIELDS ----------------------------------------------------------------------------------------
23
25template <class Patch>
26using DFieldMemOnPatch = DFieldMem<typename Patch::IdxRange12>;
27
29template <class Patch>
30using DFieldMem1OnPatch = DFieldMem<typename Patch::IdxRange1>;
31
33template <class Patch>
34using DFieldMem2OnPatch = DFieldMem<typename Patch::IdxRange2>;
35
37template <class Patch>
38using DFieldOnPatch = DField<typename Patch::IdxRange12>;
39
41template <class Patch>
42using DConstFieldOnPatch = DConstField<typename Patch::IdxRange12>;
43
45template <class Patch>
46using DFieldOnPatch_host = host_t<DFieldOnPatch<Patch>>;
47
48
50template <class Patch>
51using DField1OnPatch = DField<typename Patch::IdxRange1>;
52
54template <class Patch>
55using DConstField1OnPatch = DConstField<typename Patch::IdxRange1>;
56
57
58// VECTOR FIELDS ---------------------------------------------------------------------------------
59
61template <class Patch>
63 double,
64 typename Patch::IdxRange12,
65 NDTag<typename Patch::Dim1, typename Patch::Dim2>>;
66
68template <class Patch>
70 double,
71 typename Patch::IdxRange12,
72 NDTag<typename Patch::Dim1, typename Patch::Dim2>>;
73
75template <class Patch>
77 double,
78 typename Patch::IdxRange12,
79 NDTag<typename Patch::Dim1, typename Patch::Dim2>>;
80
81// IDX, IDXRANGE ---------------------------------------------------------------------------------
82
84template <class Patch>
85using IdxRangeOnPatch = typename Patch::IdxRange12;
86
87
89template <class Patch>
90using IdxRange1OnPatch = typename Patch::IdxRange1;
91
93template <class Patch>
94using Idx1OnPatch = typename Patch::Idx1;
95
96
97
98// COORDINATES -----------------------------------------------------------------------------------
99
101template <class Patch>
102using CoordFieldMemOnPatch = FieldMem<typename Patch::Coord12, typename Patch::IdxRange12>;
103
105template <class Patch>
106using CoordFieldOnPatch = Field<typename Patch::Coord12, typename Patch::IdxRange12>;
107
109template <class Patch>
110using CoordConstFieldOnPatch = ConstField<typename Patch::Coord12, typename Patch::IdxRange12>;
111
112
115template <class Patch>
116using Coord1Field1OnPatch_1D = Field<typename Patch::Coord1, typename Patch::IdxRange1>;
117
118
119
120// SPLINES ---------------------------------------------------------------------------------------
121
123template <class Patch>
124using BSplines1OnPatch = typename Patch::BSplines1;
125
127template <class Patch>
128using BSplines2OnPatch = typename Patch::BSplines2;
129
130
135template <class Patch>
136using SplineCoeffOnPatch_2D = DField<typename Patch::IdxRangeBS12>;
137
142template <class Patch>
143using ConstSplineCoeffOnPatch_2D = DConstField<typename Patch::IdxRangeBS12>;
144
149template <class Patch>
150using ConstSplineCoeffOnPatch_2D_host = host_t<ConstSplineCoeffOnPatch_2D<Patch>>;
151
156template <class Patch>
157using SplineCoeff1OnPatch_2D = DField<IdxRange<typename Patch::BSplines1, typename Patch::Grid2>>;
158
163template <class Patch>
164using ConstSplineCoeff1OnPatch_2D
165 = DConstField<IdxRange<typename Patch::BSplines1, typename Patch::Grid2>>;
166
167
172template <class Patch>
173using SplineCoeff1OnPatch_1D = DField<typename Patch::IdxRangeBS1>;
174
179template <class Patch>
180using ConstSplineCoeff1OnPatch_1D = DConstField<typename Patch::IdxRangeBS1>;
181
182
183
184// DERIVATIVES -----------------------------------------------------------------------------------
185
190template <class Patch>
191using ConstDeriv1_OnPatch_2D
192 = DConstField<IdxRange<ddc::Deriv<typename Patch::Dim1>, typename Patch::Grid2>>;
193
198template <class Patch>
199using ConstDeriv2_OnPatch_2D
200 = DConstField<IdxRange<typename Patch::Grid1, ddc::Deriv<typename Patch::Dim2>>>;
201
206template <class Patch>
207using ConstDeriv12_OnPatch_2D
208 = DConstField<IdxRange<ddc::Deriv<typename Patch::Dim1>, ddc::Deriv<typename Patch::Dim2>>>;
Pre-declaration of VectorFieldMem.
Definition vector_field_mem.hpp:54
A class which holds multiple (scalar) fields in order to represent a vector field.
Definition vector_field.hpp:64