su2hmc
|
MPI routines. More...
Go to the source code of this file.
Functions | |
int | Par_begin (int argc, char *argv[]) |
Initialises the MPI configuration. | |
int | Par_sread (const int iread, const float beta, const float fmu, const float akappa, const Complex_f ajq, Complex *u11, Complex *u12, Complex *u11t, Complex *u12t) |
Reads and assigns the gauges from file. | |
int | Par_swrite (const int itraj, const int icheck, const float beta, const float fmu, const float akappa, const Complex_f ajq, Complex *u11, Complex *u12) |
Copies u11 and u12 into arrays without halos which then get written to output. | |
int | Trial_Exchange (Complex *u11t, Complex *u12t, Complex_f *u11t_f, Complex_f *u12t_f) |
Exchanges the trial fields. | |
Variables | |
int * | pcoord |
The processor grid. | |
int pstart[ndim][nproc] | __RANLUX__ |
int | rank |
The MPI rank. | |
int | size |
The number of MPI ranks in total. | |
MPI routines.
Definition in file par_mpi.c.
int Par_begin | ( | int | argc, |
char * | argv[] ) |
Initialises the MPI configuration.
argc | Number of arguments given to the programme |
argv | Array of arguments |
Definition at line 25 of file par_mpi.c.
References AVX, ksizet, ksizex, ksizey, ksizez, ndim, nproc, npt, npx, npy, npz, nt, nx, ny, nz, pcoord, pd, pstart, pstop, pu, rank, and size.
int Par_sread | ( | const int | iread, |
const float | beta, | ||
const float | fmu, | ||
const float | akappa, | ||
const Complex_f | ajq, | ||
Complex * | u11, | ||
Complex * | u12, | ||
Complex * | u11t, | ||
Complex * | u12t ) |
Reads and assigns the gauges from file.
iread | Configuration to read in |
beta | Inverse gauge coupling |
fmu | Chemical potential |
akappa | Hopping parameter |
ajq | Diquark source |
u11,u12 | Gauge fields |
u11t,u12t | Trial fields |
Definition at line 127 of file par_mpi.c.
References AVX, Complex, Coord2gindex(), FILELEN, gvol, kvol, masterproc, ndim, nproc, nt, nx, pstart, pstop, rank, seed, and size.
int Par_swrite | ( | const int | itraj, |
const int | icheck, | ||
const float | beta, | ||
const float | fmu, | ||
const float | akappa, | ||
const Complex_f | ajq, | ||
Complex * | u11, | ||
Complex * | u12 ) |
Copies u11 and u12 into arrays without halos which then get written to output.
Modified from an original version of swrite in FORTRAN
itraj | Trajectory to write |
icheck | Not currently used but haven't gotten around to removing it |
beta | Inverse gauge coupling |
fmu | Chemical potential |
akappa | Hopping parameter |
ajq | Diquark source |
u11,u12 | Gauge fields |
Definition at line 341 of file par_mpi.c.
References AVX, Complex, Coord2gindex(), FILELEN, gvol, kvol, masterproc, ndim, nproc, nt, nx, pstart, pstop, rank, seed, and size.
Exchanges the trial fields.
I noticed that this halo exchange was happening even though the trial fields hadn't been updated. To get around this I'm making a function that does the halo exchange and only calling it after the trial fields get updated.
u11t,u12t | Double precision trial fields |
u11t_f,u12t_f | Single precision trial fields |
Definition at line 1178 of file par_mpi.c.
References AVX, Complex, Complex_f, halo, kvol, ndim, and ZHalo_swap_all().