SpatialOps
FVStaggeredFieldTypes.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 The University of Utah
3  *
4  * Permission is hereby granted, free of charge, to any person obtaining a copy
5  * of this software and associated documentation files (the "Software"), to
6  * deal in the Software without restriction, including without limitation the
7  * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
8  * sell copies of the Software, and to permit persons to whom the Software is
9  * furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in
12  * all copies or substantial portions of the Software.
13  *
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20  * IN THE SOFTWARE.
21  */
22 
23 #ifndef FVStaggeredTypes_h
24 #define FVStaggeredTypes_h
25 
26 #include <spatialops/SpatialOpsConfigure.h>
30 
31 
36 namespace SpatialOps{
37 
152 
153 
171 
172 
190 
191 
209 
210 
216 
217 
225 
250  template< typename CellFieldT > struct FaceTypes;
251 
252  template<> struct FaceTypes<SVolField>
253  {
254  typedef SSurfXField XFace;
255  typedef SSurfYField YFace;
256  typedef SSurfZField ZFace;
257  };
258 
259  template<> struct FaceTypes<XVolField>
260  {
261  typedef XSurfXField XFace;
262  typedef XSurfYField YFace;
263  typedef XSurfZField ZFace;
264  };
265 
266  template<> struct FaceTypes<YVolField>
267  {
268  typedef YSurfXField XFace;
269  typedef YSurfYField YFace;
270  typedef YSurfZField ZFace;
271  };
272 
273  template<> struct FaceTypes<ZVolField>
274  {
275  typedef ZSurfXField XFace;
276  typedef ZSurfYField YFace;
277  typedef ZSurfZField ZFace;
278  };
279 
280  template<> struct FaceTypes<VertexField>
281  {
282  typedef VertexField XFace;
283  typedef VertexField YFace;
284  typedef VertexField ZFace;
285  };
286 
313  template<typename FaceT> struct VolType;
314 
315  template<> struct VolType<SSurfXField>{ typedef SVolField VolField; };
316  template<> struct VolType<SSurfYField>{ typedef SVolField VolField; };
317  template<> struct VolType<SSurfZField>{ typedef SVolField VolField; };
318 
319  template<> struct VolType<XSurfXField>{ typedef XVolField VolField; };
320  template<> struct VolType<XSurfYField>{ typedef XVolField VolField; };
321  template<> struct VolType<XSurfZField>{ typedef XVolField VolField; };
322 
323  template<> struct VolType<YSurfXField>{ typedef YVolField VolField; };
324  template<> struct VolType<YSurfYField>{ typedef YVolField VolField; };
325  template<> struct VolType<YSurfZField>{ typedef YVolField VolField; };
326 
327  template<> struct VolType<ZSurfXField>{ typedef ZVolField VolField; };
328  template<> struct VolType<ZSurfYField>{ typedef ZVolField VolField; };
329  template<> struct VolType<ZSurfZField>{ typedef ZVolField VolField; };
330 
331  template<> struct VolType<VertexField>{ typedef VertexField VolField; };
332 
337 }// namespace SpatialOps
338 
339 
340 #endif
SpatialField< ZSurfY > ZSurfYField
defines a y-surface field on the z-staggered volume
SpatialField< Vertex > VertexField
defines a vertex field
SpatialField< XSurfY > XSurfYField
defines a y-surface field on the x-staggered volume
SpatialField< YVol > YVolField
defines a volume field on the y-staggered volume
SpatialField< YSurfY > YSurfYField
defines a y-surface field on the y-staggered volume
SpatialField< SSurfY > SSurfYField
defines a y-surface field on the scalar volume
Define face field types in terms of a volume field type.
SpatialField< SSurfZ > SSurfZField
defines a z-surface field on the scalar volume
SpatialField< ZSurfZ > ZSurfZField
defines a z-surface field on the z-staggered volume
SpatialField< XSurfZ > XSurfZField
defines a z-surface field on the x-staggered volume
SpatialField< ZSurfX > ZSurfXField
defines a x-surface field on the z-staggered volume
SpatialField< XVol > XVolField
defines a volume field on the x-staggered volume
SpatialField< SingleValue > SingleValueField
defines a single value field
Define Face field types in terms of a cell field type.
SpatialField< YSurfZ > YSurfZField
defines a z-surface field on the y-staggered volume
SpatialField< SSurfX > SSurfXField
defines a x-surface field on the scalar volume
SpatialField< SVol > SVolField
defines a volume field on the scalar volume.
Abstracts a field.
Definition: SpatialField.h:132
SpatialField< XSurfX > XSurfXField
defines a x-surface field on the x-staggered volume
SpatialField< ZVol > ZVolField
defines a volume field on the z-staggered volume
SpatialField< YSurfX > YSurfXField
defines a x-surface field on the y-staggered volume