QUDA
v0.5.0
A library for QCD on GPUs
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
quda
include
lattice_field.h
Go to the documentation of this file.
1
#ifndef _LATTICE_FIELD_H
2
#define _LATTICE_FIELD_H
3
4
#include <
quda.h
>
5
#include <iostream>
6
7
namespace
quda {
8
9
// LatticeField is an abstract base clase for all Field objects.
10
11
// Forward declaration of all children
12
class
ColorSpinorField;
13
class
cudaColorSpinorField;
14
class
cpuColorSpinorField;
15
16
class
GaugeField;
17
class
cpuGaugeField;
18
class
cudaGaugeField;
19
20
class
CloverField;
21
class
cudaCloverField;
22
class
cpuCloverField;
23
24
struct
LatticeFieldParam
{
25
int
nDim
;
26
int
x
[
QUDA_MAX_DIM
];
27
int
pad
;
28
29
QudaPrecision
precision
;
30
QudaVerbosity
verbosity
;
31
32
LatticeFieldParam
() { ; }
33
34
// constructor for creating a cpuGaugeField only
35
LatticeFieldParam
(
const
QudaGaugeParam
&
param
) :
nDim
(4),
pad
(0),
36
precision
(param.
cpu_prec
),
verbosity
(
QUDA_SILENT
) {
37
for
(
int
i=0; i<
nDim
; i++)
x
[i] = param.
X
[i];
38
}
39
};
40
41
std::ostream&
operator<<
(std::ostream& output,
const
LatticeFieldParam&
param
);
42
43
class
LatticeField
{
44
45
protected
:
46
int
volume
;
// lattice volume
47
int
volumeCB
;
// the checkboarded volume
48
int
stride
;
49
int
pad
;
50
51
size_t
total_bytes
;
52
53
int
nDim
;
54
int
x
[
QUDA_MAX_DIM
];
55
56
int
surface
[
QUDA_MAX_DIM
];
57
int
surfaceCB
[
QUDA_MAX_DIM
];
58
60
QudaPrecision
precision
;
61
63
QudaVerbosity
verbosity
;
64
66
static
void
*
bufferPinned
;
67
69
static
bool
bufferInit
;
70
72
static
size_t
bufferBytes
;
73
75
void
resizeBuffer
(
size_t
bytes)
const
;
76
77
public
:
78
LatticeField
(
const
LatticeFieldParam
&
param
);
79
virtual
~LatticeField
() { ; }
80
82
static
void
freeBuffer
();
83
84
int
Ndim
()
const
{
return
nDim
; }
85
const
int
*
X
()
const
{
return
x
; }
86
int
Volume
()
const
{
return
volume
; }
87
int
VolumeCB
()
const
{
return
volumeCB
; }
88
int
SurfaceCB
(
const
int
i)
const
{
return
surfaceCB
[i]; }
89
int
Stride
()
const
{
return
stride
; }
90
int
Pad
()
const
{
return
pad
; }
91
92
QudaPrecision
Precision
()
const
{
return
precision
; }
93
QudaFieldLocation
Location
()
const
;
94
QudaVerbosity
Verbosity
()
const
{
return
verbosity
; }
95
size_t
GBytes
()
const
{
return
total_bytes
/ (1<<30); }
// returns total storage allocated
96
97
void
checkField
(
const
LatticeField
&);
98
};
99
100
}
// namespace quda
101
102
#endif // _LATTICE_FIELD_H
Generated on Wed Mar 20 2013 12:52:14 for QUDA by
1.8.2