Annotated XRB generator burst setup

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

Note

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

Generator

  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.
  4
  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.
 11
 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.
 19
 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
 28
 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.
 32
 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
 36
 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
 43
 44c Here we define the composition of material accreted from the companion
 45m acret 0.73 h1 0.250 he4 0.02 n14
 46
 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).
 54
 55c c Reference: THIS GRID FOR HE ACCRETION
 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
 64
 65c Reference: THIS GRID IS FOR H-RICH ACCRETION
 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
 75
 76c --- Parameter cards ---
 77c Now we set various parameters configuring how Kepler will run.
 78c These can be found in the docs.
 79
 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
 84
 85c ndump: Number of cycles between restart dumps
 86p ndump 10
 87
 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
100
101c nsdump: Save every nsdump restart dumps
102p nsdump 10
103
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
107
108c ncycqq: Number of KEPLER cycles between post-processor dump cycles
109p ncycqq 100000
110
111c npixedit: Graphics edits to the monitor are made every npixedit KEPLER cycles
112p npixedit 1
113
114c h1hdep: Central hydrogen abundance at which the #hdep dump is made
115p h1hdep -1.d0
116
117c he4hedep: Central helium abundance at which the #hedep dump is made
118p he4hedep -1.d0
119
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
123
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
130
131c jp0: Innermost zone to plot
132p jp0 40
133
134c lcout: Number of outer layers to be written in light curve output file, .lc
135c 0 means write no file
136p lcout 10
137
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
141
142c abunlim: Least elemental mass fraction plotted or listed in a term ion edit
143p abunlim 1.d-4
144
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.
150
151
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?
157dstat
158
159c radius0: radius of inner boundary (cm)
160p radius0 1.0e+06
161
162c summ0: Mass inside inner boundary (g)
163p summ0 2.8e+33
164
165c xlum0: luminosity emerging from inner surface (erg/s)
166p xlum0 1.6e+34
167
168c dnrtmax: Maximum fractional density change allowed between zones before adzoning
169p dnratmax .25
170
171c rnmin: Minimum radius for which adzoning is considered (cm)
172p rnmin 1.e+6
173
174c tnmin: Minimum temperature for which adzoning is considered (K)
175c (adzoning vs rezoning vs dezoning?)
176p tnmin 1.e+4
177
178c dnmin: Minimum density for which adzoning is considered
179p dnmin 2.e-5
180
181c izonef: Rezoning flag. izonef <= 0: no rezoning
182p izonef 0
183
184c idzonef: Dezoning flag. idzonef <= 0: no dezoning
185p idzonef 0
186
187c rnmax: Maximum radius for which rezoning is considered
188p rnmax 1.e+14
189
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
195
196c fracrz2: See fracrz1 above and relevant docs section
197p fracrz2 .5
198
199c abarratm: Used for determining rezoning based on abar.  See abarrat0 and docs.
200p abarratm 1.3
201
202c fmax0: Adzone mass fraction parameter.
203c See table in docs and related parameters (fmaxm, fmax1, fmaxcrz0, etc)
204p fmax0 .01
205
206c fmax1: See fmax0 and docs, has to do with adzoning on mass fraction ranges
207p fmax1 .015
208
209c fmax2: See fmax0 and docs, has to do with adzoning on mass fraction ranges
210p fmax2 .03
211
212c accrate: Rate at which mass in the form of new zones is added to the surface
213c of the star (Msun/yr).
214c
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).
222c
223c Note: This prescription will work best for coarse and roughly equal surface zoning.
224c
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
233
234c minzone: Do not rezone the innermost minzone zones
235c minzone = 0 allows rezoning innermost zone
236p minzone 51
237
238c zonemmin: Minimum mass that a pair of zone may have and still be allowed to
239c be adzoned
240p zonemmin 1.5d19
241
242c zonemmax: Do not dezone zones bigger than zonemmax
243p zonemmax 1.d20
244
245
246
247
248
249
250
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
256
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
260
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.
267
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.
273
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.
279
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.
287
288
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
293
294c This specifies the BURN generator file's name.  See rpabg for the
295c co-processing network's specification.
296genburn rpabg
297
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.
301mapburn
302
303c xkimt: Multiplier on IBEN1 opacity (why this value? what's IBEN opacity?)
304c p xk1mt 1.5284
305
306c xk2mt: Multiplier on IBEN2 opacity (why this value?)
307c p xk2mt 1.5284
308
309c xk3mt: Multiplier on Christy opacity (why this value?)
310c p xk3mt 1.5284
311
312c xk4mt: Multiplier on Compton opacity (why this value?)
313c p xk4mt 1.5284
314
315c rxkcmt: Multiplier on conductive opacity (why this value?)
316c p rxkcmt 1.5284
317
318c t7peek: Opacity will be no larger than xkmin (p# 50) + t7peek * rho * (T_7)**4
319p t7peek 1.e+50
320
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
329
330c jshell0: Innermost zone in which there is neutrino deposition (??)
331p jshell0 51
332
333c tqsemin: Floor on the temperature used in the ISE (aka QSE) calculation
334p tqsemin 3.e+9
335
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
340
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.
346
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
355
356c kaptab: Select opacity table
357c 0 -> old (??)
358p kaptab 0
359
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
366
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
370
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
375
376c nadapb: Enable Adaptive BURN network adjustment
377c 0 -> off
378c 1 -> on
379p nadapb 1
380
381
382c - Numerical Parameters -
383c dtnew: Initial timestep (sec)
384p dtnew 1.e-4
385
386c maxit: Maximum iterations on R, T, L (radius, temp, luminosity?) before retrying with smaller dt
387p maxit 40
388
389c dtcr: Maximum desired fractional change in radius per step
390p dtcr .05
391
392c dtct: Maximum desired fractional change in temperature per step
393p dtct .05
394
395c dtcd: Maximum desired fractional change in density per step
396p dtcd .10
397
398c dtcq: Maximum desired fractional linear contraction per step
399p dtcq .1
400
401c dtcdt: Maximum fractional change in timestep per step
402p dtcdt .99
403
404c nstop: Maximum number of cycles (cycles, same as steps?)
405p nstop 1000000
406
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
410
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.
414
415c dyqmult: If iytsflag (p# 67) >= 1, increase the timestep sensitivity to changes in yq
416c by a factor of dyqmult
417p dyqmult 2.
418
419c dtcp: Maximum desired fractional change in abundances per step.
420p dtcp .15
421
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
425
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.
430
431c dtcut: Fractional timestep reduction when a step is redone
432p dtcut .1
433
434c tfcrbu: If the maximum fractional change in radius during a timestep exceeds
435c tfcrbu * dtcr (p# 6), then redo step
436p tfcrbu 2.
437
438c tfctbu: If the maximum fractional change in temperature during a timestep
439c exceeds tfctbu * dtct (p# 7), then redo step
440p tfctbu 10.
441
442c fclmax: Maximum allowed relative convergence error in luminosity
443c (wtf is this so huge?)
444p fclmax 1.e+99
445
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
449
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
453
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
459
460c yfloorbx: Elemental mass fraction floor for making abundance backups
461c (See abunminx (p# 204)).
462p yfloorbx .003
463
464c fcrmax: Maximum allowed relative convergence error in radius
465p fcrmax 1.d-8
466
467c fctmax: Maximum allowed relative convergence error in temperature
468p fctmax 1.d-8
469
470
471c=======================================================================
472c Now follows the command file
473c=======================================================================
474//*
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
508plot
509c =========================
510c MATCH TO accmass - set mass of outer zone
511@xm(jm)<1.01d17
512p maxbak 20
513p accdepth 1.d99
514p iterbarm 999999
515c =========================
516@time>1.d17
517zerotime
518p toffset 0.
519setcycle 0
520cutbin
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
552c
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}
558c
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
567c
568c --- plotting ---
569c p ipixtype 31700
570p irtype 11
571c
572c --- output ---
573p ibwarn 0
574c
575c --- termination condition ---
576c @time>8.E+05
577c end

BURN Generator

 1c rpa3bg -- burn generator deck for x-ray burst calculations
 2c
 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
16c
17c specify grid composition
18g    0  1  fecomp
19g   50  1  fecomp
20g   51  1  hcomp
21g   60  1  hcomp