1 #include "InputOutput/JsonInput/json.hpp" 2 #include "InputOutput/JsonInput/jsoninput.h" 3 #include "InputOutput/JsonInput/JsonObservable/jsonobservable.h" 11 void validateObservables(){
13 if(jsonFile[
"App"][
"type"] ==
"GFR" || jsonFile[
"App"][
"type"] ==
"FLOW"){
14 if(jsonFile.count(
"Observables") == 0){
15 std::cerr <<
"LatticeQCD Error: no Observables specified\n";
18 if(jsonFile.count(
"Observables") != 1){
19 std::cerr <<
"LatticeQCD Error: too many Observables tag specified\n";
23 if(jsonFile[
"Observables"].size() == 0){
24 std::cerr <<
"LatticeQCD Error: no Observables specified\n";
29 for(
auto& obs : jsonFile[
"Observables"]){
30 if( !validateCoreObservables(obs)
33 std::cerr <<
"LatticeQCD Error: unknown Observable " 41 bool validateCoreObservables(std::string obs){
42 if(obs ==
"plaquette"){
45 else if(obs ==
"energydensity"){
48 else if(obs ==
"topologicalcharge"){
51 else if(obs ==
"superobs"){
57 void registerObservables(
App*& app){
58 for(
auto& obs : jsonFile[
"Observables"]){
59 registerCoreObservables(app, obs);
64 void registerCoreObservables(
App*& app, std::string obs){
75 if(obs ==
"superobs"){
Main include file for Observable derived classes.
Class to compute the plaquette, the energy density and the topological charge.
Contains the definition of the App prototype.
void addObservable(Observable *observable)
Adds a Observable class pointer to the vector of observables of the App.
Prototype for the App class group.