26#define M_PI 3.14159265358979323846264338327
37GLB_VAR(
long int, GLB_VOL3, = 0);
38GLB_VAR(
long int, GLB_VOLUME, = 0);
40GLB_VAR(
long int, VOL3, = 0);
41GLB_VAR(
long int, VOLUME, = 0);
47GLB_VAR(
int, NP_T, = 1);
48GLB_VAR(
int, NP_X, = 1);
49GLB_VAR(
int, NP_Y, = 1);
50GLB_VAR(
int, NP_Z, = 1);
53GLB_VAR(
int, MPI_BLK_T, = 1);
54GLB_VAR(
int, MPI_BLK_X, = 1);
55GLB_VAR(
int, MPI_BLK_Y, = 1);
56GLB_VAR(
int, MPI_BLK_Z, = 1);
59GLB_VAR(
int, GLB_T, = 0);
60GLB_VAR(
int, GLB_X, = 0);
61GLB_VAR(
int, GLB_Y, = 0);
62GLB_VAR(
int, GLB_Z, = 0);
64GLB_VAR(
int, T_BORDER, = 0);
65GLB_VAR(
int, X_BORDER, = 0);
66GLB_VAR(
int, Y_BORDER, = 0);
67GLB_VAR(
int, Z_BORDER, = 0);
69GLB_VAR(
int, T_EXT, = 0);
70GLB_VAR(
int, X_EXT, = 0);
71GLB_VAR(
int, Y_EXT, = 0);
72GLB_VAR(
int, Z_EXT, = 0);
75GLB_VAR(
int, PB_T, = 2);
76GLB_VAR(
int, PB_X, = 2);
77GLB_VAR(
int, PB_Y, = 2);
78GLB_VAR(
int, PB_Z, = 2);
81GLB_VAR(
int, WORLD_SIZE, = 1);
82GLB_VAR(
int, CART_SIZE, = 1);
83GLB_VAR(
int, N_REP, = 1);
84GLB_VAR(
int, MPI_WORLD_SIZE, = 1);
85GLB_VAR(
int, MPI_PID, = 0);
88GLB_VAR(MPI_Comm, GLB_COMM, = MPI_COMM_WORLD);
89GLB_VAR(MPI_Comm, cart_comm, = MPI_COMM_NULL);
92GLB_VAR(
int, RID, = 0);
93GLB_VAR(
int, PID, = 0);
94GLB_VAR(
int, LID, = 0);
96GLB_VAR(
int, CID, = 0);
97GLB_VAR(
int, COORD[4], = { 0 });
98GLB_VAR(
int, PSIGN, = 0);
101GLB_VAR(
int, *ipt, = NULL);
102GLB_VAR(
int, *ipt_4d, = NULL);
103GLB_VAR(
int, *iup, = NULL);
104GLB_VAR(
int, *idn, = NULL);
105GLB_VAR(
char, *imask, = NULL);
106GLB_VAR(
int, zerocoord[4], = { 0, 0, 0, 0 });
107GLB_VAR(
int, *timeslices, = NULL);
109GLB_VAR(
int, BLK_T, = 4);
110GLB_VAR(
int, BLK_X, = 4);
111GLB_VAR(
int, BLK_Y, = 4);
112GLB_VAR(
int, BLK_Z, = 4);
131GLB_VAR(
box_t *, geometryBoxes, );
132GLB_VAR(
box_t *, geometryBoxes_gpu, );
133GLB_VAR(
coord4 *, icoord_gpu, );
134GLB_VAR(
coord4 *, sb_icoord_gpu, );
137#define glat_default glat_even
139#define glat_default glattice
143#define STD_MEM_TYPE (CPU_MEM | GPU_MEM)
145#define BLOCK_SIZE 256
146#define BLOCK_SIZE_LINEAR_ALGEBRA 256
147#define BLOCK_SIZE_GLOBAL_SUM 512
148#define BLOCK_SIZE_DIRAC 256
149#define BLOCK_SIZE_CLOVER 256
150#define BLOCK_SIZE_DIRAC_FLT 512
151#define BLOCK_SIZE_SYNC 32
153GLB_VAR(cudaStream_t, non_default_stream, = NULL);
154GLB_VAR(cudaStream_t, memory_streams[16]);
157GLB_VAR(
input_gpu, gpu_var, = init_input_gpu(gpu_var));
158GLB_VAR(
int, gpu_id, = 0);
159GLB_VAR(
int, *ipt_gpu, = NULL);
160GLB_VAR(
int, *iup_gpu, = NULL);
161GLB_VAR(
int, *idn_gpu, = NULL);
162GLB_VAR(
char, *imask_gpu, = NULL);
163GLB_VAR(
unsigned int, grid_size_max_gpu, = 65535);
164GLB_VAR(
int, *timeslices_gpu, = NULL);
166#define STD_MEM_TYPE (CPU_MEM)
168GLB_VAR(mem_t, std_mem_t, = STD_MEM_TYPE);
169GLB_VAR(mem_t, alloc_mem_t, = STD_MEM_TYPE);
175GLB_VAR(comm_t, std_comm_t, = CPU_COMM);
177GLB_VAR(comm_t, std_comm_t, = GPU_COMM);
181#include "suN_types.h"
191#if defined(WITH_EXPCLOVER) && defined(WITH_GPU)
195GLB_VAR(
clover_term, *cl_term_expAminusinv, = NULL);
201GLB_VAR(
int, gauge_field_active, = 0);
203#define pu_gauge(ix, mu) ((u_gauge->ptr) + coord_to_index(ix, mu))
204#define pu_scalar(ix) ((u_scalar->ptr) + ix)
205#define pu_gauge_flt(ix, mu) ((u_gauge_flt->ptr) + coord_to_index(ix, mu))
206#define pu_gauge_f(ix, mu) ((u_gauge_f->ptr) + coord_to_index(ix, mu))
207#define pu_gauge_f_flt(ix, mu) ((u_gauge_f_flt->ptr) + coord_to_index(ix, mu))
210#include "IO/input_par.h"
211GLB_VAR(
input_glb, glb_var, = init_input_glb(glb_var));
214GLB_VAR(
input_rlx, rlx_var, = init_input_rlx(rlx_var));
217GLB_VAR(
input_logger, logger_var, = init_input_logger(logger_var));
220#if (!defined(REPR_FUNDAMENTAL) && !defined(WITH_QUATERNIONS)) || defined(BC_T_SF_ROTATED)
221#define ALLOCATE_REPR_GAUGE_FIELD
224GLB_VAR(
double, *plaq_weight, = NULL);
225GLB_VAR(
double, *rect_weight, = NULL);
226GLB_VAR(
double, *plaq_weight_gpu, = NULL);
227GLB_VAR(
double, *rect_weight_gpu, = NULL);
231GLB_VAR(hr_complex, eitheta[4], = { 1.0, 1.0, 1.0, 1.0 });
235#define MEASURE_FORCE0
236#define MEASURE_FORCEHMC
237GLB_VAR(
double, *force_ave, = NULL);
238GLB_VAR(
double, *force_max, = NULL);
239GLB_VAR(
int, *n_inv_iter, = NULL);
249GLB_VAR(
int, four_fermion_active, = 0);
Validation checks of the input parameters specified in the input file and error messages that give in...
Macros to declare global variables.
Global flags that indicate for example that a certain field has been updated.
This file contains information on the geometry of the local lattice, block decomposed geometry,...
Basic gpu imports and structs. Include this in files that define GPU logic.
The elementary site structures defined in suN.h are used in this file to define field structures that...
Definition new_geometry.h:56
Clover Force.
Definition spinor_field.h:304
Clover term.
Definition spinor_field.h:288
Definition new_geometry.h:39
This struct should contain all information necessary to perform operations on the local lattice inclu...
Definition geometry_descriptor.h:106
LDL decomposition field needed for clover improvement.
Definition spinor_field.h:256
Scalar field of double precision real values.
Definition spinor_field.h:240
Single precision gauge field in the chosen fermion representation.
Definition spinor_field.h:171
Gauge field in chosen fermion representation.
Definition spinor_field.h:153
Field of SU(N_g) algebra vectors.
Definition spinor_field.h:224
Gauge field of single precision SU(N_g) matrices.
Definition spinor_field.h:135
Gauge field of SU(N_g) matrices.
Definition spinor_field.h:98
SU(N_g) scalar field of SU(N_g) vectors.
Definition spinor_field.h:117