Skip to content

Releases: sirocco-rt/sirocco

Python 80

12 Jan 14:12
Compare
Choose a tag to compare

Potentially final pre-domains code version. This is the version used for the runs for the submitted version of the Matthews et al. 2016 quasar paper.

Documentation of changes

Major Change: Populations Bug Fixes
We were getting a number of problems with noisy MC estimators in AGN models, particularly when using He I. To address this, if the level populations return something non-sensical then we default to dilute BB estimators and resolve. There is also more robust error reporting and a change in the way we report the situation when stimulated recombination is higher than photoionization, which can happen in non-converged cells. See #192

Major Change: Hydro
I am not entirely sure what the current status on reverb or hydro is in this version. @Higginbottom feel free to summarise if you want to document it here. I know Nick did a lot of work improving the hydro code in #178 but I'm not sure if this is yet the version which can communicate with Zeus - I think it can.

Major Change: Bound-bound collisional gaunt factor
This was set to 1 previously. Now set to 0.2 (more realistic), or u0/10 for low kT neutrals. Still only really accurate to 1 dex so should be improved, see below. Commit for change is agnwinds/python@4480157

Merged Pull Requests since last release:

  • #192 - Populations Bug Fixes
  • #185 - Collisional recombination + ionization code streamlining
  • #183 - Addition of a Bremsstrahlung source
  • #179 - Included calculation of xi
  • #178 - New hydro code

Bugfixes since last releasE:

  • #171 - kwd model - set correct variables (rhomin is different to rmin), JM had made error here
  • #176 - large number of sane_check errors in pop_kappa_ff_array, fixed by #192 with caveats below
  • #181 - lamppost model geometry option for power law sources
  • #173 - Need for proga.c (and py_ray and balance)
  • #187 - Hardwired free-free limits in kpkt()

Outstanding Problems / Caveats

  • #190 - segfaults at end of run can occur during MPI_FInalize step. Unsure why yet.
  • #188 - bound-bound collisions should be improved.
  • #186 - DR cooling is turned off, but included as a rate at the moment, this should be improved.
  • #162 - Generic problems with enums

I am not sure what the current status on reverb is in this version either, @smangham feel free to summarise if you want to document it here.

Python 79c

19 Aug 14:53
Compare
Choose a tag to compare

Stake in the ground prior to August 2015 Meeting.

Pull Requests merged since last release:

Bugfixes / Closed Issues since last release:

  • Incorrect clumpy volume division in mc_estimator_normalize #161
  • Bug in mode 8 of bands init #157
  • Large numbers of Error- trans_phot: Trying to scatter a photon which is not in a cell in the plasma structure #154
  • Extra diagnostics option problem bug #151
  • segfault from reverb code bug high #152

Python 79b

28 Apr 17:01
Compare
Choose a tag to compare

Release of Python, partly for use by Mark Kennedy but also it's about time there was a stake in the ground.

A few major changes in code organisation since last release:

  • #143 VFKY cross-sections are now tabulated ONLY. Using standard77 atomic data will not work with the new code. It's possible we should update the format of atomic data to reflect changes here. Use data/standard78 or similar. Atomic data had to be tabulated using the photo_xs.py routine in py_progs
  • This also involved fixing a fairly major problem with macro-atoms where they did not loop over all the required cooling terms. Macro-atom models agree pretty well for a fiducial model now. This didn't really affect the Cv model
  • #139 reorganisation of python inputs: additional source file setup.c
  • This also involved reordering of the parameter file
  • Reorganisation of macro-atom functions: additional source file macro_gov.c

Some minor changes too:

  • New functions and capabilities in py_progs. Particularly plotting routines and a new smarter update script pf_update2.py
  • Some small corrections to comments and constants throughout code.

Issues closed:
#144 - simple warnings on compilation
#8 and #44 - by input reorganisation
#43 - not by anything to do with this release, more because it was an old issue.
#86 - sigma_phot- now only one sigma_phot function
#141 - see above discussion of matom cooling terms.

Python 79a

06 Feb 17:02
Compare
Choose a tag to compare

I'm making a release here because I've recently incorporated @Higginbottom 's rate matrix ionization code, and in seems like there will be a lot of changes soon which reorganise the code a lot.

  • Most of the changes are in matrix_ion.c for this. I've also moved some of the duplicated code the macro-atom routines to a subroutine which deals in general with matrix inversions. This should still be considered beta code.
  • One can run using dilute BB matrix ionization (mode 8) or spectral model matrix ionization (mode 9).
  • The test pages for matrix ionization are here: https://sites.google.com/site/agnwinds/current-work-in-progress/matrix-ionization - testing is ongoing
  • Also a few small bugfixes: #138, #137, and #34
  • I also added minimum and maximum radii to KWD models. One must now specifiy kn.rmin and kn.rmax.

Python 78c

26 Jan 13:49
Compare
Choose a tag to compare

Two main changes from Python 78b- Bugfixes for two main issues:

  • #134 - simple bug involving normalisation of spectra on restart
  • #132 #135 - this involved creating a number of subroutines for sections of code which communicate estimators and various plasma quantities when in multi-processor mode

Commit agnwinds/python@65615a0 used for CV paper runs for the version originally submitted to MNRAS on 26 Jan 2015.

Python 78b

03 Dec 13:34
Compare
Choose a tag to compare

This is a release for Python 78b. This is intended to be prior to matrix work being included and the final version run for the CV paper 2014.

Changes

  • major change here- restructuring of the dev branch to contain the whole directory structure #119
  • implementation of microclumping
    • this is still not full tested/understood. Consult the issues #108 #129
  • implemented 'advanced mode', see #120
  • adopted astropy file formats for outputs, see #123

Major Bugfixes:
#117 - live or die doesn't agree with extract for spherical / symmetric models
This turned out to be a major problem, in that sometime around Python 70g the doppler shift statement got deleted in resonate.c. Tests results for this can be found on the google site.

Bugfixes:
#102 - wind file saved only for rank 0
#110 - changes in temperature not being accurately recorded
#111 - elimination of Debug and diag_on_off- see advanced mode above
#113 - problems with linelengths of model filenames
#114 - segfault in spectral cycles due to new variable w_orig
#118 - dvds was calculated incorrectly in spherical coords, so we adopted an on-the-fly method. See #126

Python 78a

02 Sep 15:06
Compare
Choose a tag to compare

This is the release for Python 78a.

This is intended as a stable verison, pre Nick's changes which incorporate the matrix ionziation scheme.

Only physics change is the one described by #90 - The two level atom code in lines.c now permits the model of mean intensity (power law or exponential) to be used when calculating radiative excitation. The others all fixed small bugs or small changes to improve clarity or stop errors.

Pull requests in this release:
#99 - Reporting issues from mean_intensity
#98 - Fix for infinite entries in spec files - default p_escape to 1.0 for low and high tau
#96 - Dynamic allocation of NION dimensioned arrays in plasma structure
#88 - New scheme for two level atom
#87 - definitions for ion and nebular modes

And the following small changes in commits:
agnwinds/python@ebc5922 - Put check around windsave command in python, so only rank0 writes
agnwinds/python@965d493 - Added pi_rates.c, not yet used
agnwinds/python@f64bb70 - corrected a load of set but unused variables which threw compiler warnings
agnwinds/python@2949341 - Makefile to uses -fno-aggressive-loop-optimizations for gcc > 4.8, bandaid fix for #100
agnwinds/python@2949341 - modified xdefine_phot so only calculate level emissivities if geo.pcycle ==0

Python 78

11 Jul 10:59
Compare
Choose a tag to compare

This is a release for Python 78.

This contains Issues and pull requests from 62 - 80. These include:

  • Increased NWAVES, N_PDF and NMODS for disk14 models
  • #79 #63 - Incorporated Travis tests for compilation and install, and also checks basic initialisation and atomic data readin
  • #74 - Fix for Bug #73. Now use frequency shifted to frame of cell then averaged
  • #76 - Only clean for population inversions if levels have a radiative transition between them
  • #77 - check if a photoionization edge is crossed (from Doppler shifts) along path element ds
  • #75 - Added errors for -ve rates, moved macro_pops call out of elements loop
  • #71 - Moving estimators increments from radiation into subroutines (estimators for PPL ionization solver and IP)
  • #69 - Fixed bug in which qdisk structure was incorrectly zeroed before photon generation
  • #67 - Scaling fix for temperatures higher than model grid
  • #64 #65 - Fix for q_recomb returning NAN
  • #62 - Changes to recomb.c to ensure that integrals converge when computing the recombination rates for very cold plasmas with the new extrap topbase data which extends to very high frequencies

The changes mostly relate to

  • disk models- ensuring that we deal with running off the edge of a stellar atmosphere grid
  • problems with macro atom modes, mainly relating to the estimators and macro_pops. Also a simple fix to q_recomb to make it more stable numerically
  • Changes to recomb.c described above
  • When calculating the bf opacity, we now shift the frequency to the correct rest frame, and also check if the photon crosses a bf edge along it's path element ds.
  • Fixes to anisotropic scattering modes to speed up the code when using the rejection method to choose a direction in an optically thick cell. Caused a speed up of up to a factor 5 in some cases.

This release is intended to be a stake in the ground prior to Sam starting work on the code, for JM's 2014 CV paper, and also for the July 2014 meeting.

Python 77

13 Dec 13:38
Compare
Choose a tag to compare

This is a release of Python 77

Bugfixes in release:

  • modification to saha to fix some of the problems in #40
  • modification to variable temperature so that macro_pops is used correctly, see #43 and note that ionization mode 7 is still not working properly in matom mode
  • Changed a loop around line920 in python.c to fix bug #44
  • Added new class of errors - the warning - as a partial fix to bug #47
  • Small change in wind2d.c to address issue #42
  • Removed redundant files to close bug #48

There has also been development work in Proga models. detail.

Main changes:

  • Significant rewrites on the PL and EXP representations of spectra in cells.
  • PL now uses a log representation and EXP can have -ve temperature (i.e. a rising exponential). The min and max frequencies of photons seen in a cell/band are now logged, and these are used in the variable temperature code as limits of integration for models.
  • Versions of IP and J have been added which log the component from direct and scattered radiation.
  • Proga is read into rtheta geometry rather than being superimposed on a cylindrical grid
  • adiabatic heating has been implemented when div v is negative
  • there is now a switch for adiabatic cooling/heating
  • some py_wind changes to report on extra stuff

Atomic 77

13 Dec 13:30
Compare
Choose a tag to compare

This is a release of atomic77 - note that it contains all the atomic data and not just the zipped up atomic77 directory. Ideally users should pull in changes from the data branch to avoid installing. There is also a tarball of atomic77 and the masterfile standard77 in ~/Dropbox/Python/atomic/atomic_77_release/.

The changes here were in order to fix bug #18 , and apply only to topbase cross section files. there are also some new macro atom data sets created for JM's work for macro atoms.

The procedure for extrapolating XSections was as follows:

  • read in the original topbase xsection
  • take the gradient in log space over the final 2 points
  • extrapolate using an extra 50 points distributed in log energy space up to 100KeV
  • if the Xsection is in the list off odd xsections, identified by eye, then we check if the gradient is >-2.5, then we fudge the gradient to -3 and extrapolate with that.

The results are summarised in the bug report, and the scripts used for the extrapolation are bundled here.