[root]/CCA/Components/Models/Radiation/RMCRT
randomNums
(3 files, 795 lines)
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 152 (100.0%) | 4160 (100.0%) | 27.3 |
harman | 124 (81.6%) | 4002 (96.2%) | 32.2 |
derekhar | 5 (3.3%) | 100 (2.4%) | 20.0 |
ahumphrey | 12 (7.9%) | 17 (0.4%) | 1.4 |
tsaad | 2 (1.3%) | 12 (0.3%) | 6.0 |
jthornoc | 4 (2.6%) | 12 (0.3%) | 3.0 |
jas | 2 (1.3%) | 11 (0.3%) | 5.5 |
dav | 2 (1.3%) | 5 (0.1%) | 2.5 |
jsutherland | 1 (0.7%) | 1 (0.0%) | 1.0 |
RMCRT_Test.cc
- The user can specify RMCRT:float or RMCRT:double.
problemSetup()
- added BC_bulletproofing
- added bulletproofing to catch if the the user is trying to save abskg but
it doesn't exist. The component hands RMCRT abskg but internally RMCRT:float
uses abskgRMCRT.
Ray.cc & RMCRTCommon.cc
Global:
setBC()
Added an additional template parameter. This parameter is used to fake out
the BC infrastructure when CCVariable<float> are being passed in. The infrastructure
doesn't handle floats. Thanks James.
0 lines of code changed in 8 files:
Global d_sigmaT4_label -> d_sigmaT4Label (consistency with the rest of the global labels)
RMCRT_test.cc/.h
- component defines either float or dbl RMCRT
- d_abskgLabel -> d_comp(onent)AbskgLabel
- No longer recomputing the abskg, temperature and cellType every timestep. Compute once in initialize()
and carryForward every timestep.
- Added DoublToFloat() task to scheduleTimeAdvance()
Arches/RMCRT.cc
- cleaned out DQMONEqnFac .h files
- component defines either float or dbl RMCRT
- scheduleTimeAdvance()
added calls to DoubleToFloat() task
- computeSource()
removed cellType carryForward. That's handled by RMCRT
Wasatch/RadiationSource
- component defines either float or dbl RMCRT
- Added DoublToFloat() task to scheduleTimeAdvance() to schedule_ray_tracing
RMCRTCommon.cc
- now using d_comp(onent)AbskgLabel and d_comp(onent)TempLabel
- Component now decides if communicated variables are doubles or floats
Added logic where appropriate.
More templates
- Added DoubleToFloat() task. This simply casts the CCVariable< double> -> CCVariable<float>
Radiometer
- Component now decides if communicated variables are doubles or floats
Added logic where appropriate.
More templates
Ray
- now using d_comp(onent)AbskgLabel and d_comp(onent)TempLabel
- Component now decides if communicated variables are doubles or floats
Added logic where appropriate.
More templates
- coarsen_Q(): This task carries forward coarse level variables on non-radCalc timesteps
- Added coarsen_cellType()task: This task computes cellType on the coarse levels, needs additional logic.
RayGPU.cc
d_sigmaT4_label -> d_sigmaT4Label (consistency with the rest of the labels)
OnTheFlyAnalysis/radiometer
- Component now decides if communicated variables are doubles or floats
______________________________________________________________________
S U M M A R Y
Failed: ARCHES-opt tests <<<< These tests fail due to an new material set for abskg. The answers are the same >>>
:rmcrt_bm1_ML: test failed comparison tests
:rmcrt_bm1_ML: (restart) test failed comparison tests
:rmcrt_bm1_DO: test failed comparison tests
:rmcrt_bm1_DO: (restart) test failed comparison tests
:rmcrt_bm1_ML_thread: test failed comparison tests
:rmcrt_bm1_DO_thread: test failed comparison tests
Failed: Examples-opt tests <<<< This commit drastically improves the answers >>>
:RMCRT_bm1_DO: test failed comparison tests
:RMCRT_bm1_DO: (restart) test failed comparison tests
:RMCRT_ML: test failed comparison tests
:RMCRT_ML: (restart) test failed comparison tests
Passed: Wasatch-opt tests!
325 lines of code changed in 10 files:
removed floatRMCRT/
There's a few missing pieces before the component is able to choose between float/double
RMCRT.
99 lines of code changed in 1 file:
Templated more tasks/methods/variables on the type double/float.
153 lines of code changed in 8 files:
Added a temporary method for scheduling the radiometer task. This version is not using
spatially scheduling.
Increased the number of processes used in a nightly RT test.
87 lines of code changed in 2 files:
Templated the DataOnion/AdaptiveMesh task and updateSum()
64 lines of code changed in 2 files:
Started templating tasks/functions. This will allow for either double or float RMCRT
when complete. Hardwired for double.
* this won't change the answers.
90 lines of code changed in 6 files:
fix some namespace issues int Ray et al that were causing build failures on mac dbg builds
3 lines of code changed in 1 file:
RMCRT_Test: scheduleTimeAdvance()
- For 2 level approach changed looping limits for sched_Refine_Q()
Ray.cc: sched_Refine_Q()
- Now using ghosts:AroundCells 1 for requires of divQ from the coarse level. *** Key
Converted input file into a multipatch 2L problem with Refinement ratio = 4
Now using 8 cores for nightly RT tests.
1 lines of code changed in 1 file:
Update the example component for the new radiometer. This does not include spatial scheduling of
the radiometer.
16 lines of code changed in 3 files:
Get RMCRT compiling on GPU again.
1 lines of code changed in 1 file:
When deleting radiometerPatchSet use removeReference()
9 lines of code changed in 2 files:
Moved the creation of radiometerPatchSet outside of getPatches(). This will fix a memory leak.
24 lines of code changed in 3 files:
* Add support for handling "Spatially scheduled" tasks in the taskgraph checksum ( MPIScheduler::verifyChecksum() ).
An example would be the radiometer task, which is not scheduled on all patches (only a smalll subset).
* This commit begins to address making this checksum more sophisticated.
1 lines of code changed in 1 file:
Added spatial scheduling machinery. It works with the OnTheFlyAnalysis:radiometer()
and needs to be incorporated into the RMCRT::RayTrace() task. It doesnt't work
with dbg builds due to an issue with schedule:verifyChecksum().
166 lines of code changed in 4 files:
doRecompileTaskgraph()
- recompile TG after a rad calc timestep to turn off all-to-all communication.
6 lines of code changed in 1 file:
Added comments about expense of scheduling all-to-all variables
added
doRecompileTaskgraph() : can trigger a taskgraph recompile
Radiometer;
- added a conditional around the requires for the all-to-all variables.
The radiometer and ray tracing tasks should only require all-to-all variables on
calculation timesteps
66 lines of code changed in 4 files:
Only schedule the "requires" for the super expensive
- abskg,
- sigmaT4
- cellType
variables on calculation timesteps. Carry forward timesteps ignore them.
The driving component must have needsRecompile() implemented with appropriate logic. This is
a 80% solution to the problem.
RMCRT_Test:
- added needsRecompile() which calls doCarryForward().
- formatting
doCarryForward()
- no longer passing in timestep
Ray.cc
sched_rayTrace()
- added logic around the requires.
doCarryForward()
- no longer passing in timestep
Radiometer.cc/ RMCRTCommon
doCarryForward()
- no longer passing in timestep
This shouldn't change the answers.
22 lines of code changed in 4 files:
problemSetup()
- added bulletproofing. Prevent the user from specifying a variable that
will be ignored. This falls outside the UPS spec. checking.
14 lines of code changed in 1 file:
Added bulletproofing to user inputs. The starting and ending points must differ by at least one cell.
10 lines of code changed in 1 file:
Now passing the grid into the problemSetup() tasks.
Added bulletproofing to VRLocationsMin/Max. They can't lie outside the
computational domain.
34 lines of code changed in 4 files:
Removed a label that is no longer part of the ray trace kernel.
0 lines of code changed in 1 file:
added printTask() to radiometer
5 lines of code changed in 1 file:
Moved BC bulletproofing code from problemSetup to new function.
The component can elect to not call this.
The flag d_onOff_setBC can now be set by the component and no longer a input file option.
For single level RMCRT problems the component should set all BCs and you want to set this
to be false, for multi-level you *may* want it be true.
Arches:RMCRT.cc
- added single level rmcrt algorithm to sched_computeSource()
Updated ups spec
37 lines of code changed in 2 files:
Fixes bug for non-cubic cells. This recommits the change in commit #52211, and extends it to the float version of RMCRT.
3 lines of code changed in 1 file:
A reversion to version 52201 for RMCRT files Ray.cc and floatRMCRT/Ray.cc.
33 lines of code changed in 1 file:
Fixed bug, causing DO-RMCRT regression test to fail. The bug was caused by an incorrect sequence of code in the updatesumI function.
18 lines of code changed in 1 file:
Fixed a data-onion RMCRT bug. The rare-case bug occurred when RMCRT went down a level, while hitting a wall, with reflections turned on.
43 lines of code changed in 1 file:
Fixed bug in RMCRT. The bug caused RMCRT to incorrectly compute the ray-path-length which is used to calculate the boundary fluxes for non-cubic cells.
3 lines of code changed in 1 file:
Create and destroy d_matlSet once.
2 lines of code changed in 1 file:
Fix memory leak.
10 lines of code changed in 1 file:
Allow underlying, raw Task to know it's deviceID when GPU-enabled. This commit is on behalf of Abhishek Bagusetty with modifications by Alan Humphrey.
2 lines of code changed in 2 files:
Destructor
Added conditional so d_matlSet is only deleted once.
5 lines of code changed in 1 file:
Remove the d_matlSet reference *before* you delete it.
RMCRT_test_1L and Arches:methane_rmcrt.ups are valgrind clean.
3 lines of code changed in 1 file:
Only RMCRTCommon{} should delete d_matlSet.
1 lines of code changed in 2 files:
Applied the final polish to the radiometer refactor.
RMCRTCommon
- made common variables static
Radiometer
problemSetup() Added conditional statement around
variables that must be read when using OnTheFly. These
variables are duplicates of the what RMCRT uses.
This commit will fix the restart bug in RMCRT_VR.ups file
35 lines of code changed in 5 files:
Now using static variables for
d_matl
d_matlSet
d_sigmaT4_label;
d_abskgLabel;
d_temperatureLabel;
d_cellTypeLabel;
d_divQLabel;
This class is instantiated more than once but only want to initialize these variables once.
Thanks Dav for all your help!!
28 lines of code changed in 2 files:
removed unused radiometer variables.
2 lines of code changed in 3 files:
More radiometer refactoring.
- removed radiometer methods and variables from ray.cc & ray.h
- Allow the radiometerFluxLabel to be modified.
The user interface has redundant entries and will be cleaned up shortly.
* The number of checkpoint variables will decrease by 1 causing the RT tests to fail*
414 lines of code changed in 4 files:
Further encapsulation of the radiometer code. Moved the core computations
to a function which will eventually be called by RMCRT
81 lines of code changed in 2 files:
(24 more)