changa  3.5
 All Classes Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
parameters.h
1 #ifndef PARAMETERS_HINCLUDED
2 #define PARAMETERS_HINCLUDED
3 
4 #include "cosmo.h"
5 #include "cooling.h"
6 #include "starform.h"
7 #include "feedback.h"
8 #include "sinks.h"
9 
10 #include "externalGravity.h"
11 
14 typedef struct parameters {
15  /*
16  ** Parameters for ParallelGravity.
17  */
18  int bDoDensity;
19  int bDoGravity;
20  double dSoft;
21  int bPhysicalSoft; /* Use physical softening in comoving coords */
22  int bSoftMaxMul; /* dSoftMax is a multiplier, not an
23  absolute limit */
24  double dSoftMax;
25  int nSteps;
26  int iStartStep;
27  int iWallRunTime;
28  double dDelta;
29  int bEpsAccStep;
30  int bGravStep;
31  double dEta;
32  int nTruncateRung;
33  int iMaxRung;
34  int bCannonical;
35  int bKDK;
36  int bDtAdjust;
37  int bPeriodic;
38  int nReplicas;
39  double fPeriod;
40  Vector3D<double> vPeriod;
41  int bEwald;
42  double dEwCut;
43  double dEwhCut;
44  double dTheta;
45  double dTheta2;
46  double daSwitchTheta;
47  int iOrder;
48  int bConcurrentSph;
49  double dFracNoDomainDecomp;
50 #ifdef PUSH_GRAVITY
51  double dFracPushParticles;
52 #endif
53  CSM csm; /* cosmo parameters */
54  double dRedTo;
55  double dGlassDamper;
56  /*
57  * GrowMass parameters
58  */
59  int bDynGrowMass;
60  int nGrowMass;
61  double dGrowDeltaM;
62  double dGrowStartT;
63  double dGrowEndT;
64  /*
65  * Gas parameters
66  * Units: set by dMsolUnit and dKpcUnit
67  */
68  int bDoGas;
69  int bGeometric;
70  int bBulkViscosity;
71  int bGasAdiabatic;
72  int bGasIsothermal;
73  int bGasCooling;
74  int nSmooth;
75  COOLPARAM CoolParam;
76  double dMaxEnergy;
77  double dhMinOverSoft;
78  double dResolveJeans;
79  double dMsolUnit;
80  double dKpcUnit;
81  double ddHonHLimit;
82  double dGasConst;
83  double dConstAlpha;
84  double dConstBeta;
85  double dConstAlphaMax;
86  double dConstGamma;
87  double dMeanMolWeight;
88  double dErgPerGmUnit;
89  double dGmPerCcUnit;
90  double dSecUnit;
91  double dComovingGmPerCcUnit;
92  double dThermalDiffusionCoeff;
93  double dMetalDiffusionCoeff;
94  int bConstantDiffusion;
95  int bSphStep;
96  int bFastGas;
97  double dFracFastGas;
98  int bViscosityLimiter;
99  int iViscosityLimiter;
100  int bViscosityLimitdt;
101  double dEtaCourant;
102  double dEtaDiffusion;
103  double dEtauDot;
104  int bStarForm;
105  Stfm *stfm;
106  int bFeedback;
107  Fdbk *feedback;
108  double dThermalCondCoeff;
109  double dThermalCondSatCoeff;
110  double dThermalCond2Coeff;
111  double dThermalCond2SatCoeff;
112  double dThermalCondCoeffCode;
113  double dThermalCond2CoeffCode;
114  double dEvapMinTemp;
115  double dEvapCoeff;
116  double dEvapCoeffCode;
117  int bDoExternalGravity;
118  ExternalGravity externalGravity;
119  int iRandomSeed;
120 
121  Sinks sinks;
122 
123  //SIDM
124  int iSIDMSelect;
125  double dSIDMSigma;
126  double dSIDMVariable;
127 
128  //
129  // Output parameters
130  //
131  int bStandard;
132  int bDoublePos;
133  int bDoubleVel;
134  int bOverwrite;
135  int bParaRead;
136  int bParaWrite;
137  int nIOProcessor;
138  char achInFile[256];
139  char achOutName[256];
140  int bStaticTest;
141  int bBenchmark;
142  int iBinaryOut;
143  int iOutInterval;
144  int iCheckInterval;
145  int iLogInterval;
146  int iOrbitOutInterval;
147  int bDoIOrderOutput;
148  int bDoSoftOutput;
149  int bDohOutput;
150  int bDoCSound;
151  int bDoStellarLW;
152  int cacheLineDepth;
153  double dExtraStore;
154  double dMaxBalance;
155  double dFracLoadBalance;
156  double dDumpFrameStep;
157  double dDumpFrameTime;
158  int iDirector;
159  int bLiveViz;
160  int bUseCkLoopPar;
161  int iVerbosity;
162  } Parameters;
163 
164 inline void operator|(PUP::er &p, Parameters &param) {
165  p|param.bDoDensity;
166  p|param.bDoGravity;
167  p|param.dSoft;
168  p|param.bPhysicalSoft;
169  p|param.bSoftMaxMul;
170  p|param.dSoftMax;
171  p|param.nSteps;
172  p|param.iStartStep;
173  p|param.iWallRunTime;
174  p|param.dDelta;
175  p|param.bEpsAccStep;
176  p|param.bGravStep;
177  p|param.dEta;
178  p|param.nTruncateRung;
179  p|param.iMaxRung;
180  p|param.bCannonical;
181  p|param.bKDK;
182  p|param.bDtAdjust;
183  p|param.bPeriodic;
184  p|param.nReplicas;
185  p|param.fPeriod;
186  p|param.vPeriod;
187  p|param.bEwald;
188  p|param.dEwCut;
189  p|param.dEwhCut;
190  p|param.dTheta;
191  p|param.dTheta2;
192  p|param.daSwitchTheta;
193  p|param.iOrder;
194  p|param.bConcurrentSph;
195  p|param.dFracNoDomainDecomp;
196 #ifdef PUSH_GRAVITY
197  p|param.dFracPushParticles;
198 #endif
199  if(p.isUnpacking())
200  csmInitialize(&param.csm);
201  p|*param.csm;
202  p|param.dGlassDamper;
203  p|param.dRedTo;
204  p|param.bDynGrowMass;
205  p|param.nGrowMass;
206  p|param.dGrowDeltaM;
207  p|param.dGrowStartT;
208  p|param.dGrowEndT;
209  p|param.bDoGas;
210  p|param.bGeometric;
211  p|param.bBulkViscosity;
212  p|param.bGasAdiabatic;
213  p|param.bGasIsothermal;
214  p|param.bGasCooling;
215  p|param.nSmooth;
216  p((char *)&param.CoolParam, sizeof(param.CoolParam));
217  p|param.bFastGas;
218  p|param.dFracFastGas;
219  p|param.bViscosityLimiter;
220  p|param.iViscosityLimiter;
221  p|param.dMaxEnergy;
222  p|param.dhMinOverSoft;
223  p|param.dResolveJeans;
224  p|param.dMsolUnit;
225  p|param.dKpcUnit;
226  p|param.ddHonHLimit;
227  p|param.dGasConst;
228  p|param.dConstAlpha;
229  p|param.dConstBeta;
230  p|param.dConstAlphaMax;
231  p|param.dConstGamma;
232  p|param.dMeanMolWeight;
233  p|param.dErgPerGmUnit;
234  p|param.dGmPerCcUnit;
235  p|param.dSecUnit;
236  p|param.dComovingGmPerCcUnit;
237  p|param.dThermalDiffusionCoeff;
238  p|param.dMetalDiffusionCoeff;
239  p|param.bConstantDiffusion;
240  p|param.bSphStep;
241  p|param.bViscosityLimitdt;
242  p|param.dEtaCourant;
243  p|param.dEtaDiffusion;
244  p|param.dEtauDot;
245  p|param.bStarForm;
246  if(p.isUnpacking())
247  param.stfm = new Stfm();
248  p|*param.stfm;
249  p|param.bFeedback;
250  p|param.feedback;
251  p|param.dThermalCondCoeff;
252  p|param.dThermalCondSatCoeff;
253  p|param.dThermalCond2Coeff;
254  p|param.dThermalCond2SatCoeff;
255  p|param.dThermalCondCoeffCode;
256  p|param.dThermalCond2CoeffCode;
257  p|param.dEvapMinTemp;
258  p|param.dEvapCoeff;
259  p|param.dEvapCoeffCode;
260  p|param.bDoExternalGravity;
261  p|param.externalGravity;
262  p|param.iRandomSeed;
263  p|param.sinks;
264  p|param.dSIDMSigma;
265  p|param.iSIDMSelect;
266  p|param.dSIDMVariable;
267  p|param.bStandard;
268  p|param.bDoublePos;
269  p|param.bDoubleVel;
270  p|param.bOverwrite;
271  p|param.bParaRead;
272  p|param.bParaWrite;
273  p|param.nIOProcessor;
274  p(param.achInFile, 256);
275  p(param.achOutName, 256);
276  p|param.bStaticTest;
277  p|param.bBenchmark;
278  p|param.iBinaryOut;
279  p|param.iOutInterval;
280  p|param.iCheckInterval;
281  p|param.iLogInterval;
282  p|param.iOrbitOutInterval;
283  p|param.bDoIOrderOutput;
284  p|param.bDoSoftOutput;
285  p|param.bDohOutput;
286  p|param.bDoCSound;
287  p|param.bDoStellarLW;
288  p|param.cacheLineDepth;
289  p|param.dExtraStore;
290  p|param.dMaxBalance;
291  p|param.dFracLoadBalance;
292  p|param.dDumpFrameStep;
293  p|param.dDumpFrameTime;
294  p|param.iDirector;
295  p|param.bLiveViz;
296  p|param.bUseCkLoopPar;
297  p|param.iVerbosity;
298  }
299 
300 #endif
Input parameters for cooling.
Definition: cooling_boley.h:56
Parameters and methods to implement star formation.
Definition: starform.h:10
Hold parameters of the run.
Definition: parameters.h:14
External gravity parameters and routines.
Definition: externalGravity.h:7
Definition: sinks.h:4
Cosmological parameters.
Definition: cosmo.h:10
Stellar/Supernova feedback parameters and routines.
Definition: feedback.h:45