API documentation
World.h
Go to the documentation of this file.
00001 00005 /* 00006 * JEMRIS Copyright (C) 2007-2010 Tony Stöcker, Kaveh Vahedipour 00007 * Forschungszentrum Jülich, Germany 00008 * 00009 * This program is free software; you can redistribute it and/or modify 00010 * it under the terms of the GNU General Public License as published by 00011 * the Free Software Foundation; either version 2 of the License, or 00012 * (at your option) any later version. 00013 * 00014 * This program is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00017 * GNU General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU General Public License 00020 * along with this program; if not, write to the Free Software 00021 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00022 */ 00023 00024 #ifndef WORLD_H_ 00025 #define WORLD_H_ 00026 00027 #include "Declarations.h" 00028 #include <string> 00029 #include <sstream> 00030 #include <iostream> 00031 #include <iomanip> 00032 #include <cstdlib> 00033 #include <fstream> 00034 00035 00036 using namespace std; 00037 00038 class AtomicSequence; 00039 00041 00042 class World { 00043 00044 public: 00045 00049 virtual ~World () { m_instance=0; }; 00050 00054 static World* instance (); 00055 00062 double ConcomitantField (double* G); 00063 00069 void SetNoOfPools (int n) {m_noofpools=1;}; 00070 00076 int GetNoOfPools () {return m_noofpools;}; 00077 00081 void (*saveEvolFunPtr)(long, bool) ; 00082 00083 void* solverSettings ; 00084 bool solverSuccess; 00086 long SpinNumber; 00087 long TotalSpinNumber; 00088 long TotalADCNumber; 00090 double* Values; 00091 double InitValues[NO_SPIN_PROPERTIES]; 00092 double time; 00093 double total_time; 00094 double phase; 00095 double PhaseLock; 00096 double deltaB; 00097 double solution[3]; 00099 double RandNoise; 00100 double GMAXoverB0; 00101 double NonLinGradField; 00103 //members for saving the magnetisation evolution of the spins 00104 int saveEvolStepSize; 00105 string saveEvolFileName; 00106 ofstream* saveEvolOfstream; 00108 AtomicSequence* pAtom; 00109 AtomicSequence* pStaticAtom; 00111 int m_myRank; 00112 bool m_useLoadBalancing; 00113 int m_no_processes; 00115 long m_startSpin; 00117 int m_noofpools; 00119 private: 00120 00124 World () {}; 00125 00126 static World* m_instance; 00128 }; 00129 00130 #endif /*WORLD_H_*/
