-
Notifications
You must be signed in to change notification settings - Fork 148
Fix #512: pegsless error reading media consisting of a single element. #1182
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Fix #512: pegsless error reading media consisting of a single element. #1182
Conversation
Authors of the EGSnrc files are unequivocally identified in the git commit log. However, we also want to preserve the names of authors and contributors inside text files headers, as much as possible, in case the files are extracted from the repository (or the repository eventually moves to another version control system). This script compares, for each modified file in a commit range (passed as the first argument, master..HEAD by default), the commit authors of the file against the authors and contributors listed in the file header. It reports the missing names, and returns 1 (error) if some authors are missing, or 0 (success) otherwise. Binary files are excluded from the comparison, as well as files that do not contain authorship information. The latter are reported at the end of the output, skipping over files that do not contain author information (e.g., image files). This script is intended to run automatically as a github action. It implies that all commit authors should be listed under "Contributors", regardless of the significance of the contribution, so that the script runs cleanly. The output of the github action should always be inspected before merging to check the files that don't contain authorship information.
Clarify that multiple-scattering transport is triggered only if the intended electron step is longer than a skin depth, even in bulk media away from any region boundaries. This improves efficiency, because a multiple-scattering step costs about the same as 3 single-scattering steps (the default skin depth is 3 mean free paths). Below a skin depth, it is more efficient (and more accurate) to use single-scattering.
Fix the output message in the egslst file for BEAMnrc simulations about the number of brems events the took place. When DBS was turned on, it would always read zero.
Fix a bug in egs_phsp_scoring where the electron energy for IAEA phase-spaces was written as the total energy instead of the kinetic energy. This was a critical bug.
Fix a bug where the source collection fluence was not calculated properly when multiple transformations were performed on a single base source.
The documentation in the source code for core EGSnrc parameters options is updated match HEN_HOUSE/src/get_inputs.mortran
This fix divides phase space sources used in parallel runs into npar*nchunk equal segments, where npar is the number of parallel runs and nchunk is the number of chunks (defaults to 10). Each chunk of the parallel run is then assigned its own segment of the phase space source outside of which it will not sample. This scheme, identical to that used in the EGSnrc mortran codes, should ensure relatively even sampling of the phase space source over the entire parallel run.
Any remaining histories after completion of npar*nchunk simulations chunks reuse particles from the last segment of the phase space file.
Fix typo in hownear when particle in bounding box determining which of the repeated geometries to check: Using nz rather than nxy when computing index of repeated geometry array results in addressing array index out of bounds with subsequent segfault error. Showed when electron transport turned ON up during dose calculations around a CivaDot source using egs_dose_scoring and egs_app and 2 microns regions. It did not affect photon-only nor egs_kerma calculations since there is no call to hownear. ;-)
Fix a bug in egs_circle_perpendicular that made the geometry invalid for any cases where the circle was expected to face away from the z-axis.
Changes to be committed: modified: egs++/ausgab_objects/egs_fluence_scoring/egs_fluence_scoring.h
- Added virtual methods setRussianRoulette and splitTopParticleIsotropically needed by the radiative splitting object. Changes to be committed: modified: egs++/egs_application.h
- Added two new methods needed by the radiative splitting object and provided more information in comments. - Turn ON/OFF EGSnrc internal radiative splitting (UBS) void setRadiativeSplitting( const EGS_Float &nsplit ); - Turn ON/OFF EGSnrc internal Russian Roultette + UBS void setRussianRoulette( const EGS_Float &iSwitchRR ); - Split particle uniformly in 4Pi void splitTopParticleIsotropically( const EGS_Float &fsplit ); Changes to be committed: modified: egs++/egs_advanced_application.h
- Added two new methods needed by the radiative splitting object and provided more information in comments. - Turn ON/OFF EGSnrc internal radiative splitting (UBS) void setRadiativeSplitting( const EGS_Float &nsplit ); - Turn ON/OFF EGSnrc internal Russian Roultette + UBS void setRussianRoulette( const EGS_Float &iSwitchRR ); - Split particle uniformly in 4Pi void splitTopParticleIsotropically( const EGS_Float &fsplit ); Changes to be committed: modified: egs++/egs_advanced_application.cpp
Initial radiative splitting naively just turned ON EGSnrc internal flag nbr_split to split brems and annihilation events uniformly. However no charged particle RR was played after pair production (i_play_RR) nor were secondary photons, produced by charged particles surviving RR after bremsstrahlung, split. -------------------- Radiative splitting: -------------------- now turned ON before a bremsstrahlung event for a primary or a fat charged particle. It is turned OFF after the brems event to avoid higher order splitting. Fluorescent fat photons, generated by fat charged particles (survived RR) are also split. NOTE: Not done for annihilation yet! Coming up! This time RR is turned ON using EGSnrc internal flag i_play_RR so that RR is played after pair events. RR can be turned OFF by entering a negative splitting number. NOTE2: Brems events play RR intrinsically hence it can't be turned OFF. Setting i_plpay_RR affects pair production ONLY. Changes to be committed: modified: egs++/ausgab_objects/egs_radiative_splitting/egs_radiative_splitting.cpp modified: egs++/ausgab_objects/egs_radiative_splitting/egs_radiative_splitting.h
- Split annihilation in flight and at rest events for primary and fat positrons.
This gets rid of compilation warnings that LITTLE_ENDIAN, BIG_ENDIAN, and PDP_ENDIAN were already defined on macOS.
Add a new case for aarch64 in the config guess script. The -mcmodel=medium option is not available on ARM architecture, so this is handled. Some of the programs fail to build on aarch64 without setting -Wno-narrowing compiler option, so this is added.
* setup.sh is called when container is created. It installs required packages and performs the EGSnrc configuration * build-gui-apps.sh is called after the container is created and builds the GUI apps. It relies upon the configuration being created and the .bashrc having been setup * .gitignore is updated to ignore the files created when building the devcontainer configuration. Also added additional QT conf files that are generated during build * README.md provides some basic documentation about using devcontainer
Fix a bug in the field definition pop-up window for dynamic and sync jaws in beamnrc_gui. The GUI would display an error about a bad window parent. Rebase on develop
This issue was caused by erroneously throwing an error when any input between the :start/stop media definition: delimiters or in the material data file was 1 character long. It can be traced back to the fact that the subroutine GET_INPUT_PLUS, used to read media inputs, is heavily based on (i.e. some blocks directly copied from) GET_INPUT, the routine used to read general .egsinp parameters. GET_INPUT allows for the input of a "TITLE" string for which the check on single character input is relevant (I think). But the "TITLE" input is not relevant for media inputs, so I've also stripped all references to this input parameter. |
Addresses #512