15 class IMF :
public PUP::able {
22 virtual double returnimf(
double mass)
const = 0;
26 IMF(CkMigrateMessage *m) : PUP::able(m) {}
28 virtual void pup(PUP::er &p) = 0;
31 virtual double CumNumber(
double mass) = 0;
34 virtual double CumMass(
double mass) = 0;
65 a1=42.0; b1=-0.4;m1=0.1;
66 a2=42.0;b2=-1.5;m2=1.0;
67 a3=240.0;b3=-2.3;m3=10.0;
74 virtual double returnimf(
double mass)
const;
76 virtual double CumMass(
double mass);
78 virtual void pup(PUP::er &p) {
101 Kroupa93() {a1=0.3029*1.86606*log(10.0);b1=-0.3;m1=.08;
102 a2=0.3029*log(10.0);b2=-1.2;m2=0.5;
103 a3=0.3029*log(10.0); b3=-1.7; m3=1.0;
109 virtual double returnimf(
double mass)
const;
111 virtual double CumMass(
double mass);
113 virtual void pup(PUP::er &p) {
143 a1=0.22038*2.0*log(10.0);b1=-0.3;m1=.08;
144 a2=0.22038*log(10.0);b2=-1.3;m2=0.5;
150 virtual double returnimf(
double mass)
const;
152 virtual double CumMass(
double mass);
154 virtual void pup(PUP::er &p) {
178 a1=0.158;b1=0.69;m1=.079;
181 a2=4.43e-2;b2=-1.3; m2=1.0;
184 virtual double returnimf(
double mass)
const;
186 virtual double CumMass(
double mass);
192 virtual void pup(PUP::er &p) {
Implement IMF from Kroupa, Tout & Gilmore, 1993.
Definition: imf.h:90
virtual double CumMass(double mass)
Cumulative mass of stars with mass greater than mass.
Definition: imf.cpp:221
virtual Kroupa93 * clone() const
copy IMF object
Definition: imf.cpp:149
PUPable_decl(Chabrier)
Charm++ method for migrating derived classes.
virtual Kroupa01 * clone() const
copy IMF object
Definition: imf.cpp:154
virtual double CumNumber(double mass)
Cumulative number of stars with mass greater than mass.
Definition: imf.cpp:89
virtual double CumMass(double mass)=0
Cumulative mass of stars with mass greater than mass.
Implement Miller-Scalo IMF Uses the 3 segment power law fit for the Miller-Scalo IMF (Ap...
Definition: imf.h:55
virtual MillerScalo * clone() const
copy IMF object
Definition: imf.cpp:144
virtual void pup(PUP::er &p)=0
Charm++ Pack-UnPack method.
virtual double CumMass(double mass)
Cumulative mass of stars with mass greater than mass.
Definition: imf.cpp:275
virtual double CumMass(double mass)
Cumulative mass of stars with mass greater than mass.
Definition: imf.cpp:191
virtual double returnimf(double mass) const
return stars per unit logarithmic mass
Definition: imf.cpp:31
PUPable_decl(MillerScalo)
Charm++ method for migrating derived classes.
Kroupa01(CkMigrateMessage *m)
Charm++ migration constructor.
Definition: imf.h:149
Interface class for initial mass function.
Definition: imf.h:15
virtual double returnimf(double mass) const
return stars per unit logarithmic mass
Definition: imf.cpp:14
virtual double returnimf(double mass) const
return stars per unit logarithmic mass
Definition: imf.cpp:48
Kroupa93(CkMigrateMessage *m)
Charm++ migration constructor.
Definition: imf.h:108
PUPable_decl(Kroupa01)
Charm++ method for migrating derived classes.
Chabrier(CkMigrateMessage *m)
Charm++ migration constructor.
Definition: imf.h:191
virtual double CumNumber(double mass)
Cumulative number of stars with mass greater than mass.
Definition: imf.cpp:108
virtual IMF * clone() const =0
copy IMF object
virtual void pup(PUP::er &p)
Charm++ Pack-UnPack method.
Definition: imf.h:78
virtual double returnimf(double mass) const =0
return stars per unit logarithmic mass
IMF(CkMigrateMessage *m)
Charm++ migrate constructor.
Definition: imf.h:26
virtual void pup(PUP::er &p)
Charm++ Pack-UnPack method.
Definition: imf.h:154
virtual Chabrier * clone() const
copy IMF object
Definition: imf.cpp:159
PUPable_decl(Kroupa93)
Charm++ method for migrating derived classes.
Implement Chabrier IMF Use the log normal + power law fit of Chabrier, 2003, Galactic Stellar and Sub...
Definition: imf.h:167
Implement IMF from Kroupa 2001.
Definition: imf.h:125
PUPable_abstract(IMF)
Charm++ requirement for passing polymorphic objects.
virtual double CumNumber(double mass)
Cumulative number of stars with mass greater than mass.
Definition: imf.cpp:127
virtual void pup(PUP::er &p)
Charm++ Pack-UnPack method.
Definition: imf.h:113
virtual void pup(PUP::er &p)
Charm++ Pack-UnPack method.
Definition: imf.h:192
virtual double CumMass(double mass)
Cumulative mass of stars with mass greater than mass.
Definition: imf.cpp:251
virtual double returnimf(double mass) const
return stars per unit logarithmic mass
Definition: imf.cpp:64
virtual double CumNumber(double mass)=0
Cumulative number of stars with mass greater than mass.
MillerScalo(CkMigrateMessage *m)
Charm++ migration constructor.
Definition: imf.h:73
virtual double CumNumber(double mass)
Cumulative number of stars with mass greater than mass.
Definition: imf.cpp:164