changa  3.5
 All Classes Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
sinks.h
1 #ifndef SINKS_HINCLUDED
2 #define SINKS_HINCLUDED
3 
4 class Sinks
5 {
6  //
7  // Sink parameters
8  //
9  public:
10  int bDoSinks;
11  int bBHSink;
12  int bSmallBHSmooth;
13  int bBHTurnOffCooling;
14  int bDoBHKick;
15  double dDeltaStarForm;
16  double dKmPerSecUnit;
17  double dBHSinkEddEff;
18  double dBHSinkFeedbackEff;
19  double dBHSinkAlpha;
20  double dBHSinkEddFactor;
21  double dBHSinkFeedbackFactor;
22  int bBHMindv;
23  int bBHAccreteAll;
24  int bDoSinksAtStart;
25  int bSinkThermal;
26  double dSinkRadius;
27  double dSinkBoundOrbitRadius;
28  double dSinkMustAccreteRadius;
29  double dDeltaSink;
30  double dSinkCurrentDelta;
31  double dSinkMassMin;
32  int iSinkRung;
33  int iSinkCurrentRung;
34  int bSinkForm;
35  int nJeans;
36  double dJeansConstant;
37  int bSinkFormJeans;
38  int bSinkFormDivV;
39  double dSinkFormDivVCoeff;
40  int bSinkFormDivAcc;
41  double dSinkFormDivAccCoeff;
42  int bSinkFormDV;
43  int bSinkFormPotMin;
44  double dSinkFormDensity;
45  double dSinkTimeEligible;
46  int bSinkFormSimple;
47  int nSinkFormMin;
48  public:
49  void AddParams(PRM prm, struct parameters &param);
50  void CheckParams(PRM prm, struct parameters &param);
51  inline void pup(PUP::er &p);
52  };
53 
54 inline void Sinks::pup(PUP::er &p) {
55  p|bDoSinks;
56  p|bBHSink;
57  p|bSmallBHSmooth;
58  p|bBHTurnOffCooling;
59  p|bDoBHKick;
60  p|dDeltaStarForm;
61  p|dKmPerSecUnit;
62  p|dBHSinkEddEff;
63  p|dBHSinkFeedbackEff;
64  p|dBHSinkAlpha;
65  p|dBHSinkEddFactor;
66  p|dBHSinkFeedbackFactor;
67  p|bBHMindv;
68  p|bBHAccreteAll;
69  p|bDoSinksAtStart;
70  p|bSinkThermal;
71  p|dSinkRadius;
72  p|dSinkBoundOrbitRadius;
73  p|dSinkMustAccreteRadius;
74  p|dDeltaSink;
75  p|dSinkCurrentDelta;
76  p|dSinkMassMin;
77  p|iSinkRung;
78  p|iSinkCurrentRung;
79  p|bSinkForm;
80  p|nJeans;
81  p|dJeansConstant;
82  p|bSinkFormJeans;
83  p|bSinkFormDivV;
84  p|dSinkFormDivVCoeff;
85  p|bSinkFormDivAcc;
86  p|dSinkFormDivAccCoeff;
87  p|bSinkFormDV;
88  p|bSinkFormPotMin;
89  p|dSinkFormDensity;
90  p|dSinkTimeEligible;
91  p|bSinkFormSimple;
92  p|nSinkFormMin;
93  }
94 
96 {
97  protected:
98  Sinks s;
99 
100  virtual void fcnSmooth(GravityParticle *p, int nSmooth,
101  pqSmoothNode *nList);
102  virtual int isSmoothActive(GravityParticle *p);
104  virtual void postTreeParticle(GravityParticle *p) {}
106  virtual void initSmoothCache(GravityParticle *p);
107  virtual void combSmoothCache(GravityParticle *p1,
109  public:
111  SinkFormTestSmoothParams(int _iType, int am, Sinks _s) {
112  iType = _iType;
113  activeRung = am;
114  s = _s;
115  bUseBallMax = 0;
116  }
117  PUPable_decl(SinkFormTestSmoothParams);
118  SinkFormTestSmoothParams(CkMigrateMessage *m) : SmoothParams(m) {}
119  virtual void pup(PUP::er &p) {
120  SmoothParams::pup(p);//Call base class
121  p|s;
122  }
123  };
124 
126 {
127  protected:
128  double dTime;
129  double a, H; // Cosmological parameters
130  Sinks s;
131 
132  virtual void fcnSmooth(GravityParticle *p, int nSmooth,
133  pqSmoothNode *nList);
134  virtual int isSmoothActive(GravityParticle *p);
135  virtual void initTreeParticle(GravityParticle *p) {}
136  virtual void postTreeParticle(GravityParticle *p) {}
138  virtual void initSmoothCache(GravityParticle *p) {}
139  virtual void combSmoothCache(GravityParticle *p1,
141  public:
143  SinkFormSmoothParams(int _iType, int am, CSM csm, double _dTime,
144  Sinks _s) {
145  iType = _iType;
146  activeRung = am;
147  dTime = _dTime;
148  if(csm->bComove) {
149  H = csmTime2Hub(csm,dTime);
150  a = csmTime2Exp(csm,dTime);
151  }
152  else {
153  H = 0.0;
154  a = 1.0;
155  }
156  s = _s;
157  bUseBallMax = 0;
158  }
159  PUPable_decl(SinkFormSmoothParams);
160  SinkFormSmoothParams(CkMigrateMessage *m) : SmoothParams(m) {}
161  virtual void pup(PUP::er &p) {
162  SmoothParams::pup(p);//Call base class
163  p|dTime;
164  p|a;
165  p|H;
166  p|s;
167  }
168  };
169 
171 {
172  protected:
173  double dTime;
174  double dDelta;
175  double a, H; // Cosmological parameters
176  Sinks s;
177 
178  virtual void fcnSmooth(GravityParticle *p, int nSmooth,
179  pqSmoothNode *nList);
180  virtual int isSmoothActive(GravityParticle *p);
181  virtual void initTreeParticle(GravityParticle *p);
182  virtual void postTreeParticle(GravityParticle *p) {}
183  virtual void initSmoothParticle(GravityParticle *p) {}
184  virtual void initSmoothCache(GravityParticle *p);
185  virtual void combSmoothCache(GravityParticle *p1,
187  public:
189  BHDensitySmoothParams(int _iType, int am, CSM csm, double _dTime,
190  double _dDelta, Sinks _s) {
191  iType = _iType;
192  activeRung = am;
193  dTime = _dTime;
194  dDelta = _dDelta;
195  if(csm->bComove) {
196  H = csmTime2Hub(csm,dTime);
197  a = csmTime2Exp(csm,dTime);
198  }
199  else {
200  H = 0.0;
201  a = 1.0;
202  }
203  s = _s;
204  }
205  PUPable_decl(BHDensitySmoothParams);
206  BHDensitySmoothParams(CkMigrateMessage *m) : SmoothParams(m) {}
207  virtual void pup(PUP::er &p) {
208  SmoothParams::pup(p);//Call base class
209  p|dTime;
210  p|dDelta;
211  p|a;
212  p|H;
213  p|s;
214  }
215  };
216 
218 {
219  protected:
220  double a, H; // Cosmological parameters
221  double dTime;
223  double dDelta;
224  Sinks s;
225  double gamma; // Adiabatic index for pressure
226  double dMinGasMass;
227 
228  virtual void fcnSmooth(GravityParticle *p, int nSmooth,
229  pqSmoothNode *nList);
230  virtual int isSmoothActive(GravityParticle *p);
231  virtual void initTreeParticle(GravityParticle *p);
232  virtual void postTreeParticle(GravityParticle *p);
234  virtual void initSmoothCache(GravityParticle *p);
235  virtual void combSmoothCache(GravityParticle *p1,
237  public:
239  BHAccreteSmoothParams(int _iType, int am, CSM csm, double _dTime,
240  double _dDelta, Sinks _s, double _gamma,
241  double _dMinGasMass) {
242  iType = _iType;
243  activeRung = am;
244  dTime = _dTime;
245  dDelta = _dDelta;
246  if(csm->bComove) {
247  H = csmTime2Hub(csm,dTime);
248  a = csmTime2Exp(csm,dTime);
249  }
250  else {
251  H = 0.0;
252  a = 1.0;
253  }
254  s = _s;
255  gamma = _gamma;
256  dMinGasMass = _dMinGasMass;
257  }
258  PUPable_decl(BHAccreteSmoothParams);
259  BHAccreteSmoothParams(CkMigrateMessage *m) : SmoothParams(m) {}
260  virtual void pup(PUP::er &p) {
261  SmoothParams::pup(p);//Call base class
262  p|a;
263  p|H;
264  p|dTime;
265  p|dDelta;
266  p|s;
267  p|gamma;
268  p|dMinGasMass;
269  }
270  };
271 
273 {
274  protected:
275  double a, H; // Cosmological parameters
276 
277  virtual void fcnSmooth(GravityParticle *p, int nSmooth,
278  pqSmoothNode *nList);
279  virtual int isSmoothActive(GravityParticle *p);
280  virtual void initTreeParticle(GravityParticle *p) {}
281  virtual void postTreeParticle(GravityParticle *p) {}
283  virtual void initSmoothCache(GravityParticle *p);
284  virtual void combSmoothCache(GravityParticle *p1,
286  public:
288  BHIdentifySmoothParams(int _iType, int am, CSM csm, double dTime,
289  Sinks _s) {
290  iType = _iType;
291  activeRung = am;
292  if(csm->bComove) {
293  H = csmTime2Hub(csm,dTime);
294  a = csmTime2Exp(csm,dTime);
295  }
296  else {
297  H = 0.0;
298  a = 1.0;
299  }
300  }
301  PUPable_decl(BHIdentifySmoothParams);
302  BHIdentifySmoothParams(CkMigrateMessage *m) : SmoothParams(m) {}
303  virtual void pup(PUP::er &p) {
304  SmoothParams::pup(p);//Call base class
305  p|a;
306  p|H;
307  }
308  };
309 
311 {
312  protected:
313  double a, H; // Cosmological parameters
314  double dTime;
315  Sinks s;
316 
317  virtual void fcnSmooth(GravityParticle *p, int nSmooth,
318  pqSmoothNode *nList);
319  virtual int isSmoothActive(GravityParticle *p);
320  virtual void initTreeParticle(GravityParticle *p) {}
321  virtual void postTreeParticle(GravityParticle *p) {}
323  virtual void initSmoothCache(GravityParticle *p) {}
324  virtual void combSmoothCache(GravityParticle *p1,
326 
327  public:
329  BHSinkMergeSmoothParams(int _iType, int am, CSM csm, double _dTime,
330  Sinks _s, double _gamma) {
331  iType = _iType;
332  activeRung = am;
333  dTime = _dTime;
334  if(csm->bComove) {
335  H = csmTime2Hub(csm,dTime);
336  a = csmTime2Exp(csm,dTime);
337  }
338  else {
339  H = 0.0;
340  a = 1.0;
341  }
342  s = _s;
343  }
344  PUPable_decl(BHSinkMergeSmoothParams);
345  BHSinkMergeSmoothParams(CkMigrateMessage *m) : SmoothParams(m) {}
346  virtual void pup(PUP::er &p) {
347  SmoothParams::pup(p);//Call base class
348  p|a;
349  p|H;
350  p|dTime;
351  p|s;
352  }
353  };
354 
356 {
357  protected:
358  Sinks s;
359 
360  virtual void fcnSmooth(GravityParticle *p, int nSmooth,
361  pqSmoothNode *nList);
362  virtual int isSmoothActive(GravityParticle *p);
363  virtual void initTreeParticle(GravityParticle *p) {}
364  virtual void postTreeParticle(GravityParticle *p) {}
365  virtual void initSmoothParticle(GravityParticle *p) {}
366  virtual void initSmoothCache(GravityParticle *p);
367  virtual void combSmoothCache(GravityParticle *p1,
369  public:
371  SinkAccreteTestSmoothParams(int _iType, int am, double dTime,
372  Sinks _s) {
373  iType = _iType;
374  activeRung = am;
375  s = _s;
376  bUseBallMax = 0;
377  }
378  PUPable_decl(SinkAccreteTestSmoothParams);
379  SinkAccreteTestSmoothParams(CkMigrateMessage *m) : SmoothParams(m) {}
380  virtual void pup(PUP::er &p) {
381  SmoothParams::pup(p);//Call base class
382  p|s;
383  }
384  };
385 
387 {
388  protected:
389  Sinks s;
390 
391  virtual void fcnSmooth(GravityParticle *p, int nSmooth,
392  pqSmoothNode *nList);
393  virtual int isSmoothActive(GravityParticle *p);
394  virtual void initTreeParticle(GravityParticle *p) {}
395  virtual void postTreeParticle(GravityParticle *p) {}
397  virtual void initSmoothCache(GravityParticle *p) {}
399  ExternalSmoothParticle *p2) {}
400  public:
402  SinkingAverageSmoothParams(int _iType, int am, double dTime,
403  Sinks _s) {
404  iType = _iType;
405  activeRung = am;
406  s = _s;
407  }
408  PUPable_decl(SinkingAverageSmoothParams);
409  SinkingAverageSmoothParams(CkMigrateMessage *m) : SmoothParams(m) {}
410  virtual void pup(PUP::er &p) {
411  SmoothParams::pup(p);//Call base class
412  p|s;
413  }
414  };
415 
417 {
418  protected:
419  Sinks s;
420 
421  virtual void fcnSmooth(GravityParticle *p, int nSmooth,
422  pqSmoothNode *nList);
423  virtual int isSmoothActive(GravityParticle *p);
424  virtual void initTreeParticle(GravityParticle *p) {}
425  virtual void postTreeParticle(GravityParticle *p) {}
427  virtual void initSmoothCache(GravityParticle *p);
428  virtual void combSmoothCache(GravityParticle *p1,
430  public:
432  SinkAccreteSmoothParams(int _iType, int am, double dTime,
433  Sinks _s) {
434  iType = _iType;
435  activeRung = am;
436  s = _s;
437  bUseBallMax = 0;
438  }
439  PUPable_decl(SinkAccreteSmoothParams);
440  SinkAccreteSmoothParams(CkMigrateMessage *m) : SmoothParams(m) {}
441  virtual void pup(PUP::er &p) {
442  SmoothParams::pup(p);//Call base class
443  p|s;
444  }
445  };
446 #endif
Class for cross processor data needed for smooth operations.
Definition: GravityParticle.h:568
virtual int isSmoothActive(GravityParticle *p)
Particle is doing a neighbor search.
Definition: sinks.cpp:1928
virtual void pup(PUP::er &p)
required method for remote entry call.
Definition: sinks.h:380
virtual void combSmoothCache(GravityParticle *p1, ExternalSmoothParticle *p2)
combine cache copy with home particle
Definition: sinks.cpp:477
virtual void postTreeParticle(GravityParticle *p)
calculation on all tree particles after all walks are done
Definition: sinks.h:364
virtual void initSmoothCache(GravityParticle *p)
initialize particles as they come into the cache
Definition: sinks.cpp:1239
virtual void postTreeParticle(GravityParticle *p)
calculation on all tree particles after all walks are done
Definition: sinks.h:182
virtual void initSmoothParticle(GravityParticle *p)
initialize particles to be smoothed
Definition: sinks.h:322
virtual void initSmoothCache(GravityParticle *p)
initialize particles as they come into the cache
Definition: sinks.cpp:979
virtual void postTreeParticle(GravityParticle *p)
calculation on all tree particles after all walks are done
Definition: sinks.h:425
virtual void initSmoothParticle(GravityParticle *p)
initialize particles to be smoothed
Definition: sinks.h:233
virtual void initTreeParticle(GravityParticle *p)
initialize particles in tree but not smoothed
Definition: sinks.cpp:1228
virtual void pup(PUP::er &p)
required method for remote entry call.
Definition: sinks.h:260
Hold parameters of the run.
Definition: parameters.h:14
virtual int isSmoothActive(GravityParticle *p)
Particle is doing a neighbor search.
Definition: sinks.cpp:1221
virtual void initSmoothCache(GravityParticle *p)
initialize particles as they come into the cache
Definition: sinks.h:397
virtual void initSmoothParticle(GravityParticle *p)
initialize particles to be smoothed
Definition: sinks.h:365
virtual void pup(PUP::er &p)
required method for remote entry call.
Definition: sinks.h:303
virtual void fcnSmooth(GravityParticle *p, int nSmooth, pqSmoothNode *nList)
Function to apply to smooth particle and neighbors.
Definition: sinks.cpp:1898
virtual void initSmoothParticle(GravityParticle *p)
initialize particles to be smoothed
Definition: sinks.h:282
virtual void pup(PUP::er &p)
required method for remote entry call.
Definition: sinks.h:441
virtual void pup(PUP::er &p)
required method for remote entry call.
Definition: sinks.h:119
virtual void combSmoothCache(GravityParticle *p1, ExternalSmoothParticle *p2)
combine cache copy with home particle
Definition: sinks.cpp:1782
virtual void initTreeParticle(GravityParticle *p)
initialize particles in tree but not smoothed
Definition: sinks.cpp:971
Definition: sinks.h:170
double dDelta
Big timestep to convert rungs into delta t.
Definition: sinks.h:223
void AddParams(PRM prm, struct parameters &param)
initialize parameters for sinks
Definition: sinks.cpp:28
int bUseBallMax
Definition: smoothparams.h:14
virtual void postTreeParticle(GravityParticle *p)
calculation on all tree particles after all walks are done
Definition: sinks.h:321
Definition: sinks.h:4
virtual void initSmoothParticle(GravityParticle *p)
initialize particles to be smoothed
Definition: sinks.h:105
virtual int isSmoothActive(GravityParticle *p)
Particle is doing a neighbor search.
Definition: sinks.cpp:1607
virtual void fcnSmooth(GravityParticle *p, int nSmooth, pqSmoothNode *nList)
Function to apply to smooth particle and neighbors.
Definition: sinks.cpp:1011
virtual void postTreeParticle(GravityParticle *p)
calculation on all tree particles after all walks are done
Definition: sinks.h:104
virtual void combSmoothCache(GravityParticle *p1, ExternalSmoothParticle *p2)
combine cache copy with home particle
Definition: sinks.cpp:569
virtual void postTreeParticle(GravityParticle *p)
calculation on all tree particles after all walks are done
Definition: sinks.cpp:1596
void CheckParams(PRM prm, struct parameters &param)
check sink parameters
Definition: sinks.cpp:161
Object containing the parameter information.
Definition: param.h:38
virtual void initSmoothParticle(GravityParticle *p)
initialize particles to be smoothed
Definition: sinks.h:426
virtual void initSmoothParticle(GravityParticle *p)
initialize particles to be smoothed
Definition: sinks.h:396
virtual void fcnSmooth(GravityParticle *p, int nSmooth, pqSmoothNode *nList)
Function to apply to smooth particle and neighbors.
Definition: sinks.cpp:491
Definition: sinks.h:355
Cosmological parameters.
Definition: cosmo.h:10
virtual void initTreeParticle(GravityParticle *p)
initialize particles in tree but not smoothed
Definition: sinks.h:363
Definition: sinks.h:272
virtual void postTreeParticle(GravityParticle *p)
calculation on all tree particles after all walks are done
Definition: sinks.h:395
virtual int isSmoothActive(GravityParticle *p)
Particle is doing a neighbor search.
Definition: sinks.cpp:1790
int iType
Particle type to smooth over; "TreeActive".
Definition: smoothparams.h:11
Object for priority queue entry.
Definition: smooth.h:12
Definition: sinks.h:310
virtual void fcnSmooth(GravityParticle *p, int nSmooth, pqSmoothNode *nList)
Function to apply to smooth particle and neighbors.
Definition: sinks.cpp:1681
virtual void postTreeParticle(GravityParticle *p)
calculation on all tree particles after all walks are done
Definition: sinks.h:136
virtual void pup(PUP::er &p)
required method for remote entry call.
Definition: sinks.h:161
virtual void combSmoothCache(GravityParticle *p1, ExternalSmoothParticle *p2)
combine cache copy with home particle
Definition: sinks.cpp:1251
virtual void initSmoothCache(GravityParticle *p)
initialize particles as they come into the cache
Definition: sinks.h:323
virtual void combSmoothCache(GravityParticle *p1, ExternalSmoothParticle *p2)
combine cache copy with home particle
Definition: sinks.cpp:1619
virtual void pup(PUP::er &p)
required method for remote entry call.
Definition: sinks.h:207
virtual void pup(PUP::er &p)
required method for remote entry call.
Definition: smoothparams.h:45
virtual int isSmoothActive(GravityParticle *p)
Particle is doing a neighbor search.
Definition: sinks.cpp:456
virtual void initSmoothParticle(GravityParticle *p)
initialize particles to be smoothed
Definition: sinks.h:137
virtual void initTreeParticle(GravityParticle *p)
initialize particles in tree but not smoothed
Definition: sinks.h:103
virtual void initSmoothCache(GravityParticle *p)
initialize particles as they come into the cache
Definition: sinks.cpp:468
virtual int isSmoothActive(GravityParticle *p)
Particle is doing a neighbor search.
Definition: sinks.cpp:1674
virtual void initSmoothParticle(GravityParticle *p)
initialize particles to be smoothed
Definition: sinks.h:183
A base class from which parameters for all smooth operations can be derived.
Definition: smoothparams.h:8
virtual void combSmoothCache(GravityParticle *p1, ExternalSmoothParticle *p2)
combine cache copy with home particle
Definition: sinks.h:398
virtual int isSmoothActive(GravityParticle *p)
Particle is doing a neighbor search.
Definition: sinks.cpp:1893
virtual void initTreeParticle(GravityParticle *p)
initialize particles in tree but not smoothed
Definition: sinks.h:135
virtual void combSmoothCache(GravityParticle *p1, ExternalSmoothParticle *p2)
combine cache copy with home particle
Definition: sinks.cpp:1944
virtual void pup(PUP::er &p)
required method for remote entry call.
Definition: sinks.h:410
virtual void fcnSmooth(GravityParticle *p, int nSmooth, pqSmoothNode *nList)
Function to apply to smooth particle and neighbors.
Definition: sinks.cpp:2009
virtual void initTreeParticle(GravityParticle *p)
initialize particles in tree but not smoothed
Definition: sinks.h:394
Definition: sinks.h:217
Definition: sinks.h:125
virtual void initSmoothCache(GravityParticle *p)
initialize particles as they come into the cache
Definition: sinks.cpp:1935
virtual void fcnSmooth(GravityParticle *p, int nSmooth, pqSmoothNode *nList)
Function to apply to smooth particle and neighbors.
Definition: sinks.cpp:1837
virtual void fcnSmooth(GravityParticle *p, int nSmooth, pqSmoothNode *nList)
Function to apply to smooth particle and neighbors.
Definition: sinks.cpp:1290
virtual void initSmoothCache(GravityParticle *p)
initialize particles as they come into the cache
Definition: sinks.cpp:1614
virtual void initTreeParticle(GravityParticle *p)
initialize particles in tree but not smoothed
Definition: sinks.h:320
virtual void initSmoothCache(GravityParticle *p)
initialize particles as they come into the cache
Definition: sinks.cpp:1804
Definition: sinks.h:386
virtual int isSmoothActive(GravityParticle *p)
Particle is doing a neighbor search.
Definition: sinks.cpp:964
int activeRung
Currently active rung.
Definition: smoothparams.h:12
Fundamental type for a particle.
Definition: GravityParticle.h:316
virtual void combSmoothCache(GravityParticle *p1, ExternalSmoothParticle *p2)
combine cache copy with home particle
Definition: sinks.cpp:989
virtual void initTreeParticle(GravityParticle *p)
initialize particles in tree but not smoothed
Definition: sinks.h:424
virtual void fcnSmooth(GravityParticle *p, int nSmooth, pqSmoothNode *nList)
Function to apply to smooth particle and neighbors.
Definition: sinks.cpp:578
virtual void initSmoothCache(GravityParticle *p)
initialize particles as they come into the cache
Definition: sinks.h:138
virtual void combSmoothCache(GravityParticle *p1, ExternalSmoothParticle *p2)
combine cache copy with home particle
Definition: sinks.cpp:1815
virtual void initTreeParticle(GravityParticle *p)
initialize particles in tree but not smoothed
Definition: sinks.h:280
Definition: sinks.h:416
virtual void pup(PUP::er &p)
required method for remote entry call.
Definition: sinks.h:346
virtual void fcnSmooth(GravityParticle *p, int nSmooth, pqSmoothNode *nList)
Function to apply to smooth particle and neighbors.
Definition: sinks.cpp:1626
virtual void postTreeParticle(GravityParticle *p)
calculation on all tree particles after all walks are done
Definition: sinks.h:281
Definition: sinks.h:95
virtual int isSmoothActive(GravityParticle *p)
Particle is doing a neighbor search.
Definition: sinks.cpp:562