dev->main for Sirocco 1.3 - #1184
Merged
Merged
Conversation
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
* 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.
/Python can be run
* 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.
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
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)
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
Lte iterate
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.