34 #include "Utils/clusterspecifier.h" 42 #include<boost/filesystem.hpp> 46 #include "Utils/clusterspecifier.h" 57 char *floatToConvert = (
char* ) & inFloat;
58 char *returnFloat = (
char* ) & retVal;
61 returnFloat[0] = floatToConvert[7];
62 returnFloat[1] = floatToConvert[6];
63 returnFloat[2] = floatToConvert[5];
64 returnFloat[3] = floatToConvert[4];
65 returnFloat[4] = floatToConvert[3];
66 returnFloat[5] = floatToConvert[2];
67 returnFloat[6] = floatToConvert[1];
68 returnFloat[7] = floatToConvert[0];
77 char *doubleToConvert = (
char* ) & inDouble;
78 char *returnDouble = (
char* ) & retVal;
81 returnDouble[0] = doubleToConvert[7];
82 returnDouble[1] = doubleToConvert[6];
83 returnDouble[2] = doubleToConvert[5];
84 returnDouble[3] = doubleToConvert[4];
85 returnDouble[4] = doubleToConvert[3];
86 returnDouble[5] = doubleToConvert[2];
87 returnDouble[6] = doubleToConvert[1];
88 returnDouble[7] = doubleToConvert[0];
110 boost::filesystem::path inputPath =
m_inputDir;
111 for (boost::filesystem::directory_entry& x : boost::filesystem::directory_iterator(inputPath))
112 if(x.path().extension() ==
".bin")
113 inputConfList.push_back(x.path().string());
114 std::sort(inputConfList.begin(), inputConfList.end());
138 sprintf(fileName,
"%s/conf%04d.bin", OUT_PREFIX, confNum);
149 MPI_Offset startPointT, startPointZ, startPointY, startPointX;
151 int volumeY = Parallel::latticeFullSize()[0] * volumeX;
152 int volumeZ = Parallel::latticeFullSize()[1] * volumeY;
153 int volumeT = Parallel::latticeFullSize()[2] * volumeZ;
158 for(
int t = 0; t < Parallel::latticeSubSize()[3]; t++){
159 startPointT = volumeT * ( Parallel::rankCoord()[3]*Parallel::latticeSubSize()[3] + t);
160 for(
int z = 0; z < Parallel::latticeSubSize()[2]; z++){
161 startPointZ = startPointT + volumeZ * ( Parallel::rankCoord()[2]*Parallel::latticeSubSize()[2] + z);
162 for(
int y = 0; y < Parallel::latticeSubSize()[1]; y++){
163 startPointY = startPointZ + volumeY * ( Parallel::rankCoord()[1]*Parallel::latticeSubSize()[1] + y);
164 for(
int x = 0; x < Parallel::latticeSubSize()[0]; x++){
165 startPointX = startPointY + volumeX * ( Parallel::rankCoord()[0]*Parallel::latticeSubSize()[0] + x);
179 for(
int mu = 0; mu < 4; mu++){
180 MPI_File_read_at(input, startPointX, lattice[mu].at(x,y,z,t).mat.data(), 18, MPI_DOUBLE, MPI_STATUS_IGNORE);
Contains the definition of the Lattice class.
Class that represents the QCD field as an array of 4 SU3 lattices.
Utilities for parallelization.
static void closeFile(MPI_File &file)
closes a file with MPI
static void openFile(MPI_File &file, const char *fileName)
opens a file with MPI