changa  3.5
 All Classes Files Functions Variables Typedefs Enumerations Friends Macros Groups Pages
supernova.h
1 #ifndef SUPERNOVA_HINCLUDED
2 #define SUPERNOVA_HINCLUDED
3 
4 #include "starlifetime.h"
5 #include "imf.h"
6 
7 class SFEvent;
8 class FBEffects;
9 
11 class SN
12 {
13  friend class Fdbk;
14 
15  double AGORAgasLossPerSN; /* Amount of gas (in Msun) to be ejected for one supernova */
16  double AGORAmetalLossPerSN; /* Amount of metals (in Msun) to be ejected for one supernova */
17  double AGORAmetalFracO; /* Metal fraction of oxygen to be ejected during the event */
18  double AGORAmetalFracFe; /* Metal fraction of iron to be ejected during the event */
19 
20  double dMSNrem; /* mass of SN remnant in M_sun */
21  double dMSNIImin; /* Minimum core collapse SN mass */
22  double dMSNIImax; /* Maximum core collapse SN mass */
23  double dMBmin; /* Minimum Mass of binary that can do SNIa */
24  double dMBmax; /* Maximum mass of binary that an SNIa */
25  double dMEjexp; /* exponent of ejection mass power law */
26  double dMEjconst; /* normalization for ejection mass power law */
27  double dMFeexp; /* exponent of iron productions */
28  double dMFeconst; /* normalization of iron */
29  double dMOxexp; /* exponent of oxygen */
30  double dMOxconst; /* normalization of oxygen */
31  Padova pdva;
32  public:
33  double AGORAsnTime; /* Time (in yr) at which to set off the single SN */
34  double AGORAsnE; /* Energy (erg) to be released from a single SN */
35  double AGORAsnPerMass; /* Number of supernovae to set off per solar mass of star particle */
36  double dESN; /* how much energy comes from a supernova */
37  int iNSNIIQuantum; /* minimum amount of supernovae */
38  double dFracBinSNIa; /* fraction of binary systems in mass
39  range that go SNIa (van den Bergh
40  & McClure, ApJ 425, 205, 1994) */
41  IMF *imf;
42 
43  SN() {
44  /* parameters for AGORA feedback
45  These are specified in paper 4, dataset 2 */
46  AGORAsnTime = 5.e6;
47  AGORAsnPerMass = 91.;
48  AGORAgasLossPerSN = 14.8;
49  AGORAmetalLossPerSN = 2.63;
50  AGORAmetalFracO = 0.098;
51  AGORAmetalFracFe = 0.43;
52  AGORAsnE = 1.0e51;
53 
54  dMSNrem = 1.4; /* mass of supernova remnant in solar masses
55  * Also used for SNIa ejected mass */
56  dMSNIImin = 8.0; /* Mass above which stars supernova in solar
57  masses */
58  dMSNIImax = 40.; /* Mass below which stars supernova in
59  solar masses */
60  dMBmin = 3.0; /* Minimum mass of binary that can go SNIa */
61  dMBmax = 16.0; /* Maximum mass of binary that can go SNIa */
62  /* normalization constant and exponent in formulae for masses of
63  ejected Fe and O16 as a function of stellar mass taken from
64  Raiteri, Villata and Navarro, A&A 315, 105, 1996 */
65  dMEjexp = 1.056;
66  dMEjconst = 0.7682;
67  dMFeexp = 1.864;
68  dMFeconst = 2.802e-4;
69  dMOxexp = 2.721;
70  dMOxconst = 4.586e-4;
71  dESN = 0.1e51;
72  iNSNIIQuantum = 0;
73  dFracBinSNIa = 0.05; /* .05 is in line with chemical evolution
74  models of the Milky Way (Francois
75  et al 2004) */
76  }
77  void CalcAGORAFeedback(SFEvent *sfEvent, double dTime, double dDelta,
78  FBEffects *fbEffects) const;
79  void CalcSNIIFeedback(SFEvent *sfEvent, double dTime, double dDelta,
80  FBEffects *fbEffects) const;
81  void CalcSNIaFeedback(SFEvent *sfEvent,double dTime,
82  double dDelta, FBEffects *fbEffects) const;
83  double NSNIa (double dMassT1, double dMassT2) const;
84  friend double dMSIMFSec(const SN *sn, double dMass2);
85  void pup(PUP::er& p) {
86  p|dESN;
87  p|dMSNrem;
88  p|dMSNIImin;
89  p|dMSNIImax;
90  p|dMBmin;
91  p|dMBmax;
92  p|dMEjexp;
93  p|dMEjconst;
94  p|dMFeexp;
95  p|dMFeconst;
96  p|dMOxexp;
97  p|dMOxconst;
98  p|dFracBinSNIa;
99  p|iNSNIIQuantum;
100  p|pdva;
101  // p|*imf; Think about this
102  };
103 
104 };
105 
106 #endif
void CalcAGORAFeedback(SFEvent *sfEvent, double dTime, double dDelta, FBEffects *fbEffects) const
Feedback algorithm to match the requirements of the AGORA project see paper 4, dataset 2 for details...
Definition: supernova.cpp:33
Interface class for initial mass function.
Definition: imf.h:15
Stellar/Supernova feedback parameters and routines.
Definition: feedback.h:45
double NSNIa(double dMassT1, double dMassT2) const
Definition: supernovaia.cpp:62
friend double dMSIMFSec(const SN *sn, double dMass2)
Definition: supernovaia.cpp:36
Methods for calculating the number and feedback effects of supernova.
Definition: supernova.h:11
Definition: feedback.h:32
routines to calculate stellar lifetimes as a function of mass and metalicity.
Definition: starlifetime.h:27
Class to return feedback effects.
Definition: feedback.h:13