Annotated XRB generator burst setup

Contributed by Adam Jacobs. Numerical parameters have been replaced by alphanumeric names.


Example for steady state $\mathrm{H}$ and $\mathrm{He}$ burning.


  1c This is a KEPLER generator file.  This generates the initial model, defines
  2c various variables, configures various parameters, and provides a set of
  3c commands for KEPLER to execute.  I've attempted to comment all of this below.
  5c --- Network cards ---
  6c KEPLER has an in-built APPROX19 network (this is the origin of Frank's various
  7c approx networks).  You set the initial network to be APPROX by choosing net 1.
  8c As I understand it, you can currently only select network 1 (APPROX), though
  9c other networks are defined and can be configured to "turn on" later, such as
 10c an NSE (NETNUM = 3) network and an ISE (NETNUM = 2, a QSE net) network.
 12c Note that the large adaptive network is run in a co-processing fashion, such
 13c that isotope compositions and related quantities are mapped back and forth
 14c between a large network calculation and the simpler APPROX19 calculation.  You
 15c _do_ get energy generation and such from the adaptive network with the proper
 16c parameters, so you can effectively run with the large network as "the"
 17c network, but for legacy reasons will still need to define APPROX19 here and the
 18c larger network with a "bg" BURN generator.
 20c These net cards define the isotopes carried by the network.  Though this
 21c presents as a user option, Alex advises that you must define the APPROX19
 22c network as it has been made into a hard-coded assumption in various parts of
 23c the code.  So in practice, all modern Kepler generators will have the
 24c following set of net cards.
 25net 1 h1 he3 he4 n14 c12 o16 ne20 mg24
 26net 1 si28 s32 ar36 ca40 ti44 cr48 fe52
 27net 1 ni56 fe54 pn1 nt1
 29c --- Mixture cards ---
 30c Mixture cards allow you to define compositions that can then be used in other
 31c cards to specify the chemical composition at different regions in the grid.
 33c This composition is a proxy for the deeper part of the NS ocean, and is meant
 34c to just be a sink for heat.  We achieve this with an iron 54 substrate.
 35m nstar 1.00 fe54
 37c He star abundance references
 38c m acret 1.0 he4 0.0 c12 0.0 o16
 39c m acret 0.3 he4 0.2 c12 0.5 o16
 40c m acret 0. h1 0.980 he4 0. c12 0.02 n14 0. o16
 41c H star abundance references
 42c m acret 0.759 h1 0.24 he4 0.001 n14
 44c Here we define the composition of material accreted from the companion
 45m acret 0.73 h1 0.250 he4 0.02 n14
 47c --- Grid cards ---
 48c Grid cards define the initial 1D grid of mass zones, and make use of mixture
 49c cards.  These are the cards you use to define the initial resolution.  Not every
 50c zone needs to be specified.  Intermediate zones will have their data
 51c interpolated (not sure exactly in what form) from provided grid zones.  You must
 52c always define grid point 0 and the final grid point (which defines the initial
 53c resolution).
 56c g 0   2.0000e25  1 nstar  4.0e+8  1.0e+9
 57c g 1   1.9000e25  1 nstar  4.0e+8  1.0e+9
 58c g 40  1.0000e22  1 nstar  4.0e+8  1.0e+8
 59c g 50  1.0000e21  1 nstar  4.0e+8  1.0e+8
 60c g 51  8.0000e20  1 acret  2.0e+8  1.0e+8
 61c g 54  2.0000e20  1 acret  1.0e+8  1.0e+6
 62c g 55  0.         1 acret  5.0e+7  1.0e+4
 63c p bmasslow 2.800000019998950D33
 66c See docs for more details on grid card definitions.
 67c Zone# mass(g)    net mix    temp (K) rho (g/cc)
 68g 0     2.0000e25  1   nstar  1.0e+8   1.0e+9
 69g 1     1.9000e25  1   nstar  1.0e+8   1.0e+9
 70g 40    1.0000e21  1   nstar  1.0e+8   1.0e+6
 71g 50    1.0000e20  1   nstar  1.0e+8   1.0e+6
 72g 51    8.0000e19  1   acret  5.0e+7   1.0e+6
 73g 54    2.0000e19  1   acret  2.5e+7   1.0e+8
 74g 55    0.         1   acret  1.1e+7   1.0e+4
 76c --- Parameter cards ---
 77c Now we set various parameters configuring how Kepler will run.
 78c These can be found in the docs.
 80c - I/O, Graphics, and Termination Conditions -
 81c nedit: Number of cycles between "ASCII edits" (I think this means how often
 82c data is output to files)
 83p nedit 100000
 85c ndump: Number of cycles between restart dumps
 86p ndump 10
 88c irtype: x-axis type for plots
 89c 1 -> radius in cm
 90c 2 -> interior mass fraction, q
 91c 3 -> interior mass in M_sol
 92c 4 -> radius in cm
 93c 5 -> moment of inertia coordinate (Msun*Rsun**2)
 94c 6 -> zone #
 95c ... several more options, up to 26, see docs
 96c (Note: this provided generator had two instances of this, the second used to
 97c be further down but I don't think that matters)
 98p irtype 6
 99p irtype 4
101c nsdump: Save every nsdump restart dumps
102p nsdump 10
104c iwinsize: Size of graphics window to be created in the form xxxxyyyy, where
105c xxxx, yyyy = (width, height) in pixels.  Must use leading 0's.
106p iwinsize 14001000
108c ncycqq: Number of KEPLER cycles between post-processor dump cycles
109p ncycqq 100000
111c npixedit: Graphics edits to the monitor are made every npixedit KEPLER cycles
112p npixedit 1
114c h1hdep: Central hydrogen abundance at which the #hdep dump is made
115p h1hdep -1.d0
117c he4hedep: Central helium abundance at which the #hedep dump is made
118p he4hedep -1.d0
120c si28dep: Central si28 mass fraction at which the #sidep dump is made, if the
121c mass fractions of o16 and he4 are below 0.01
122p si28dep -1.d0
124c iplotb: Control isotope/network used in abundance plots
125c 0 -> Use APPROX/ISE/NSE abundances
126c 1 -> Only plot BURN abundances in APPROX regime
127c 2 -> Plot BURN abundances everywhere BURN is used (above bmasslow p# 419)
128c 3 -> Plot BURN abundances everywhere
129p iplotb 2
131c jp0: Innermost zone to plot
132p jp0 40
134c lcout: Number of outer layers to be written in light curve output file, .lc
135c 0 means write no file
136p lcout 10
138c ncnvout: Write out convection plot file data (*.cnv) every ncnvout cycles.
139c Off when 0 (but I don't see these files, is this still working?)
140p ncnvout 1
142c abunlim: Least elemental mass fraction plotted or listed in a term ion edit
143p abunlim 1.d-4
145c no h/he burn dumps
146c h1hburn: Hydrogen mass fraction at which to make the #hburn dump
147p h1hburn -1.
148c he4heburn: Helium mass fraction at which to make the #heburn dump
149p he4hebrn -1.
152c - Gridding and Boundaries -
153c dstat says to take the specified initial grid configuration and adjust it to
154c be in HSE via modifications of the density.  Docs say this is useful for
155c degenerate cases like WD and NS, but I don't see why it wouldn't be useful in
156c general.  Don't you always want HSE for stars?
159c radius0: radius of inner boundary (cm)
160p radius0 1.0e+06
162c summ0: Mass inside inner boundary (g)
163p summ0 2.8e+33
165c xlum0: luminosity emerging from inner surface (erg/s)
166p xlum0 1.6e+34
168c dnrtmax: Maximum fractional density change allowed between zones before adzoning
169p dnratmax .25
171c rnmin: Minimum radius for which adzoning is considered (cm)
172p rnmin 1.e+6
174c tnmin: Minimum temperature for which adzoning is considered (K)
175c (adzoning vs rezoning vs dezoning?)
176p tnmin 1.e+4
178c dnmin: Minimum density for which adzoning is considered
179p dnmin 2.e-5
181c izonef: Rezoning flag. izonef <= 0: no rezoning
182p izonef 0
184c idzonef: Dezoning flag. idzonef <= 0: no dezoning
185p idzonef 0
187c rnmax: Maximum radius for which rezoning is considered
188p rnmax 1.e+14
190c fracrz1: Multiplier in the effective values of the density, temperature, and
191c radius gradients used to determine the necessity for adzoning or dezoning.
192c This is a bound in a set of ranges used to determine the multiplicative
193c factor.  See docs for details.
194p fracrz1 .33
196c fracrz2: See fracrz1 above and relevant docs section
197p fracrz2 .5
199c abarratm: Used for determining rezoning based on abar.  See abarrat0 and docs.
200p abarratm 1.3
202c fmax0: Adzone mass fraction parameter.
203c See table in docs and related parameters (fmaxm, fmax1, fmaxcrz0, etc)
204p fmax0 .01
206c fmax1: See fmax0 and docs, has to do with adzoning on mass fraction ranges
207p fmax1 .015
209c fmax2: See fmax0 and docs, has to do with adzoning on mass fraction ranges
210p fmax2 .03
212c accrate: Rate at which mass in the form of new zones is added to the surface
213c of the star (Msun/yr).
215c The accumulated mass is stored in xmacrete (p# 212) until it is large enough
216c to be added as a whole zone. The surface boundary pressure is gradually
217c increased at a rate proportional to accrate until a mass (in xmacrete
218c (p# 212)) equal to that in the current outer zone is reached. Then a new zone, the
219c mirror image of the old outer zone, is added. Accretion composition is set by
220c the compsurf command in TTYCOM. The boundary pressure from the accretion phantom
221c is stored in pboundac (q# 96).
223c Note: This prescription will work best for coarse and roughly equal surface zoning.
225c Negative accretion rate means to read in time-dependent accretion rate data
226c from file nameprob.acc. The file contains a comment line with version
227c information, then a line with the number of entries ((I6)), then the data in two
228c columns: time in seconds and accretion rate in grams per second. Format:
229c (2E25.17). The resulting rate is multiplied by accrate to allow
230c scaling without having to change the file. See also: accratef (p# 550) which
231c seems to duplicate the scaling functionality.
232p accrate 1.75d-9
234c minzone: Do not rezone the innermost minzone zones
235c minzone = 0 allows rezoning innermost zone
236p minzone 51
238c zonemmin: Minimum mass that a pair of zone may have and still be allowed to
239c be adzoned
240p zonemmin 1.5d19
242c zonemmax: Do not dezone zones bigger than zonemmax
243p zonemmax 1.d20
251c - Convection -
252c fracneut: If the semi convective test parameter, W, is < 0 but greater than
253c -fracneut * abs(log(T1/T0)), then the zonal interface is flagged
254c convectively neutral (“NEUT” or ”,”).
255p fracneut .05
257c dtsmult: The fractional amount of semi-convective mixing that can occur in
258c one timestep is limited to approximately dtsmult
259p dtsmult 1.e+99
261c frcsound: Don't do convection if the absolute value of the zone velocity
262c exceeds frcsound times the local sound speed.
263c (Note: this provided generator had two instances of this, the second used to
264c be further down but I don't think that matters)
265p frcsound .0
266p frcsound 1.
268c convlim: Limit the convective velocity to a fraction convlim of the local sound speed
269c (Note: this provided generator had two instances of this, the second used to
270c be further down but I don't think that matters)
271p convlim .0
272p convlim 1.
274c woversht: The semiconvective test parameter, W, is taken to be
275c W = woversht * abs ( log (T1/T0)) for the special overshoot semiconvective
276c zones where W would otherwise be < 0 and when Abar >= abarsemi (p# 324).
277c If 0, no overshoot mixing.
278p woversht 0.
280c alpth: Efficiency factor for thermohaline convection
281c If set to zero no thermohaline convection is considered. Thermohaline
282c convections occurs in regions with destabilizing composition gradient, but
283c stabilizing temperature gradient (salt finger instability).
284c The implementation in KEPLER is according to Braun (1997, PhD thesis) and
285c Kippenhahn et al. (1980)
286c p alpth 0.
289c - Microphysics -
290c Below this mass coordinate, burn co-processing is turned off.
291c (won't it always be off then?  All grid points are below this)
292p bmasslow 2.800000019999895D33
294c This specifies the BURN generator file's name.  See rpabg for the
295c co-processing network's specification.
296genburn rpabg
298c Map the BURN abundances to the APPROX network.  This should overwrite any
299c previously specified APPROX abundances, e.g. from the g cards.  In other
300c words, the composition specified in rpabg takes precedence.
303c xkimt: Multiplier on IBEN1 opacity (why this value? what's IBEN opacity?)
304c p xk1mt 1.5284
306c xk2mt: Multiplier on IBEN2 opacity (why this value?)
307c p xk2mt 1.5284
309c xk3mt: Multiplier on Christy opacity (why this value?)
310c p xk3mt 1.5284
312c xk4mt: Multiplier on Compton opacity (why this value?)
313c p xk4mt 1.5284
315c rxkcmt: Multiplier on conductive opacity (why this value?)
316c p rxkcmt 1.5284
318c t7peek: Opacity will be no larger than xkmin (p# 50) + t7peek * rho * (T_7)**4
319p t7peek 1.e+50
321c tnucmin: Don't calculate nuclear burning in APPROX if the temperature is less
322c than tnucmin
323c NOTE: Unless the hydrogen burning rate is significant, no APPROX network
324c calculations will be done below 1.e+7 K, even if tnucmin < 1.e+7 K
325c (Note: this provided generator had two instances of this, the second used to
326c be further down but I don't think that matters)
327p tnucmin 1.0e+99
328p tnucmin 1.d7
330c jshell0: Innermost zone in which there is neutrino deposition (??)
331p jshell0 51
333c tqsemin: Floor on the temperature used in the ISE (aka QSE) calculation
334p tqsemin 3.e+9
336c siqselim: A sufficient condition to change a zone from the ISE to the NSE
337c network is for the sum of the silicon and sulphur "group" elemental mass
338c fractions to be less than or equal to siqselim
339p siqselim .02
341c wilsonmt: Docs warn caution when using this.
342c Multiplier on the Wilson-based nuclear EOS (except for thee thermal ion
343c component) if it is >= 0. Otherwise, the old non-relativistic, partial
344c degeneracy model for the ion EOS is used.
345p wilsonmt -1.
347c iold: Set to value other than 0 to use old physics - mostly fix that energy
348c generation in APPROX did not include neutrino losses and mass excess but only
349c considered differences in binding energy.
350c 0 -> use current physics
351c 1 -> no nu loss in H burning and BE instead of ME and old nu loss routines
352c      (old1/old2, < 1997)
353c other options (2,4,8, see docs)
354p iold 1
356c kaptab: Select opacity table
357c 0 -> old (??)
358p kaptab 0
360c btempmin: BURN co-processing is skipped if a zone's temperature is less than
361c btempmin
362c (Note: this provided generator had two instances of this, the second used to
363c be further down but I don't think that matters)
364p btempmin 1.1e8
365p btempmin 1.d7
367c mazful: Use Fuller et. al.'s weak rates in the BURN coprocessor
368c if mazful = 1, otherwise use the old rates of Mazurek and Hansen
369p mazful -1
371c lburn: Substitute BURN network for APPROX network (including energy
372c generation, Abar, Zbar, etc) when set to 1.
373c Abundances are mapped to APPROX abundances for plot/edit purposes only
374p lburn 1
376c nadapb: Enable Adaptive BURN network adjustment
377c 0 -> off
378c 1 -> on
379p nadapb 1
382c - Numerical Parameters -
383c dtnew: Initial timestep (sec)
384p dtnew 1.e-4
386c maxit: Maximum iterations on R, T, L (radius, temp, luminosity?) before retrying with smaller dt
387p maxit 40
389c dtcr: Maximum desired fractional change in radius per step
390p dtcr .05
392c dtct: Maximum desired fractional change in temperature per step
393p dtct .05
395c dtcd: Maximum desired fractional change in density per step
396p dtcd .10
398c dtcq: Maximum desired fractional linear contraction per step
399p dtcq .1
401c dtcdt: Maximum fractional change in timestep per step
402p dtcdt .99
404c nstop: Maximum number of cycles (cycles, same as steps?)
405p nstop 1000000
407c ipup: abundance update parameter. ipup=2 means don't update abundances in
408c zones less than jshell0 (p# 93), the innermost zone with neutrino deposition.
409p ipup 2
411c dyemult: If iytsflag (p# 67) (has to do with ISE zones) >= 1, increase the
412c timestep sensitivity to changes in ye by a factor of dyemult
413p dyemult 50.
415c dyqmult: If iytsflag (p# 67) >= 1, increase the timestep sensitivity to changes in yq
416c by a factor of dyqmult
417p dyqmult 2.
419c dtcp: Maximum desired fractional change in abundances per step.
420p dtcp .15
422c yfloorx: Minimum elemental mass fraction that effects the timestep (I guess
423c for the various restrictions on fractional change?)
424p yfloorx 3.e-3
426c cenu: velocity centering parameter. cenu=0.5 is exact energy conservation,
427c cenu=1.0 is most stable.  A note in the docs says Kepler only behaves well for
428c cenu=1.0, so modifying it requires some understanding of what you're doing.
429p cenu 1.
431c dtcut: Fractional timestep reduction when a step is redone
432p dtcut .1
434c tfcrbu: If the maximum fractional change in radius during a timestep exceeds
435c tfcrbu * dtcr (p# 6), then redo step
436p tfcrbu 2.
438c tfctbu: If the maximum fractional change in temperature during a timestep
439c exceeds tfctbu * dtct (p# 7), then redo step
440p tfctbu 10.
442c fclmax: Maximum allowed relative convergence error in luminosity
443c (wtf is this so huge?)
444p fclmax 1.e+99
446c fclbu: Reduce timestep by dtcut (p# 53) and redo step if convergence error in
447c luminosity is still greater than fclbu after maxit (p# 5) iterations
448p fclbu 1.e+99
450c iautoout: This is said to be deprecated parameter for crays in docs, but not
451c sure why it's set to 5 here.  Should ask Alex.
452p iautoout 5
454c iflgabar: Another deprecated parameter.  Should be 0.  For reference:
455c The mean atomic weight, Abar, calculated in subroutine sdot is implicitly
456c coupled to the ion equation of state only if iflgabar /= 0 and the normal
457c APPROX network is being used.
458p iflgabar 0
460c yfloorbx: Elemental mass fraction floor for making abundance backups
461c (See abunminx (p# 204)).
462p yfloorbx .003
464c fcrmax: Maximum allowed relative convergence error in radius
465p fcrmax 1.d-8
467c fctmax: Maximum allowed relative convergence error in temperature
468p fctmax 1.d-8
472c Now follows the command file
475c ------- PARAMETERS --------
476c .... accretion rate 1.75D-8 (L/Ledd) * 1.7/(X + 1)
477p accrate 1.75D-8
478c .... substrate luminosity - accrate * 6.0816737e+43 * (Q/MeV)
479c .... 1.0642929e+36 (L/Ledd) * (Q/MeV)
480p xlum0   1.0642929e+36
481c -------------------------
482c ..... SCALE to He/C/O L_Edd accretion: factor 1.7 / (X + 1)
483o x {isoh1(jm)} def
484o xeddf {1.7 / (1.0 + x)} def
485p accrate {xeddf} *
486p xlum0 {xeddf} *
487c .......
488c substrate Luminosity, Q/MeV
489p xlum0 0.75 *
490c .......
491c set fraction of Eddington accretion rate
492o xledd 0.02 def
493p accrate {xledd} *
494p xlum0 {xledd} *
495c -------------------------
496c get model in equilibrium
497p ncnvout 0
498p nstop 1000000000
499p tnucmin 1.d10
500p tnumin 1.d7
501p accmass 1.d13
502p optconv 0.67
503p iaccadv 0
504p iacceadv 1
505c for APPROX ONLY
506p jp0 0
507p irtype 4
509c =========================
510c MATCH TO accmass - set mass of outer zone
512p maxbak 20
513p accdepth 1.d99
514p iterbarm 999999
515c =========================
518p toffset 0.
519setcycle 0
521c --- time-dependent accretion rate only ---
522c resetacc
523c p accrate -1.
524c ------------------------------------------
525p lburn 1
526p dtnew 1.
527p iaccadv 1
528c use accdepth 5.d20 for He
529c use accdepth 1.d20 for H
530c values above may be good for 0.1 Ledd,
531c but require scaling for lower accretion rates or more heating
532p accdepth 1.d20
533p tnucmin 1.d7
534p izonef 1
535p idzonef 1
536p iazonef 0
537p zonermax 10.
538p zonemmax 1.d99
539p ddmin 1.d4
540c --- decretion ---
541p decrate -1.D0
542p idecmode 1
543p jshell0 0
544p ipup 5
545c --- use y coordinate for zoning ---
546c p fmax0 1.
547c p fmax1 1.
548c p fmax2 1.
549c p zonemmax 1.d99
550c p zonermax 1.d99
551c p zoneymax 0.02
553c --- some other stuff ---
554c boundary pressue
555c p pbound 5.d18
556c use 10% mass of outer zone
557p pbound {6.67259e-8 * zm(0) * xm(0) / (4. * 3.14159 * rn(0) ^ 4 ) * 0.1}
559c --- rotation ---
560c p centmult .667
561c 600 Hz rotation?
562c p angjacc 2.51327d15
563c p nangdis 1
564c p magnet 8
565c p xmagfbr 1.d-10
566c p xmagfbt 1.d-5
568c --- plotting ---
569c p ipixtype 31700
570p irtype 11
572c --- output ---
573p ibwarn 0
575c --- termination condition ---
576c @time>8.E+05
577c end

BURN Generator

 1c rpa3bg -- burn generator deck for x-ray burst calculations
 3net 1    nt1    h1    h2    h3   he3   he4   li6   li7   be7
 4net 1    be9    b8   b10   b11   c11   c12   c13   c14   n13
 5net 1    n14   n15   o14   o15   o16   o17   o18
 6net 1    f16   f17   f18   f19
 7net 1   ne19  ne20
 8net 1   ne21  ne22
 9net 1   na21  na22  na23  mg23  mg24  mg25  mg26
10net 1   al25  al26  al27  si27  si28  si29  si30
11net 1   p30   p31   s31   s32   s33   s34   s35   s36
12net 1   fe56
13c define composition
14m fecomp    1. fe56
15m hcomp     0.73 h1  0.25 he4  0.02 n14
17c specify grid composition
18g    0  1  fecomp
19g   50  1  fecomp
20g   51  1  hcomp
21g   60  1  hcomp