Skip to content
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

Merging develop branch into master #33

Merged
merged 46 commits into from
Jan 21, 2016
Merged

Merging develop branch into master #33

merged 46 commits into from
Jan 21, 2016

Conversation

ftessier
Copy link
Member

No description provided.

mainegra and others added 30 commits November 10, 2015 10:58
The include guard was referring to the envelope geometry rather than the
union geometry. This resulted in the union geometry being undefined when
the envelope header was also included.
(Error reported by Randy Taylor Dec. 2014)
Change rejection criterion for fat photons arising from DBS
from iphatsrc=1 to iphatsrc>1.  Now, with directional source
biasing implemented in BEAMnrc, fat particles have
1 < iphatsrc <= NBRSPL, while thin particles have iphatsrc=1.
(Bug and solution by Marc-Andre Renaud).
Macro intended to enforce a minimum step of 1e-5 cm provided this is
< USTEP.  Previous version allowed particles to 1) take vanishingly small steps
near leaf boundaries (infinite loops) and 2) take a step > USTEP.  Definition
of macro now matches that in MLCE, which was corrected in 2009.  Propagation
of this bug must be due to the fact that SYNCMLCE was developed from an
older version of MLCE.  (Bug found by user Michael Martyn at National University
of Ireland, Galway).
Log files for EGSnrc configuration (configure script) and user
configuration (finalize_egs_foruser script) are now tagged with the
configuration name and the user name, so that previous configuration
logs are not overwritten.
Scan $EGS_HOME environment variable. Allow to reconfigure with
a different configuration name inside an existing EGS_HOME directory, but
in that case do not copy the user codes to prevent overwriting changes
by the user. Constrain the user code compilation list to user codes
actually found in EGS_HOME in case user has removed some of them.
…vacuum.

If E or B field exists, then ustep in vacuum is limited to smaxir(irl),
allowing first-order effects to be applied to charged particle's before
they're allowed to step right through the vacuum region.  Not the exact
solution we're working towards but okay for now.
And fix an infinite-rerender regression that was created in the initial port.

Several files were renamed due to the UI porting.

I eliminated the XML declarations in the converted UI files, because older
versions of Qt (4.2) try to interpret them as version declarations.
On a ~1300 region file of mine, sometimes the region list in the
display would overflow. It appeared that the "draw regions" while
loop was continuing, even though reg > maxreg. Changing form to
a for loop fixed the bug. The logic appeared sound, so I expect
something was trampling on memory.

In the process I corrected a `delete` to `delete[]` to comply
with Address Sanitizer.
    - Made clipping plane table fit within the widget view
    - Improved visual layout of the viewcontrol widget
The interactive scene render parameters have changed slightly. For the
scaling algorithm for each frame, we now use, not the
past render time, but the past render time per pixel, to determine
how much to scale the window down by. We also ignore the fixed time
overhead due to the track rendering.

Region picking has been moved into the ImageWindow class, and the
region list rendering has been optimized slightly to avoid repeating
the same work/checking number sizes too often.
Removed dead code and unneeeded variables in GeometryViewControl.
The transformation code has been moved to the ImageWindow, since
that reduces the message passing between that and the ViewControl.
In other words, give transformations priority over full-detail renders,
so that when an interaction is requested, the full-detail render is
aborted so that the faster, interactive rendering can start.
Note the removal of the XML declarations on the first lines
of the UI files -- old Qt uic does not handle them properly.
The change covered the else case of a branch in the dynamic render scaling
section. This branch is taken when it takes less that 30ms to render a frame at
full resolution; before this patch, when that happened, the requested view
scaling was equal to the view size so that only the top-leftmost pixel was
shown on screen.

Included are changes that prevent the ImageWindow from rendering a scene
before `render(...)` has been called at least once with an actual Geometry.
Fix egs_view thread porting regression where simple scenes black out
Take into account midpoint of cylinder when sampling within the shape.

Remove unnecessary 'this'
Fix sampling of point within cylinder shape
The egslst file from BEAMnrc does not list the Bremsstrahlung cross
section enhancement (BCSE) factors or if BCSE is even used. Modify the
code slightly to output BCSE info immediately after the info about
Directional Bremsstrahlung Splitting (DBS).

(Submitted by Dave Rogers)
Some file systems are case-insensitive. For example OS X relies on
HFS by default, which is case-insensitive. Hence when EGSnrc is cloned
to a Mac, changes are automatically applied to the repository because of
duplicate image file names (I6702 and i6702). Although not critical, it
is annoying. Change file names to avoid conflicts.
This is a format-only commit. The egs++ source code before and after
this commit compiles to identical object files.

The coding style is not consistent throughout the egs++ library. Use the
"Artistic Style" (astyle) code formatter to clean up the egs++ source
code: make indentation uniform at 4 spaces, split compound statements,
adjust braces and parenthesis placement and spacing, and indent
preprocessor code blocks.

It is better to do this in one swoop so as to avoid a large number of
format-only commits polluting the code history later on.

Add scripts/egs_style_standard file which contains the astyle options
to apply to new code, or after editing existing code:

astyle --options=$HEN_HOUSE/scripts/egs_style_standard "*.cpp" "*.h"

For reference, the options used for astyle 2.05 for this commit were:

--convert-tabs
--indent=spaces=4
--style=attach
--unpad-paren
--pad-header
--align-pointer=name
--break-closing-brackets
--add-brackets
--indent-preproc-block
ftessier and others added 16 commits January 8, 2016 19:29
The C++ configuration script sed commands tacitly relied on a trailing
space in empty variables in the EGS_CONFIG file. Add a "\?" switch in
sed to match cases where the variable is not defined; otherwise one ends
up working with the variable name instead of its value.

This is the root cause of issue #20.
Fix bug in cshrc additions script
GUIs now use default fonts defined in .gui_defaults.  Previously
myDefaultFont, defined in beamnrc_gui.tcl and dosxyznrc_gui.tcl,
overrode any other font definitions.  Now myDefaultFonts is only
enforced on main page of GUIs.
Prior versions of sprrznrc did not have this capability.  Should
automatically combine .egsdat files at end of run but the user
can also run with IRESTART=parallel to manually combine these files.
Also necessitated including egs_parallel.mortran in sprrznrc.make.
The changes in commit c67fc15 use a regular expression which is
incompatible with the FreeBSD version of sed version distributed with OS
X. Update with a regular expression which should be compatible across
the board.
First line of these files changed from blank to a single "#".
Subroutine egs_open_units chokes on blank lines and fails to read
the rest of the .io file.  The result was that some units are unassigned
(eg unit 1 to the .egslst file), resulting in mysterious fort.* on output.
Warnings in dosrznrc.mortran, flurznrc.mortran, sprrznrc.mortran were
due to these codes passing TITLE, an 80-element array of CHARACTER*1,
to GRAPHTITLE, a CHARACTER*(*) variable in SUBROUTINE XVGRPLOT.  Mismatch
was eliminated by first copying TITLE into a local version of
CHARACTER*80 variable, GRAPHTITLE, before passing to XVGRPLOT.
This folder contains the tools for packing the GUIs archive inside the
egs_configure GUI.
Target is placed in $HEN_HOUSE/pieces/linux and library location made
dependent to the LD_LIBRARY_PATH definition.
- Briefly describe Bielajew's EMF macros (emf_macros.mortran)
- Describe how to turn on EMF transport in user codes
- Explain how to turn on EADL atomic relaxations
- Use 1 instead of -IQ(NP) to convert E field from V/cm to 1/cm.
- Use RM instead of hard-coded 0.511 for the electron rest mass.
ftessier added a commit that referenced this pull request Jan 21, 2016
Merging develop branch into master
@ftessier ftessier merged commit 13c71fa into master Jan 21, 2016
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.

None yet

5 participants