16class OutputParams :
public PUP::able
27 CkAbort(
"Undefined read of vector");
44 OutputParams() {
dm = NULL;}
47 virtual void pup(PUP::er &p) {
66 virtual double dValue(GravityParticle *p) {
return (p->isGas() ? p->uHot() : 0);}
67 virtual Vector3D<double>
vValue(GravityParticle *p)
68 {CkAssert(0);
return 0.0;}
69 virtual void setDValue(GravityParticle *p,
double val) {
73 virtual int64_t
iValue(GravityParticle *p) {CkAssert(0);
return 0.0;}
74 virtual void setIValue(GravityParticle *p, int64_t iValue) {CkAssert(0);}
76 uHotOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
77 bFloat = 1; bVector = 0; fileName = _fileName; iBinaryOut = _iBinaryOut;
78 sTipsyExt =
"uHot"; sNChilExt =
"uHot";
81 PUPable_decl(uHotOutputParams);
82 uHotOutputParams(CkMigrateMessage *m) {}
83 virtual void pup(PUP::er &p) {
91 virtual double dValue(GravityParticle *p) {
return (p->isGas() ? p->u() : 0);}
92 virtual Vector3D<double>
vValue(GravityParticle *p)
93 {CkAssert(0);
return 0.0;}
94 virtual void setDValue(GravityParticle *p,
double val) {
98 virtual int64_t
iValue(GravityParticle *p) {CkAssert(0);
return 0.0;}
99 virtual void setIValue(GravityParticle *p, int64_t iValue) {CkAssert(0);}
101 uOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
102 bFloat = 1; bVector = 0; fileName = _fileName; iBinaryOut = _iBinaryOut;
103 sTipsyExt =
"u"; sNChilExt =
"u";
106 PUPable_decl(uOutputParams);
107 uOutputParams(CkMigrateMessage *m) {}
108 virtual void pup(PUP::er &p) {
109 OutputParams::pup(p);
117 virtual double dValue(GravityParticle *p) {
return (p->isGas() ? p->massHot() : 0);}
118 virtual Vector3D<double>
vValue(GravityParticle *p)
119 {CkAssert(0);
return 0.0;}
120 virtual void setDValue(GravityParticle *p,
double val) {
124 virtual int64_t
iValue(GravityParticle *p) {CkAssert(0);
return 0.0;}
125 virtual void setIValue(GravityParticle *p, int64_t iValue) {CkAssert(0);}
126 MassHotOutputParams() {}
127 MassHotOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
129 bVector = 0; fileName = _fileName; iBinaryOut = _iBinaryOut;
130 sTipsyExt =
"massHot"; sNChilExt =
"massHot";
133 PUPable_decl(MassHotOutputParams);
134 MassHotOutputParams(CkMigrateMessage *m) {}
135 virtual void pup(PUP::er &p) {
136 OutputParams::pup(p);
146 virtual double dValue(GravityParticle *p) {
147 if (!
TYPETest(p, TYPE_GAS))
return 0.0;
149 double x = p->massHot()/p->mass;
151 return CoolCodeEnergyToTemperature(dm->Cool, &p->CoolParticle(),
152 x*p->uHot()+(1-x)*p->u(),
153#ifdef COOLING_GRACKLE
161 return duTFac*p->u();
163 virtual Vector3D<double>
vValue(GravityParticle *p)
164 {CkAssert(0);
return 0.0;}
165 virtual void setDValue(GravityParticle *p,
double val) {CkAssert(0);}
166 virtual int64_t
iValue(GravityParticle *p) {CkAssert(0);
return 0.0;}
167 virtual void setIValue(GravityParticle *p, int64_t iValue) {CkAssert(0);}
168 TempEffOutputParams() {}
169 TempEffOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime,
170 bool _bGasCooling,
double _duTFac) {
171 bFloat = 1; bVector = 0; fileName = _fileName; iBinaryOut = _iBinaryOut;
172 sTipsyExt =
"tempEff"; sNChilExt =
"temperatureEff";
173 dTime = _dTime; bGasCooling = _bGasCooling; duTFac = _duTFac;
175 PUPable_decl(TempEffOutputParams);
176 TempEffOutputParams(CkMigrateMessage *m) {}
177 virtual void pup(PUP::er &p) {
178 OutputParams::pup(p);
185class MassOutputParams :
public OutputParams
190 {CkAssert(0);
return 0.0;}
195 MassOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
200 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
201 PUPable_decl(MassOutputParams);
202 MassOutputParams(CkMigrateMessage *m) {}
203 virtual void pup(PUP::er &p) {
204 OutputParams::pup(p);
209class PosOutputParams :
public OutputParams
214 {
return p->position;}
221 PosOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
226 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
227 PUPable_decl(PosOutputParams);
228 PosOutputParams(CkMigrateMessage *m) {}
229 virtual void pup(PUP::er &p) {
230 OutputParams::pup(p);
235class VelOutputParams :
public OutputParams
241 {
return dVFac*p->velocity;}
244 {p->velocity = val/dVFac;}
248 VelOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime,
253 dTime = _dTime; dVFac = _dVFac;
254 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
255 PUPable_decl(VelOutputParams);
256 VelOutputParams(CkMigrateMessage *m) {}
257 virtual void pup(PUP::er &p) {
258 OutputParams::pup(p);
264class PotOutputParams :
public OutputParams
269 {CkAssert(0);
return 0.0;}
274 PotOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
279 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
280 PUPable_decl(PotOutputParams);
281 PotOutputParams(CkMigrateMessage *m) {}
282 virtual void pup(PUP::er &p) {
283 OutputParams::pup(p);
293 virtual double dValue(GravityParticle *p) {CkAssert(0);
return 0.0;}
294 virtual Vector3D<double>
vValue(GravityParticle *p)
296 virtual void setDValue(GravityParticle *p,
double val) {CkAssert(0);}
297 virtual void setVValue(GravityParticle *p, Vector3D<double> val)
299 virtual int64_t
iValue(GravityParticle *p) {CkAssert(0);
return 0.0;}
300 virtual void setIValue(GravityParticle *p, int64_t iValue) {CkAssert(0);}
301 SpinOutputParams() {}
302 SpinOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
304 bVector = 1; fileName = _fileName; iBinaryOut = _iBinaryOut;
305 sTipsyExt =
"spin"; sNChilExt =
"spin";
308 PUPable_decl(SpinOutputParams);
309 SpinOutputParams(CkMigrateMessage *m) {}
310 virtual void pup(PUP::er &p) {
311 OutputParams::pup(p);
317class GasDenOutputParams :
public OutputParams
322 {CkAssert(0);
return 0.0;}
327 GasDenOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
333 PUPable_decl(GasDenOutputParams);
334 GasDenOutputParams(CkMigrateMessage *m) {}
335 virtual void pup(PUP::er &p) {
336 OutputParams::pup(p);
341class TempOutputParams :
public OutputParams
349#ifdef COOLING_GRACKLE
350 return CoolCodeEnergyToTemperature(
dm->Cool, &p->CoolParticle(),
351 p->u(), p->fDensity, p->fMetals());
353 return CoolCodeEnergyToTemperature(
dm->Cool, &p->CoolParticle(),
354 p->u(), p->fMetals());
360 return duTFac*p->u();
363 {CkAssert(0);
return 0.0;}
368 TempOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime,
369 bool _bGasCooling,
double _duTFac) {
373 dTime = _dTime; bGasCooling = _bGasCooling; duTFac = _duTFac;
375 PUPable_decl(TempOutputParams);
376 TempOutputParams(CkMigrateMessage *m) {}
377 virtual void pup(PUP::er &p) {
378 OutputParams::pup(p);
386class AccOutputParams :
public OutputParams
391 {
return p->treeAcceleration;}
394 {p->treeAcceleration = val;}
399 AccOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
404 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
405 PUPable_decl(AccOutputParams);
406 AccOutputParams(CkMigrateMessage *m) {}
407 virtual void pup(PUP::er &p) {
408 OutputParams::pup(p);
413class DenOutputParams :
public OutputParams
417 {CkAssert(0);
return 0.0;}
418 virtual void setDValue(
GravityParticle *p,
double val) {p->fDensity = val;}
420 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
424 DenOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
429 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
430 PUPable_decl(DenOutputParams);
431 DenOutputParams(CkMigrateMessage *m) {}
432 virtual void pup(PUP::er &p) {
433 OutputParams::pup(p);
438class HsmOutputParams :
public OutputParams
442 {CkAssert(0);
return 0.0;}
445 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
448 HsmOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
453 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
454 PUPable_decl(HsmOutputParams);
455 HsmOutputParams(CkMigrateMessage *m) {}
456 virtual void pup(PUP::er &p) {
457 OutputParams::pup(p);
462class SoftOutputParams :
public OutputParams
473 {CkAssert(0);
return 0.0;}
484 SoftOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
489 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
490 PUPable_decl(SoftOutputParams);
491 SoftOutputParams(CkMigrateMessage *m) {}
492 virtual void pup(PUP::er &p) {
493 OutputParams::pup(p);
498class PresOutputParams :
public OutputParams
503 return p->fDensity*p->fDensity*p->PoverRho2();
508 {CkAssert(0);
return 0.0;}
511 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
513 PresOutputParams() {}
515 PresOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
521 PUPable_decl(PresOutputParams);
522 PresOutputParams(CkMigrateMessage *m) {}
523 virtual void pup(PUP::er &p) {
524 OutputParams::pup(p);
529class AlphaOutputParams :
public OutputParams
535 return p->CullenAlpha();
541 {CkAssert(0);
return 0.0;}
545 p->CullenAlpha() = val;
549 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
551 AlphaOutputParams() {}
553 AlphaOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
559 PUPable_decl(AlphaOutputParams);
560 AlphaOutputParams(CkMigrateMessage *m) {}
561 virtual void pup(PUP::er &p) {
562 OutputParams::pup(p);
567class DvDsOutputParams :
public OutputParams
579 {CkAssert(0);
return 0.0;}
582 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
584 DvDsOutputParams() {}
586 DvDsOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
592 PUPable_decl(DvDsOutputParams);
593 DvDsOutputParams(CkMigrateMessage *m) {}
594 virtual void pup(PUP::er &p) {
595 OutputParams::pup(p);
601class DivVOutputParams :
public OutputParams
611 {CkAssert(0);
return 0.0;}
612 virtual void setDValue(
GravityParticle *p,
double val) {p->divv() = val;}
614 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
616 DivVOutputParams() {}
617 DivVOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
623 PUPable_decl(DivVOutputParams);
624 DivVOutputParams(CkMigrateMessage *m) {}
625 virtual void pup(PUP::er &p) {
626 OutputParams::pup(p);
631class PDVOutputParams :
public OutputParams
641 {CkAssert(0);
return 0.0;}
642 virtual void setDValue(
GravityParticle *p,
double val) {p->PdV() = val;}
644 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
648 PDVOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
654 PUPable_decl(PDVOutputParams);
655 PDVOutputParams(CkMigrateMessage *m) {}
656 virtual void pup(PUP::er &p) {
657 OutputParams::pup(p);
662class MuMaxOutputParams :
public OutputParams
672 {CkAssert(0);
return 0.0;}
673 virtual void setDValue(
GravityParticle *p,
double val) {p->mumax() = val;}
675 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
677 MuMaxOutputParams() {}
679 MuMaxOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
685 PUPable_decl(MuMaxOutputParams);
686 MuMaxOutputParams(CkMigrateMessage *m) {}
687 virtual void pup(PUP::er &p) {
688 OutputParams::pup(p);
693class BSwOutputParams :
public OutputParams
698 return p->BalsaraSwitch();
703 {CkAssert(0);
return 0.0;}
704 virtual void setDValue(
GravityParticle *p,
double val) {p->BalsaraSwitch() = val;}
706 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
709 BSwOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
715 PUPable_decl(BSwOutputParams);
716 BSwOutputParams(CkMigrateMessage *m) {}
717 virtual void pup(PUP::er &p) {
718 OutputParams::pup(p);
723class CsOutputParams :
public OutputParams
733 {CkAssert(0);
return 0.0;}
736 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
739 CsOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
745 PUPable_decl(CsOutputParams);
746 CsOutputParams(CkMigrateMessage *m) {}
747 virtual void pup(PUP::er &p) {
748 OutputParams::pup(p);
753class EDotOutputParams :
public OutputParams
758 CkAssert(
dm != NULL);
761 p->position.array_form(r);
762#ifdef COOLING_MOLECULARH
763 return (COOL_EDOT(
dm->Cool, &p->CoolParticle(), p->u(), p->fDensity, p->fMetals(), r, sqrt(0.25)*(p->
fBall)));
765 return (COOL_EDOT(
dm->Cool, &p->CoolParticle(), p->u(), p->fDensity, p->fMetals(), r));
773 {CkAssert(0);
return 0.0;}
776 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
778 EDotOutputParams() {}
780 EDotOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
786 PUPable_decl(EDotOutputParams);
787 EDotOutputParams(CkMigrateMessage *m) {}
788 virtual void pup(PUP::er &p) {
789 OutputParams::pup(p);
794class Cool0OutputParams :
public OutputParams
799 CkAssert(
dm != NULL);
801 return COOL_ARRAY0(
dm->Cool, &p->CoolParticle(), p->fMetals());
807 {CkAssert(0);
return 0.0;}
811 COOL_SET_ARRAY0(
dm->Cool, &p->CoolParticle(), p->fMetals(), val);
815 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
817 Cool0OutputParams() {}
818 Cool0OutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
826 PUPable_decl(Cool0OutputParams);
827 Cool0OutputParams(CkMigrateMessage *m) {}
828 virtual void pup(PUP::er &p) {
829 OutputParams::pup(p);
834class Cool1OutputParams :
public OutputParams
839 CkAssert(
dm != NULL);
841 return COOL_ARRAY1(
dm->Cool, &p->CoolParticle(), p->fMetals());
847 {CkAssert(0);
return 0.0;}
852 COOL_SET_ARRAY1(
dm->Cool, &p->CoolParticle(), p->fMetals(), val);
856 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
858 Cool1OutputParams() {}
859 Cool1OutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
867 PUPable_decl(Cool1OutputParams);
868 Cool1OutputParams(CkMigrateMessage *m) {}
869 virtual void pup(PUP::er &p) {
870 OutputParams::pup(p);
875class Cool2OutputParams :
public OutputParams
880 CkAssert(
dm != NULL);
882 return COOL_ARRAY2(
dm->Cool, &p->CoolParticle(), p->fMetals());
888 {CkAssert(0);
return 0.0;}
892 COOL_SET_ARRAY2(
dm->Cool, &p->CoolParticle(), p->fMetals(), val);
896 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
898 Cool2OutputParams() {}
899 Cool2OutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
907 PUPable_decl(Cool2OutputParams);
908 Cool2OutputParams(CkMigrateMessage *m) {}
909 virtual void pup(PUP::er &p) {
910 OutputParams::pup(p);
916class Cool3OutputParams :
public OutputParams
921#ifdef COOLING_MOLECULARH
922 CkAssert(
dm != NULL);
924 return COOL_ARRAY3(
dm->Cool, &p->CoolParticle(), p->fMetals());
928 return COOL_ARRAY3(
dm->Cool, &p->CoolParticle(), p->fMetals());
935 {CkAssert(0);
return 0.0;}
939#ifdef COOLING_MOLECULARH
940 COOL_SET_ARRAY3(
dm->Cool, &p->CoolParticle(), p->fMetals(), val);
947 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
949 Cool3OutputParams() {}
950 Cool3OutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
958 PUPable_decl(Cool3OutputParams);
959 Cool3OutputParams(CkMigrateMessage *m) {}
960 virtual void pup(PUP::er &p) {
961 OutputParams::pup(p);
965#ifdef COOLING_MOLECULARH
969 if (
TYPETest(p, TYPE_STAR))
return p->dStarLymanWerner();
970 if (
TYPETest(p, TYPE_GAS))
return p->CoolParticle().dLymanWerner;
973 virtual Vector3D<double>
vValue(GravityParticle *p)
974 {CkAssert(0);
return 0.0;}
975 virtual void setDValue(GravityParticle *p,
double val) {
976 if (
TYPETest(p, TYPE_STAR)) p->dStarLymanWerner() = val;
977 if (
TYPETest(p, TYPE_GAS)) p->CoolParticle().dLymanWerner = val;
979 virtual int64_t
iValue(GravityParticle *p) {CkAssert(0);
return 0.0;}
980 virtual void setIValue(GravityParticle *p, int64_t iValue) {CkAssert(0);}
983 LWOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
985 bVector = 0; fileName = _fileName; iBinaryOut = _iBinaryOut;
986 sTipsyExt =
"lw"; sNChilExt =
"lw";
988 iType = TYPE_GAS | TYPE_STAR; }
989 PUPable_decl(LWOutputParams);
990 LWOutputParams(CkMigrateMessage *m) {}
991 virtual void pup(PUP::er &p) {
992 OutputParams::pup(p);
999 virtual double dValue(GravityParticle *p) {
1000 if (
TYPETest(p, TYPE_STAR))
return p->fShieldForm();
1003 virtual Vector3D<double>
vValue(GravityParticle *p)
1004 {CkAssert(0);
return 0.0;}
1005 virtual void setDValue(GravityParticle *p,
double val) {
1006 if (
TYPETest(p, TYPE_STAR)) p->fShieldForm() = val;
1008 virtual int64_t
iValue(GravityParticle *p) {CkAssert(0);
return 0.0;}
1009 virtual void setIValue(GravityParticle *p, int64_t iValue) {CkAssert(0);}
1011 ShieldOutputParams() {}
1012 ShieldOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1014 bVector = 0; fileName = _fileName; iBinaryOut = _iBinaryOut;
1015 sTipsyExt =
"shieldform"; sNChilExt =
"shieldform";
1017 iType = TYPE_STAR; }
1018 PUPable_decl(ShieldOutputParams);
1019 ShieldOutputParams(CkMigrateMessage *m) {}
1020 virtual void pup(PUP::er &p) {
1021 OutputParams::pup(p);
1030class OxOutputParams :
public OutputParams
1033 if (
TYPETest(p, TYPE_STAR))
return p->fStarMFracOxygen();
1034 if (
TYPETest(p, TYPE_GAS))
return p->fMFracOxygen();
1038 {CkAssert(0);
return 0.0;}
1040 if (
TYPETest(p, TYPE_STAR)) p->fStarMFracOxygen() = val;
1041 if (
TYPETest(p, TYPE_GAS)) p->fMFracOxygen() = val;
1044 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1047 OxOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1052 iType = TYPE_GAS | TYPE_STAR; }
1053 PUPable_decl(OxOutputParams);
1054 OxOutputParams(CkMigrateMessage *m) {}
1055 virtual void pup(PUP::er &p) {
1056 OutputParams::pup(p);
1061class FeOutputParams :
public OutputParams
1064 if (
TYPETest(p, TYPE_STAR))
return p->fStarMFracIron();
1065 if (
TYPETest(p, TYPE_GAS))
return p->fMFracIron();
1069 {CkAssert(0);
return 0.0;}
1071 if (
TYPETest(p, TYPE_STAR)) p->fStarMFracIron() = val;
1072 if (
TYPETest(p, TYPE_GAS)) p->fMFracIron() = val;
1075 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1078 FeOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1083 iType = TYPE_GAS | TYPE_STAR; }
1084 PUPable_decl(FeOutputParams);
1085 FeOutputParams(CkMigrateMessage *m) {}
1086 virtual void pup(PUP::er &p) {
1087 OutputParams::pup(p);
1092class MetalsOutputParams :
public OutputParams
1095 if (
TYPETest(p, TYPE_STAR))
return p->fStarMetals();
1096 if (
TYPETest(p, TYPE_GAS))
return p->fMetals();
1100 {CkAssert(0);
return 0.0;}
1102 if (
TYPETest(p, TYPE_STAR)) p->fStarMetals() = val;
1103 if (
TYPETest(p, TYPE_GAS)) p->fMetals() = val;
1106 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1108 MetalsOutputParams() {}
1109 MetalsOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1114 iType = TYPE_GAS | TYPE_STAR; }
1115 PUPable_decl(MetalsOutputParams);
1116 MetalsOutputParams(CkMigrateMessage *m) {}
1117 virtual void pup(PUP::er &p) {
1118 OutputParams::pup(p);
1122class MetalsDotOutputParams :
public OutputParams
1126 if (p->isGas())
return p->fMetalsDot();
1132 {CkAssert(0);
return 0.0;}
1135 if (p->isGas()) p->fMetalsDot() = val;
1139 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1141 MetalsDotOutputParams() {}
1142 MetalsDotOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1148 PUPable_decl(MetalsDotOutputParams);
1149 MetalsDotOutputParams(CkMigrateMessage *m) {}
1150 virtual void pup(PUP::er &p) {
1151 OutputParams::pup(p);
1156class MFormOutputParams :
public OutputParams
1159 if (
TYPETest(p, TYPE_STAR))
return p->fMassForm();
1163 {CkAssert(0);
return 0.0;}
1165 if (
TYPETest(p, TYPE_STAR)) p->fMassForm() = val;
1168 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1170 MFormOutputParams() {}
1171 MFormOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1176 iType = TYPE_STAR; }
1177 PUPable_decl(MFormOutputParams);
1178 MFormOutputParams(CkMigrateMessage *m) {}
1179 virtual void pup(PUP::er &p) {
1180 OutputParams::pup(p);
1185class TimeFormOutputParams :
public OutputParams
1188 if (
TYPETest(p, TYPE_STAR))
return p->fTimeForm();
1192 {CkAssert(0);
return 0.0;}
1194 if (
TYPETest(p, TYPE_STAR)) p->fTimeForm() = val;
1197 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1199 TimeFormOutputParams() {}
1200 TimeFormOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1205 iType = TYPE_STAR; }
1206 PUPable_decl(TimeFormOutputParams);
1207 TimeFormOutputParams(CkMigrateMessage *m) {}
1208 virtual void pup(PUP::er &p) {
1209 OutputParams::pup(p);
1214class AgeOutputParams :
public OutputParams
1221 {CkAssert(0);
return 0.0;}
1226 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1228 AgeOutputParams() {}
1229 AgeOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1233 iType = TYPE_STAR; }
1234 PUPable_decl(AgeOutputParams);
1235 AgeOutputParams(CkMigrateMessage *m) {}
1236 virtual void pup(PUP::er &p) {
1237 OutputParams::pup(p);
1241class OxygenMassFracDotOutputParams :
public OutputParams
1245 if (p->isGas())
return p->fMFracOxygenDot();
1251 {CkAssert(0);
return 0.0;}
1254 if (p->isGas()) p->fMFracOxygenDot() = val;
1258 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1260 OxygenMassFracDotOutputParams() {}
1261 OxygenMassFracDotOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1267 PUPable_decl(OxygenMassFracDotOutputParams);
1268 OxygenMassFracDotOutputParams(CkMigrateMessage *m) {}
1269 virtual void pup(PUP::er &p) {
1270 OutputParams::pup(p);
1274class IronMassFracDotOutputParams :
public OutputParams
1278 if (p->isGas())
return p->fMFracIronDot();
1284 {CkAssert(0);
return 0.0;}
1287 if (p->isGas()) p->fMFracIronDot() = val;
1291 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1293 IronMassFracDotOutputParams() {}
1294 IronMassFracDotOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1300 PUPable_decl(IronMassFracDotOutputParams);
1301 IronMassFracDotOutputParams(CkMigrateMessage *m) {}
1302 virtual void pup(PUP::er &p) {
1303 OutputParams::pup(p);
1309class coolontimeOutputParams :
public OutputParams
1312 if (
TYPETest(p, TYPE_GAS))
return p->fTimeCoolIsOffUntil();
1316 {CkAssert(0);
return 0.0;}
1318 if (
TYPETest(p, TYPE_GAS)) p->fTimeCoolIsOffUntil() = val;
1321 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1323 coolontimeOutputParams() {}
1324 coolontimeOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1330 PUPable_decl(coolontimeOutputParams);
1331 coolontimeOutputParams(CkMigrateMessage *m) {}
1332 virtual void pup(PUP::er &p) {
1333 OutputParams::pup(p);
1338class ESNRateOutputParams :
public OutputParams
1341 if (p->isGas())
return p->fESNrate();
1342 else if(p->isStar())
return p->fStarESNrate();
1346 {CkAssert(0);
return 0.0;}
1348 if (p->isGas()) p->fESNrate() = val;
1349 else if(p->isStar()) p->fStarESNrate() = val;
1352 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1354 ESNRateOutputParams() {}
1355 ESNRateOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1360 iType = TYPE_GAS | TYPE_STAR; }
1361 PUPable_decl(ESNRateOutputParams);
1362 ESNRateOutputParams(CkMigrateMessage *m) {}
1363 virtual void pup(PUP::er &p) {
1364 OutputParams::pup(p);
1369class DtOutputParams :
public OutputParams
1380 {CkAssert(0);
return 0.0;}
1387 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1390 DtOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1395 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
1396 PUPable_decl(DtOutputParams);
1397 DtOutputParams(CkMigrateMessage *m) {}
1398 virtual void pup(PUP::er &p) {
1399 OutputParams::pup(p);
1404class KeyOutputParams :
public OutputParams
1411 {CkAssert(0);
return 0.0;}
1414 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1416 KeyOutputParams() {}
1417 KeyOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1422 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
1423 PUPable_decl(KeyOutputParams);
1424 KeyOutputParams(CkMigrateMessage *m) {}
1425 virtual void pup(PUP::er &p) {
1426 OutputParams::pup(p);
1431class DomainOutputParams :
public OutputParams
1435 return p->interMass;
1439 {CkAssert(0);
return 0.0;}
1442 virtual void setIValue(
GravityParticle *p, int64_t iValue) {CkAssert(0);}
1444 DomainOutputParams() {}
1446 DomainOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1451 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
1452 PUPable_decl(DomainOutputParams);
1453 DomainOutputParams(CkMigrateMessage *m) {}
1454 virtual void pup(PUP::er &p) {
1455 OutputParams::pup(p);
1460class iNSIDMOutputParams :
public OutputParams
1465 return p->iNSIDMInteractions;
1473 p->iNSIDMInteractions= iValue;
1477 virtual Vector3D<double> vValue(
GravityParticle *p) {CkAssert(0);
return 0.0;}
1480 iNSIDMOutputParams() {}
1481 iNSIDMOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1490 PUPable_decl(iNSIDMOutputParams);
1491 iNSIDMOutputParams(CkMigrateMessage *m) {}
1492 virtual void pup(PUP::er &p) {
1493 OutputParams::pup(p);
1498class IOrderOutputParams :
public OutputParams
1510 {CkAssert(0);
return 0.0;}
1513 IOrderOutputParams() {}
1514 IOrderOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1520 iType = TYPE_GAS | TYPE_DARK | TYPE_STAR; }
1521 PUPable_decl(IOrderOutputParams);
1522 IOrderOutputParams(CkMigrateMessage *m) {}
1523 virtual void pup(PUP::er &p) {
1524 OutputParams::pup(p);
1529class IGasOrderOutputParams :
public OutputParams
1534 return p->iGasOrder();
1538 return p->iSplitOrder();
1545 if(p->isStar()) p->iGasOrder() = iValue;
1549 {CkAssert(0);
return 0.0;}
1552 IGasOrderOutputParams() {}
1553 IGasOrderOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1559 iType = TYPE_STAR; }
1560 PUPable_decl(IGasOrderOutputParams);
1561 IGasOrderOutputParams(CkMigrateMessage *m) {}
1562 virtual void pup(PUP::er &p) {
1563 OutputParams::pup(p);
1568class RungOutputParams :
public OutputParams
1580 {CkAssert(0);
return 0.0;}
1583 RungOutputParams() {}
1584 RungOutputParams(std::string _fileName,
int _iBinaryOut,
double _dTime) {
1590 iType = TYPE_GAS| TYPE_DARK | TYPE_STAR; }
1591 PUPable_decl(RungOutputParams);
1592 RungOutputParams(CkMigrateMessage *m) {}
1593 virtual void pup(PUP::er &p) {
1594 OutputParams::pup(p);
int TYPETest(const GravityParticle *a, unsigned int b)
Test for a type flag.
Definition GravityParticle.h:606
int64_t ncGetCount(std::string typedir)
Definition InOutput.cpp:448
Output accelerations.
Definition InOutput.h:387
virtual Vector3D< double > vValue(GravityParticle *p)
Output data as a Vector3D of doubles.
Definition InOutput.h:390
virtual void setDValue(GravityParticle *p, double val)
Input data as a double.
Definition InOutput.h:392
virtual int64_t iValue(GravityParticle *p)
Output data as an int.
Definition InOutput.h:395
virtual void setIValue(GravityParticle *p, int64_t iValue)
Input data as an int.
Definition InOutput.h:396
virtual double dValue(GravityParticle *p)
Output data as a double.
Definition InOutput.h:389
virtual void setVValue(GravityParticle *p, Vector3D< double > val)
Input data as a Vector3D of doubles.
Definition InOutput.h:393
Definition DataManager.h:60
Output particle gas density.
Definition InOutput.h:318
virtual Vector3D< double > vValue(GravityParticle *p)
Output data as a Vector3D of doubles.
Definition InOutput.h:321
virtual void setDValue(GravityParticle *p, double val)
Input data as a double.
Definition InOutput.h:323
virtual void setIValue(GravityParticle *p, int64_t iValue)
Input data as an int.
Definition InOutput.h:325
virtual int64_t iValue(GravityParticle *p)
Output data as an int.
Definition InOutput.h:324
virtual double dValue(GravityParticle *p)
Output data as a double.
Definition InOutput.h:320
Fundamental type for a particle.
Definition GravityParticle.h:364
cosmoType fBall
Neighbor search radius for smoothing.
Definition GravityParticle.h:387
int rung
the current rung (greater means faster)
Definition GravityParticle.h:389
int64_t iOrder
Input order of particles; unique particle ID.
Definition GravityParticle.h:403
Output particle masses.
Definition InOutput.h:186
virtual Vector3D< double > vValue(GravityParticle *p)
Output data as a Vector3D of doubles.
Definition InOutput.h:189
virtual void setIValue(GravityParticle *p, int64_t iValue)
Input data as an int.
Definition InOutput.h:193
virtual double dValue(GravityParticle *p)
Output data as a double.
Definition InOutput.h:188
virtual void setDValue(GravityParticle *p, double val)
Input data as a double.
Definition InOutput.h:191
virtual int64_t iValue(GravityParticle *p)
Output data as an int.
Definition InOutput.h:192
Base class for output parameters.
Definition InOutput.h:17
int bFloat
Is a floating point number.
Definition InOutput.h:33
virtual void setDValue(GravityParticle *p, double d)=0
Input data as a double.
double dTime
Time of output.
Definition InOutput.h:36
unsigned int iType
mask of families containing this attribute
Definition InOutput.h:40
virtual Vector3D< double > vValue(GravityParticle *p)=0
Output data as a Vector3D of doubles.
std::string fileName
output file
Definition InOutput.h:37
std::string sNChilExt
file name for NChilada output
Definition InOutput.h:39
std::string sTipsyExt
Extension for tipsy output.
Definition InOutput.h:38
virtual int64_t iValue(GravityParticle *p)=0
Output data as an int.
DataManager * dm
For extra state information (e.g. cooling)
Definition InOutput.h:42
virtual double dValue(GravityParticle *p)=0
Output data as a double.
virtual void setIValue(GravityParticle *p, int64_t iValue)=0
Input data as an int.
int bVector
Is a vector, as opposed to a scalar.
Definition InOutput.h:34
unsigned int iTypeWriting
family being written in NC format
Definition InOutput.h:41
virtual void setVValue(GravityParticle *p, Vector3D< double > v)
Input data as a Vector3D of doubles.
Definition InOutput.h:26
int iBinaryOut
Type of binary output.
Definition InOutput.h:35
Output particle positions.
Definition InOutput.h:210
virtual void setDValue(GravityParticle *p, double val)
Input data as a double.
Definition InOutput.h:215
virtual double dValue(GravityParticle *p)
Output data as a double.
Definition InOutput.h:212
virtual Vector3D< double > vValue(GravityParticle *p)
Output data as a Vector3D of doubles.
Definition InOutput.h:213
virtual void setVValue(GravityParticle *p, Vector3D< double > val)
Input data as a Vector3D of doubles.
Definition InOutput.h:216
virtual int64_t iValue(GravityParticle *p)
Output data as an int.
Definition InOutput.h:218
virtual void setIValue(GravityParticle *p, int64_t iValue)
Input data as an int.
Definition InOutput.h:219
Output particle gravitational potential.
Definition InOutput.h:265
virtual double dValue(GravityParticle *p)
Output data as a double.
Definition InOutput.h:267
virtual Vector3D< double > vValue(GravityParticle *p)
Output data as a Vector3D of doubles.
Definition InOutput.h:268
virtual void setDValue(GravityParticle *p, double val)
Input data as a double.
Definition InOutput.h:270
virtual void setIValue(GravityParticle *p, int64_t iValue)
Input data as an int.
Definition InOutput.h:272
virtual int64_t iValue(GravityParticle *p)
Output data as an int.
Definition InOutput.h:271
Output particle gravitational softenings.
Definition InOutput.h:463
virtual int64_t iValue(GravityParticle *p)
Output data as an int.
Definition InOutput.h:481
virtual void setIValue(GravityParticle *p, int64_t iValue)
Input data as an int.
Definition InOutput.h:482
virtual Vector3D< double > vValue(GravityParticle *p)
Output data as a Vector3D of doubles.
Definition InOutput.h:472
virtual void setDValue(GravityParticle *p, double val)
Input data as a double.
Definition InOutput.h:474
virtual double dValue(GravityParticle *p)
Output data as a double.
Definition InOutput.h:465
Output particle gas temperature.
Definition InOutput.h:342
virtual int64_t iValue(GravityParticle *p)
Output data as an int.
Definition InOutput.h:365
virtual Vector3D< double > vValue(GravityParticle *p)
Output data as a Vector3D of doubles.
Definition InOutput.h:362
virtual void setDValue(GravityParticle *p, double val)
Input data as a double.
Definition InOutput.h:364
virtual double dValue(GravityParticle *p)
Output data as a double.
Definition InOutput.h:346
virtual void setIValue(GravityParticle *p, int64_t iValue)
Input data as an int.
Definition InOutput.h:366
Output particle velocities.
Definition InOutput.h:236
virtual void setIValue(GravityParticle *p, int64_t iValue)
Input data as an int.
Definition InOutput.h:246
virtual double dValue(GravityParticle *p)
Output data as a double.
Definition InOutput.h:239
virtual void setVValue(GravityParticle *p, Vector3D< double > val)
Input data as a Vector3D of doubles.
Definition InOutput.h:243
virtual void setDValue(GravityParticle *p, double val)
Input data as a double.
Definition InOutput.h:242
virtual int64_t iValue(GravityParticle *p)
Output data as an int.
Definition InOutput.h:245
virtual Vector3D< double > vValue(GravityParticle *p)
Output data as a Vector3D of doubles.
Definition InOutput.h:240