LatticeYangMills
jsonlattice.cpp
1 #include "InputOutput/JsonInput/json.hpp"
2 #include "InputOutput/JsonInput/jsoninput.h"
3 #include "InputOutput/JsonInput/JsonGeneric/jsonlattice.h"
4 #include <iostream>
5 
6 namespace LatticeIO {
7  namespace JsonInput {
8 
9  std::array<int, 4> latticeSize;
10  std::array<int, 4> subLatticeSize;
11  void validateLatticeInput(){
12  // check lattice size
13  if(jsonFile.count("LatticeSize") == 0){
14  std::cerr << "LatticeQCD Error: no LatticeSize specified\n";
15  exit(1);
16  }
17  if(jsonFile.count("LatticeSize") != 1){
18  std::cerr << "LatticeQCD Error: too many LatticeSize specified\n";
19  exit(1);
20  }
21  if( jsonFile["LatticeSize"].size() != 4
22  || jsonFile["LatticeSize"]["x"].size() != 1
23  || jsonFile["LatticeSize"]["y"].size() != 1
24  || jsonFile["LatticeSize"]["z"].size() != 1
25  || jsonFile["LatticeSize"]["t"].size() != 1){
26 
27  std::cerr << "LatticeQCD Error: wrong LatticeSize specification\n"
28  "Correct format is:\n "
29  "\"LatticeSize\" : {\n"
30  " \"x\" : Nx, \n"
31  " \"y\" : Ny, \n"
32  " \"z\" : Nz, \n"
33  " \"t\" : Nt \n"
34  "}\n";
35  exit(1);
36  }
37  latticeSize[0] = jsonFile["LatticeSize"]["x"];
38  latticeSize[1] = jsonFile["LatticeSize"]["y"];
39  latticeSize[2] = jsonFile["LatticeSize"]["z"];
40  latticeSize[3] = jsonFile["LatticeSize"]["t"];
41  }
42 
43  void validateSubLatticeInput(){
44  // check sublattice size
45  if(jsonFile.count("SubLatticeSize") == 0){
46  std::cerr << "LatticeQCD Error: no SubLatticeSize specified\n";
47  exit(1);
48  }
49  if(jsonFile.count("SubLatticeSize") != 1){
50  std::cerr << "LatticeQCD Error: too many SubLatticeSize specified\n";
51  exit(1);
52  }
53  if( jsonFile["SubLatticeSize"].size() != 4
54  || jsonFile["SubLatticeSize"]["x"].size() != 1
55  || jsonFile["SubLatticeSize"]["y"].size() != 1
56  || jsonFile["SubLatticeSize"]["z"].size() != 1
57  || jsonFile["SubLatticeSize"]["t"].size() != 1){
58 
59  std::cerr << "LatticeQCD Error: wrong SubLatticeSize specification\n"
60  "Correct format is:\n "
61  "\"SubLatticeSize\" : {\n"
62  " \"x\" : Nx, \n"
63  " \"y\" : Ny, \n"
64  " \"z\" : Nz, \n"
65  " \"t\" : Nt \n"
66  "}\n";
67  exit(1);
68  }
69  subLatticeSize[0] = jsonFile["SubLatticeSize"]["x"];
70  subLatticeSize[1] = jsonFile["SubLatticeSize"]["y"];
71  subLatticeSize[2] = jsonFile["SubLatticeSize"]["z"];
72  subLatticeSize[3] = jsonFile["SubLatticeSize"]["t"];
73  }
74  } // end JsonInput
75 } // end LatticeIO