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