1 #include "InputOutput/JsonInput/json.hpp" 2 #include "InputOutput/JsonInput/jsoninput.h" 3 #include "InputOutput/JsonInput/jsonitems.h" 11 void validateAppType(){
13 if(jsonFile[
"App"][
"type"].size() == 0){
14 std::cerr <<
"LatticeQCD Error: no App specified\n";
17 if(jsonFile[
"App"][
"type"].size() != 1){
18 std::cerr <<
"LatticeQCD Error: wrong App specification\n" 19 "Correct format is:\n" 21 " \"type\" : \"appType\", \n" 22 " \"params\" : { (optional)\n" 23 " \"param1\" : param1, \n" 24 " \"param2\" : param2, \n" 31 if(jsonFile[
"App"][
"type"] ==
"GFR")
33 else if (jsonFile[
"App"][
"type"] ==
"FLOW")
35 else if (jsonFile[
"App"][
"type"] ==
"PGFG")
38 std::cerr <<
"LatticeQCD Error: unknown App " 39 << jsonFile[
"App"][
"type"]
50 if( jsonFile[
"App"][
"params"].size() != 2
51 || jsonFile[
"App"][
"params"][
"epsilon"].size() != 1
52 || jsonFile[
"App"][
"params"][
"tauFinal"].size() != 1){
53 std::cerr <<
"LatticeQCD Error: wrong \"FLOW\" app specification\n" 56 " \"type\" : \"FLOW\", \n" 58 " \"epsilon\" : epsilon, \n" 59 " \"tauFinal\" : tauFinal \n" 67 if( jsonFile[
"App"][
"params"].size() != 5
68 || jsonFile[
"App"][
"params"][
"startType"].size() != 1
69 || jsonFile[
"App"][
"params"][
"MCSteps"].size() != 1
70 || jsonFile[
"App"][
"params"][
"thermSteps"].size() != 1
71 || jsonFile[
"App"][
"params"][
"SU3eps"].size() != 1
72 || ( jsonFile[
"App"][
"params"][
"NConf"].size()
73 + jsonFile[
"App"][
"params"][
"NCorr"].size() != 1)
75 std::cerr <<
"LatticeQCD Error: wrong \"PGFG\" app specification\n" 78 " \"type\" : \"PGFG\", \n" 80 " \"MCSteps\" : MCSteps, \n" 81 " \"themSteps\" : thermSteps\n" 82 " \"startType\" : startType, \n" 83 " \"NConf\" : NConf, OR \"NCorr\" : NCorr, \n" 84 " \"SU3eps\" : SU3eps \n" 91 void registerApp(
App*& app){
93 if(jsonFile[
"App"][
"type"] ==
"PGFG")
95 else if(jsonFile[
"App"][
"type"] ==
"FLOW")
97 else if(jsonFile[
"App"][
"type"] ==
"GFR")
103 void registerPGFG(
App*& app){
104 if(jsonFile[
"App"][
"params"][
"NConf"].size() == 1)
106 jsonFile[
"App"][
"params"][
"MCSteps"],
107 jsonFile[
"App"][
"params"][
"thermSteps"],
108 jsonFile[
"App"][
"params"][
"NConf"],
109 jsonFile[
"App"][
"params"][
"SU3eps"],
110 jsonFile[
"App"][
"params"][
"startType"]);
113 jsonFile[
"App"][
"params"][
"MCSteps"],
114 jsonFile[
"App"][
"params"][
"thermSteps"],
115 int(jsonFile[
"App"][
"params"][
"MCSteps"]) /
int(jsonFile[
"App"][
"params"][
"NCorr"]),
116 jsonFile[
"App"][
"params"][
"SU3eps"],
117 jsonFile[
"App"][
"params"][
"startType"]);
120 void registerGFR(
App*& app){
124 void registerFLOW(
App*& app){
126 jsonFile[
"App"][
"params"][
"tauFinal"],
127 jsonFile[
"App"][
"params"][
"epsilon"]);
Implementation of the WilsonFlow App class.
Implementation of the GaugeFieldReader App class.
Implementation of the GaugeFieldFactory App class.
Utilities for parallelization.
static void createGeometry(std::array< int, 4 > latticeSize, std::array< int, 4 > subLatticeSize)
creates the parallel gemometry of the lattice
Contains the definition of the App prototype.
Main include file for App derived classes.
virtual void createLattice(std::array< int, 4 > latticeSize)
Initializes the GluonField object given a sublattice size.
Prototype for the App class group.