21class IMF :
public PUP::able {
32 IMF(CkMigrateMessage *m) : PUP::able(m) {}
34 virtual void pup(PUP::er &p) = 0;
42 virtual double CumNumberStoch(
double mass,
double lownorm,
double *hmstars,
double cutmass) = 0;
50 virtual double CumMassStoch(
double mass,
double lownorm,
double *hmstars,
double cutmass) = 0;
73class MillerScalo :
public IMF {
83 a1=42.0; b1=-0.4;m1=0.1;
84 a2=42.0;b2=-1.5;m2=1.0;
85 a3=240.0;b3=-2.3;m3=10.0;
92 virtual double returnimf(
double mass)
const;
94 virtual double CumMass(
double mass);
95 virtual double CumNumberStoch(
double mass,
double lownorm,
double *hmstars,
double cutmass);
96 virtual double CumMassStoch(
double mass,
double lownorm,
double *hmstars,
double cutmass);
99 virtual void pup(PUP::er &p) {
111class Kroupa93 :
public IMF {
122 Kroupa93() {a1=0.3029*1.86606*log(10.0);b1=-0.3;m1=.08;
123 a2=0.3029*log(10.0);b2=-1.2;m2=0.5;
124 a3=0.3029*log(10.0); b3=-1.7; m3=1.0;
130 virtual double returnimf(
double mass)
const;
132 virtual double CumMass(
double mass);
133 virtual double CumNumberStoch(
double mass,
double lownorm,
double *hmstars,
double cutmass);
134 virtual double CumMassStoch(
double mass,
double lownorm,
double *hmstars,
double cutmass);
135 virtual double DrawStar(
double num);
137 virtual void pup(PUP::er &p) {
149class Kroupa01 :
public IMF {
167 a1=0.22038*2.0*log(10.0);b1=-0.3;m1=.08;
168 a2=0.22038*log(10.0);b2=-1.3;m2=0.5;
174 virtual double returnimf(
double mass)
const;
176 virtual double CumMass(
double mass);
177 virtual double CumNumberStoch(
double mass,
double lownorm,
double *hmstars,
double cutmass);
178 virtual double CumMassStoch(
double mass,
double lownorm,
double *hmstars,
double cutmass);
179 virtual double DrawStar(
double num);
181 virtual void pup(PUP::er &p) {
194class Chabrier :
public IMF {
205 a1=0.158;b1=0.69;m1=.079;
208 a2=4.43e-2;b2=-1.3; m2=1.0;
211 virtual double returnimf(
double mass)
const;
213 virtual double CumMass(
double mass);
214 virtual double CumNumberStoch(
double mass,
double lownorm,
double *hmstars,
double cutmass);
215 virtual double CumMassStoch(
double mass,
double lownorm,
double *hmstars,
double cutmass);
216 virtual double DrawStar(
double num);
217 virtual Chabrier*
clone()
const;
222 virtual void pup(PUP::er &p) {
virtual double returnimf(double mass) const
return stars per unit logarithmic mass
Definition imf.cpp:75
virtual Chabrier * clone() const
copy IMF object
Definition imf.cpp:291
virtual double CumMass(double mass)
Cumulative mass of stars with mass greater than mass.
Definition imf.cpp:407
Chabrier(CkMigrateMessage *m)
Charm++ migration constructor.
Definition imf.h:221
virtual double CumNumberStoch(double mass, double lownorm, double *hmstars, double cutmass)
CumNumber for use with stochastic IMF. NOTA BENE - CumNumber for stochastic use returns the actual nu...
Definition imf.cpp:200
PUPable_decl(Chabrier)
Charm++ method for migrating derived classes.
virtual double CumNumber(double mass)
Cumulative number of stars with mass greater than mass.
Definition imf.cpp:296
virtual double CumMassStoch(double mass, double lownorm, double *hmstars, double cutmass)
CumMass for use with stochastic IMF. NOTA BENE - CumMass for stochastic use returns the actual mass f...
Definition imf.cpp:238
virtual void pup(PUP::er &p)
Charm++ Pack-UnPack method.
Definition imf.h:222
virtual double DrawStar(double num)
inverse CDF of IMF to draw stars stochastically from the IMF
Definition imf.cpp:169
IMF(CkMigrateMessage *m)
Charm++ migrate constructor.
Definition imf.h:32
virtual double returnimf(double mass) const =0
return stars per unit logarithmic mass
virtual double CumNumberStoch(double mass, double lownorm, double *hmstars, double cutmass)=0
CumNumber for use with stochastic IMF. NOTA BENE - CumNumber for stochastic use returns the actual nu...
virtual double CumMass(double mass)=0
Cumulative mass of stars with mass greater than mass.
virtual void pup(PUP::er &p)=0
Charm++ Pack-UnPack method.
virtual IMF * clone() const =0
copy IMF object
virtual double CumNumber(double mass)=0
Cumulative number of stars with mass greater than mass.
PUPable_abstract(IMF)
Charm++ requirement for passing polymorphic objects.
virtual double DrawStar(double num)=0
inverse CDF of IMF to draw stars stochastically from the IMF
virtual double CumMassStoch(double mass, double lownorm, double *hmstars, double cutmass)=0
CumMass for use with stochastic IMF. NOTA BENE - CumMass for stochastic use returns the actual mass f...
Implement IMF from Kroupa 2001.
Definition imf.h:149
virtual double CumMassStoch(double mass, double lownorm, double *hmstars, double cutmass)
CumMass for use with stochastic IMF. NOTA BENE - CumMass for stochastic use returns the actual mass f...
Definition imf.cpp:242
virtual void pup(PUP::er &p)
Charm++ Pack-UnPack method.
Definition imf.h:181
Kroupa01(CkMigrateMessage *m)
Charm++ migration constructor.
Definition imf.h:173
virtual double returnimf(double mass) const
return stars per unit logarithmic mass
Definition imf.cpp:59
virtual double DrawStar(double num)
inverse CDF of IMF to draw stars stochastically from the IMF
Definition imf.cpp:173
PUPable_decl(Kroupa01)
Charm++ method for migrating derived classes.
virtual double CumNumber(double mass)
Cumulative number of stars with mass greater than mass.
Definition imf.cpp:138
virtual double CumNumberStoch(double mass, double lownorm, double *hmstars, double cutmass)
CumNumber for use with stochastic IMF. NOTA BENE - CumNumber for stochastic use returns the actual nu...
Definition imf.cpp:204
virtual Kroupa01 * clone() const
copy IMF object
Definition imf.cpp:286
virtual double CumMass(double mass)
Cumulative mass of stars with mass greater than mass.
Definition imf.cpp:383
Implement IMF from Kroupa, Tout & Gilmore, 1993.
Definition imf.h:111
virtual void pup(PUP::er &p)
Charm++ Pack-UnPack method.
Definition imf.h:137
virtual double CumNumberStoch(double mass, double lownorm, double *hmstars, double cutmass)
CumNumber for use with stochastic IMF. NOTA BENE - CumNumber for stochastic use returns the actual nu...
Definition imf.cpp:196
virtual double returnimf(double mass) const
return stars per unit logarithmic mass
Definition imf.cpp:42
virtual double CumNumber(double mass)
Cumulative number of stars with mass greater than mass.
Definition imf.cpp:119
virtual double CumMassStoch(double mass, double lownorm, double *hmstars, double cutmass)
CumMass for use with stochastic IMF. NOTA BENE - CumMass for stochastic use returns the actual mass f...
Definition imf.cpp:234
virtual Kroupa93 * clone() const
copy IMF object
Definition imf.cpp:281
PUPable_decl(Kroupa93)
Charm++ method for migrating derived classes.
virtual double DrawStar(double num)
inverse CDF of IMF to draw stars stochastically from the IMF
Definition imf.cpp:165
virtual double CumMass(double mass)
Cumulative mass of stars with mass greater than mass.
Definition imf.cpp:353
Kroupa93(CkMigrateMessage *m)
Charm++ migration constructor.
Definition imf.h:129
Implement Miller-Scalo IMF Uses the 3 segment power law fit for the Miller-Scalo IMF (Ap....
Definition imf.h:73
virtual double CumMass(double mass)
Cumulative mass of stars with mass greater than mass.
Definition imf.cpp:323
virtual double CumNumber(double mass)
Cumulative number of stars with mass greater than mass.
Definition imf.cpp:100
virtual double DrawStar(double num)
inverse CDF of IMF to draw stars stochastically from the IMF
Definition imf.cpp:161
PUPable_decl(MillerScalo)
Charm++ method for migrating derived classes.
MillerScalo(CkMigrateMessage *m)
Charm++ migration constructor.
Definition imf.h:91
virtual void pup(PUP::er &p)
Charm++ Pack-UnPack method.
Definition imf.h:99
virtual double CumMassStoch(double mass, double lownorm, double *hmstars, double cutmass)
CumMass for use with stochastic IMF. NOTA BENE - CumMass for stochastic use returns the actual mass f...
Definition imf.cpp:230
virtual MillerScalo * clone() const
copy IMF object
Definition imf.cpp:276
virtual double CumNumberStoch(double mass, double lownorm, double *hmstars, double cutmass)
CumNumber for use with stochastic IMF. NOTA BENE - CumNumber for stochastic use returns the actual nu...
Definition imf.cpp:192
virtual double returnimf(double mass) const
return stars per unit logarithmic mass
Definition imf.cpp:25