Skip to content

dev->main for Sirocco 1.3 - #1184

Merged
jhmatthews merged 83 commits into
mainfrom
dev
May 22, 2026
Merged

dev->main for Sirocco 1.3 #1184
jhmatthews merged 83 commits into
mainfrom
dev

Conversation

@jhmatthews

Copy link
Copy Markdown
Collaborator

No description provided.

kslong and others added 30 commits November 8, 2024 10:41
don't call call qdisk_init if we are restarting
Python->Sirocco string changes and change version to 1.0
Handling of low frequency photons in macro mode
* Keep low frequency photons

(update version to 1.1)

* Updates to regression.py  for pluto
* Looks at stats of cycle spectra

* Updates to fix several small bugs

Problm with generating a coordinate system when two input vectors parallel
or anti-parallel #1141

The problem reported in #1127 regarding run_check.py failing
when there are multiple domains. The routine no longer fails
but this is not a complete fix, since the results that are
reported only refer to the 0 domain.  A more complete fix seems
unjustified because multiple domains are rarely used.
* Save photons for visualization



* Split extra diagnostic file by thread

Also includes some changes concerning
when photons are saved to the extra
diagnostic file during detialed
spectral generation.
* Test of import routines

* Update to output format for rho in import routines

* Documenation
This homogenizes the file format
for spherical models to include
inwind (and addresses #1153)

Documnentation updates to
replace Python with Sirocco
in some but not all of the
py_prog routines
* Create README.md

Add rad_hydro_min README

* Add files via upload
This adds a new ionization method that allows one to run one_shot multiple times.

It changes when photmain is a allocated and then freed, With this change, space for photmain is allocated at the beginging of photon generation and deallocated after all estimators have been accumulated, but before the actual ionization changes are changed. The goal os this change is to minimize the maximum memory required by sirocco.

In the process of making these changes a number of issues came up, having to do principly with overflows by one, of some arrays, including photmain. These were fixed by increasing the size of photmain by 1, but it is not entirely obvious that this "bandaid" does not obscure some kind of other mismatch.

Valgrind also revealed that some of the rdpar inputs are not terminated. A check has been added for this, and the problem has been corrected, but I have not investigated why some inputs have this problem and others do not. An error is generated for the problems that do have the problems.

There is now additional information produced of the memory being used by sirocco during various parts of the program. This information is more extensive on linux than mac_os.

The version number has been incremented, because there are some changes in the windsave files; which means that this version of Sirocco does not read old versions of windsave files.
Adds a simple mechanism to speed up matrix_multi (if the derived T_e is not changing rapidly)
kslong and others added 29 commits February 8, 2026 13:51
In the LTE_ITERATE temperature search, zero_emit_lte now scales the
MC-phase heating to be consistent with the ion densities produced by
the Saha equation at each trial temperature.  Previously, heating was
left at the original MC-phase values while only cooling was recomputed,
causing a heating/cooling mismatch that led to convergence oscillations.

The scaling works as follows:
- Photoionization heating: scaled per-ion using heat_ion[nion] *
  (new_density[nion] / orig_density[nion]), since the per-ion breakdown
  is available from the MC transport phase.
- Auger (inner shell) heating: scaled per-ion the same way using
  heat_inner_ion[nion].
- Free-free, Compton, and induced Compton heating: scaled by the
  electron density ratio (ne_new / ne_orig).
- Non-macro line heating: scaled by the electron density ratio as an
  approximation, since there is no per-ion breakdown available for line
  heating.  This could be improved in future by tracking per-ion line
  heating contributions during MC transport.
- Macro atom heating (bf and bb): subtracted and recomputed from scratch
  at each trial temperature via macro_bf_heating and macro_bb_heating.

The IONMODE_LTE_ITERATE block in ion_abundances now calls calc_te_lte
(coupled temperature-ionization search) instead of calc_te (fixed
densities), with gain damping and density blending retained.

Also updates Wind.ionization.rst documentation to describe LTE_iterate,
and clarifies that LTE_te uses a fixed electron temperature while LTE_tr
uses the radiation temperature updated each cycle.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ors utilised when the -p option use. Fixed a possible memory leak fix in reduce_simple_estimators() and removal of duplicate semicolon
…otective change for MPI communication with uninitialised memory (Low Risk Changes)
…d-mpi-protection

Refactoring from static arrays to dynamically allocated arrays and protective change for MPI communication with uninitialised memory (Low Risk Changes)
…verflow-bug

Fixing a memory allocation overflow bug with higher number of processors utilised when the -p option use. Fixed a possible memory leak fix in reduce_simple_estimators() and removal of duplicate semicolon
initial attempt for truly isotropic central source on most recent dev branch
Adding ne plot to run_check command
Adding in a truly isotropic central source
… criteria met, (also run_check now has chmod +x permission)
… a threshold, tolerance, burn-in and lookback average, documentation updated along with changes
1) Fix to lookback on restarted runs giving an immediate zeroed history with a check that BOTH user's minimum cycles choice and the minimum previous cycles are respected.
2) Added modes.early_stopping= FALSE
3) Fix so units are consistant
4) Added Error calls
5) is a quality of life change but we don't have an extensive suite of tests already. Nice to have but unnecessary for this pull request
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Ionisation cycles convergence early stopping switch
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Copilot <copilot@github.com>
@jhmatthews
jhmatthews merged commit a20de68 into main May 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants