[root]/Core/Grid
BoundaryConditions
(31 files, 5948 lines)
PatchBVH
(9 files, 821 lines)
Variables
(94 files, 12954 lines)
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 312 (100.0%) | 5121 (100.0%) | 16.4 |
ahumphrey | 34 (10.9%) | 2265 (44.2%) | 66.6 |
harman | 24 (7.7%) | 725 (14.2%) | 30.2 |
guilkey | 64 (20.5%) | 721 (14.1%) | 11.2 |
allen | 32 (10.3%) | 632 (12.3%) | 19.7 |
bpeterson | 15 (4.8%) | 249 (4.9%) | 16.6 |
jas | 119 (38.1%) | 240 (4.7%) | 2.0 |
dav | 19 (6.1%) | 233 (4.5%) | 12.2 |
cgritton | 4 (1.3%) | 54 (1.1%) | 13.5 |
tsaad | 1 (0.3%) | 2 (0.0%) | 2.0 |
comment clean up
0 lines of code changed in 2 files:
Put the correct guts inside of getOtherLevelPatches55902.
0 lines of code changed in 2 files:
Hacking in a "fix" that will get the RT passing again. Hopefully this will be
revisited some day.
68 lines of code changed in 3 files:
Interpolators now return the number of entries that need to be looped over
in the code that calls them. Currently, this number is the same as the d_size
for all of the interpolators except the fastCPDI. fastCPDI previously only allo
wed the hash function to reach 27, but now it can go as high as 64, but it
usually will not. This commit doesn't change any answers in MPM, IMPM or
MPMICE.
235 lines of code changed in 50 files:
white space clean up
1 lines of code changed in 1 file:
Added a method to help us work in L-shaped domains with less confusion
0 lines of code changed in 4 files:
Forgot to remove a cout statement
0 lines of code changed in 1 file:
This fixes a bug determining fine level patches from coarse level patches. The bug seemed to only manifest itself in an L-shaped domain. This fix is explicit where the prior code had a fudge factor.
20 lines of code changed in 1 file:
Just some minor cleanup on this computeVariableExtentsWithBoundaryCheck()
10 lines of code changed in 1 file:
Added new method for computing VariableExtents. It defaults to the standard computeExtents unless the computationnal domain is non-cubic and
the the number of ghostcells requested is > 5.
Brad & Todd
77 lines of code changed in 2 files:
added the ability of the user to init the simulation but wait until VisIt is connected to run
3 lines of code changed in 1 file:
more descriptive exception message(s) when multiple level boxes and multiple levels don't align.
0 lines of code changed in 2 files:
Now compiling fastCpdiInterpolator. Seems to work...
353 lines of code changed in 4 files:
Progress towards bringing the fast implementation up to date.
39 lines of code changed in 2 files:
clean up the current time incrementing, delT calculation, and sim controller reporting
0 lines of code changed in 3 files:
These may not work yet, but at least they'll compile now if added to sub.mk.
12 lines of code changed in 2 files:
insideBoxes_ups()
- removed flawed logic.
1 lines of code changed in 1 file:
Store the level boxes specified in the ups file in a vector<BBox>. This vector is searched
if an RMCRT ray is going out of bounds.
Added <Grid>
<nonCubic_domain> bool </nonCubic_domain>
</Grid>
Enabled bulletproofing in RMCRT in the bounding ray approach.
80 lines of code changed in 3 files:
cleanup:
- added dividers
- horizontal and vertical spacing
- more descriptive exception messages
116 lines of code changed in 1 file:
Added linearInterpolation for stencils. Not tested at this point.
0 lines of code changed in 2 files:
This commit allows for dumping the grid.xml file in binary. It is turned off by default at this point.
Additionally, the <Data> section is split out of the grid.xml file and put into its own file (XML/ASCII) -
but only when using the XML_TEXTWRITER or the binary output.
If the grid is output in binary, you can use the "puda/grid_reader.cc" stand alone program to
display it (in XML) so you can visually see what is in the file. It is important to note that
when outputing in XML, we can (and do) ignore (not write) tags that are meaningless (in certain situations)
or have a default when they do not exist in the file. However, in the binary version, we have to write them all
out. I have tested against our local regression tests, but it is possible that there are some
seldomly used flags that are not yet written to the binary grid.xml file that we will need to take
care of adding in if/when they come up.
M CCA/Components/DataArchiver/DataArchiver.h
M CCA/Components/DataArchiver/DataArchiver.cc
- Finished implementing the writeGridBinary() function.
- Drop out of writeto_xml_files() immediately if not an I/O timestep. Previously it didn't
actually do anything, but it was not clear that it was not doing anything.
- Currently, to turn on binary output of grid.xml, you need to edit the code and
uncomment the writeGridBinary() call (and comment out the writeGridOriginal()).
Hopefully soon this will just be the default so we can get rid of the multiple
cases and extra code.
- Create a shared writeDataTextWriter() so that both the XML_TEXTWRITER and binary version
can share the code to dump the data.xml file.
- procOnLevel is a boolean array, so treat it as such.
- Swat some endls that take a lot more typing then just a \n.
- White space for better readability, update some formatting for consistency.
M CCA/Components/SimulationController/AMRSimulationController.cc
- Indentation is your friend.
- Remove tabs, line up code, white space.
M CCA/Components/SimulationController/SimulationController.cc
- Move local stdDeviation() routine to just above where it is used. Make static.
- Swat endls.
- White space for readability.
- Remove end of lines from exception messages where they are not needed.
M Core/DataArchive/DataArchive.h
M Core/DataArchive/DataArchive.cc
- Alphabetize #includes.
- Add a constant magic number to designate binary grid.xml files. Used by the code to verify
which version (xml vs binary) is being read. GRID_MAGIC_NUMBER
- Remove the "ref_cnt" and "lock" class variables as it appears they aren't used, and they don't
do anything. I believe they are left over vestiges of days long past.
- Remove "d_grid_path_and_filename" as all we need is the path and that is already stored.
- White space and consistent indentation.
- Added code to read in the new binary grid.xml files.
- Removed a huge "#if 0" section. Most likely left over from a previous version of UDA reading.
It would be good to converge on a single method and only have one set of code...
M Core/Grid/Grid.h
M Core/Grid/Grid.cc
- Add in readLevelsFromFileBinary() code to support DataArchive reading of new binary grid.xml.
As you can see from the (short) size of this routine, reading the binary version is much
simpler (especially compared to the streaming (non-DOM based) xml parsing that we also
currently do).
- Make use of longer lines as we non-longer are limites to 80 columns - where it makes sense.
- Add "{" to single line if statements as per coding standard.
- Remove some debug statements.
- Line up code for easier reading.
M Core/Grid/Level.cc
- White space / line up code for easier reading.
M Core/Grid/SimulationTime.cc
- White space / line up code for easier reading.
- Removed the deprecated "<max_iterations>" check. It hasn't been used in a long time.
M StandAlone/tools/puda/grid_reader.cc
- New, stand alone program to read a binary grid.xml file and display a human readable XML version.
- If you update this code, make sure it matches the writing in DataArchiver and the reading in
DataArchive.
M StandAlone/tools/puda/sub.mk
- Build grid_reader.
165 lines of code changed in 6 files:
The main changes in this commit only effect a simulation when <outputNthProc> is
set (> 1) in the .ups file.
This commit allows for PIDX output on every process for a time step
output, while using every Nth process (if so specified) for UDA
checkpoint output. Eventually the need for this Nth Proc changing
hack (and Nth proc output itself) should go away when PIDX fully takes
over I/O.
Note, when using "Nth Process Output", both a checkpoint and a time step save
CANNOT occur on the same time step. Therefore the time step output is postponed
for one time step.
On a slightly different note, we use the term proc badly... we should use process,
or perhaps better yet, rank... as proc is usually taken to mean "processor", but
in MPI's case, means process - and the term MPI uses for process is rank.
D CCA/Ports/LoadBalancer.cc
D CCA/Ports/LoadBalancer.h
A + CCA/Ports/LoadBalancerPort.cc
A + CCA/Ports/LoadBalancerPort.h
- Renamed from LoadBalancer to LoadBalancerPort to avoid confusion with the LoadBalancer itself.
- Added "setNthProc()" so that the SimulationController can change the value as needed.
M CCA/Components/DataArchiver/DataArchiver.h
M CCA/Components/DataArchiver/DataArchiver.cc
- Added postponeNextOutputTimestep(). This pushes off the output of a time step by one
time step. (This occurs if using Nth Process Output and a checkpoint and a time step
where to occur on the same time step.)
- Added savingAsPIDX() boolean query function so that the SimulationController
can avoid doing all of this hack when we are not using PIDX.
- Removed "getCurrentTimestep()" and "getCurrentTime()", as, per the documentation on them,
they should not be used anyway; you should get this info from the shared state. Note,
the DataArchiver name (getCurrentTime()) is different from the shared state name
(getElapsedTime()) which was also confusing.
- Pass const string parameters by reference.
- White space cleanup / alignments.
- If the input file has no <save> labels, but specifies an output interval, throw an exception.
- If the 'logname' is not available when running a simulation, put 'unknown' instead of ignoring.
Should probably find a better fix then 'unknown', but that will have to wait for another day.
- Swat some evil endls. :)
- Don't calculate 'currsecs' on every process, just on rank 0.
- Removed all calls to usingMPI() as Alan deprecated it in a recent commit.
- procOnLevel is (I hope) a boolean array... so declare and use it as such.
- Don't name a variable with a single letter. n -> var_cnt
- Did I mention white space cleanups... Please for the sake of older eyes...
M CCA/Components/ICE/ICE.cc
M CCA/Components/Models/FluidsBased/AdiabaticTable.cc
M CCA/Components/Models/FluidsBased/NonAdiabaticTable.cc
M CCA/Components/Models/FluidsBased/NonAdiabaticTable.h
M CCA/Components/Models/FluidsBased/SimpleRxn.cc
M CCA/Components/Models/FluidsBased/SimpleRxn.h
M CCA/Components/Models/Radiation/RMCRT/Radiometer.cc
M CCA/Components/OnTheFlyAnalysis/MinMax.cc
M CCA/Components/OnTheFlyAnalysis/1stLawThermo.cc
M CCA/Components/OnTheFlyAnalysis/containerExtract.cc
M CCA/Components/OnTheFlyAnalysis/lineExtract.cc
M CCA/Components/OnTheFlyAnalysis/momentumAnalysis.cc
M CCA/Components/OnTheFlyAnalysis/particleExtract.cc
M CCA/Components/OnTheFlyAnalysis/planeExtract.cc
M CCA/Components/OnTheFlyAnalysis/statistics.cc
- Use shared state getElapsedTime()
- Naming conventions: sharedState -> d_sharedState (to match other class vars in file).
- White space / alignments / etc.
M CCA/Components/LoadBalancers/CostProfiler.cc
- White space separation of #includes between CCA and Core
M CCA/Components/Arches/PressureSolverV2.cc
M CCA/Components/Arches/Radiation/RadPetscSolver.cc
M CCA/Components/Examples/Poisson2.cc
M CCA/Components/Examples/DOSweep.cc
M CCA/Components/Examples/RMCRT_Test.cc
M CCA/Components/Examples/RegridderTest.cc
M CCA/Components/Examples/SolverTest1.cc
M CCA/Components/FVM/ElectrostaticSolve.cc
M CCA/Components/ICE/impAMRICE.cc
M CCA/Components/ICE/impICE.cc
M CCA/Components/LoadBalancers/CostProfiler.h
M CCA/Components/LoadBalancers/DynamicLoadBalancer.cc
M CCA/Components/LoadBalancers/ParticleLoadBalancer.cc
M CCA/Components/MPM/AMRMPM.cc
M CCA/Components/MPM/ImpMPM.cc
M CCA/Components/MPM/SerialMPM.cc
M CCA/Components/Parent/Switcher.cc
M CCA/Components/ReduceUda/UdaReducer.h
M CCA/Components/ReduceUda/UdaReducer.cc
M CCA/Components/Regridder/RegridderCommon.h
M CCA/Components/Regridder/RegridderCommon.cc
M CCA/Components/Regridder/SingleLevelRegridder.cc
- LoadBalancer -> LoadBalancerPort
- White space cleanup / alignments.
M CCA/Components/LoadBalancers/LoadBalancerCommon.h
M CCA/Components/LoadBalancers/LoadBalancerCommon.cc
- LoadBalancer -> LoadBalancerPort.
- Add setNthRank().
- getOutputProc() -> getOutputRank().
- Whitespace / alignment.
- Fix comment to indicate getOutputProc is returning an MPI rank.
M CCA/Components/LoadBalancers/ProfileDriver.h
M CCA/Components/LoadBalancers/ProfileDriver.cc
M CCA/Components/Regridder/TiledRegridder.cc
M CCA/Components/Schedulers/MPIScheduler.cc
M CCA/Components/Schedulers/SchedulerCommon.h
M CCA/Components/Schedulers/SchedulerCommon.cc
- Cosmetics: Whitespace / alignment / coding standards / alphabetize #includes / etc.
- LoadBalancer -> LoadBalancerPort
M CCA/Components/Schedulers/OnDemandDataWarehouse.h
M CCA/Components/Schedulers/OnDemandDataWarehouse.cc
M CCA/Components/Schedulers/Relocate.h
M CCA/Components/Schedulers/Relocate.cc
- Name class variables according to naming convention. (eg: aborted -> d_aborted).
- Be consistent with naming convention of class variables in same file.
- LoadBalancer -> LoadBalancerPort.
M CCA/Components/Schedulers/TaskGraph.h
M CCA/Components/Schedulers/TaskGraph.cc
- LoadBalancer -> LoadBalancerPort.
- White space. Name variable "subset" more accurately: "handling_rank". I don't know
why it was named "subset" to begin with as it doesn't appear to be a "set" to me...
M CCA/Components/Schedulers/UnifiedScheduler.cc
- White space.
M CCA/Components/SimulationController/AMRSimulationController.cc
- There are a lot of cosmetic cleanups in this file, but the real/main change is:
- Add in hack to handle changing from "nth process output" (for checkpoints) to
"1 process output" (for time steps) when running with PIDX (and nth process is > 1).
- Declare variables (start) where they are used, not at the top of a function.
- Move the terminal output of the 0th timestep out of the main simulation loop.
- White space / alignment / etc.
- LoadBalancer -> LoadBalancerPort.
M CCA/Components/SimulationController/SimulationController.h
M CCA/Components/SimulationController/SimulationController.cc
M CCA/Components/Solvers/AMR/AMRSolver.cc
M CCA/Components/Solvers/AMR/HypreDriver.cc
M CCA/Components/Solvers/AMR/HypreDriverStruct.cc
M CCA/Components/Solvers/CGSolver.cc
M CCA/Components/Solvers/HypreSolver.cc
M CCA/Components/Wasatch/Expressions/Coordinate.cc
M CCA/Components/Wasatch/Expressions/PoissonExpression.cc
M CCA/Components/Wasatch/Expressions/Pressure.cc
M CCA/Components/Wasatch/Expressions/RadiationSource.cc
M CCA/Components/Wasatch/Wasatch.cc
M CCA/Ports/Scheduler.h
M CCA/Ports/sub.mk
M Core/DataArchive/DataArchive.h
M Core/DataArchive/DataArchive.cc
M Core/Grid/Grid.h
M Core/Grid/Grid.cc
M Core/Grid/Level.h
M Core/Grid/Level.cc
M StandAlone/tools/uda2vis/uda2vis.cc
- LoadBalancer -> LoadBalancerPort.
- Cosmetic white space, alpha, etc.
M CCA/Ports/Output.h
- Removed getCurrentTimestep() and getCurrentTime() as the user should get
them from the shared state.
- Added postponeNextOutputTimestep().
- Added savingAsPIDX().
13 lines of code changed in 4 files:
Updated ElectrostaticSolve to handle multiple materials
33 lines of code changed in 2 files:
Add some comments to the particle scaling part of this code to help avoid
future misinterpretations in its use.
14 lines of code changed in 1 file:
Second try to clean up the SimState
70 lines of code changed in 2 files:
added debug streams and state vars
12 lines of code changed in 1 file:
backed out sim state changes
136 lines of code changed in 2 files:
Added new FVMMaterial which effectively is a SimpleMaterial until new features are added. Also changed class variable names to match the d_* naming convention
21 lines of code changed in 2 files:
cleanup of the simulation state - most everything is now private
192 lines of code changed in 2 files:
added debug stream wrapper for the in-situ
3 lines of code changed in 1 file:
Introduction of the Lockfree Pool data structure and the new CommunicationList. Using this now to replace CommRecMPI and its use of the problematic MPI_Testsome() and MPIWaitsome() calls. We now store individual requests in a lock/wait/contention free Pool and call MPI_Test() and MPI_Wait on individual MPI_Requests.
This fixes the MPI_Buffer memory leak seen in the threaded scheduler, in which multiple threads think they will recieve a message, allocate a buffer and then only one thread does the actual recieve and calls the after-communcation handler to clean up the buffer. This memory leak was most pronounced at large scale with RMCRT due to the global halo requirement.
Also backing out the support for non-uniform ghost cells across AMR levels for now, until the issue of some required messages not being generated from coarse radiation mesh to some ranks. This has to do within partial dependencybatches being created due to an incomplete processor neighborhood list across levels.
MISC:
* cleaned up some old TAU remnants in doc directory and build system
* refactor and cleanup in MPIScheduler
* removed unused source code, including the old ThreadedScheduler (only one threaded scheduler now - Unified)
* cleaned up non-existent entreis in environmentalFlags.txt
6 lines of code changed in 4 files:
Some cleanup in the build system and also removing some sci_*.h files
Generate new configure script.
4 lines of code changed in 2 files:
Fix failing AMR-ICE tests.
3 lines of code changed in 1 file:
Fix logic that broke ICE AMR tests.
4 lines of code changed in 1 file:
Allow ghost cell requirements to vary across levels for tasks scheduled on the fine level, e.g. RMCRT_DO. This reduces the LoadBalancer::createNeighborhood complexity for RMCRT_DO significantly, e.g. from 45 minutes to 15 seconds with 64^3 patches on the fine level.
NOTE: This is a unique case and the solution was a trade off: a simple design for the edge-case far outweighed the complexity a generalized solution involved. This was effectively the addition of one integer in Task and SchedulerCommon and some simple logic elsewhere.
Also fixed some logic on sched_rayTrace_dataOnion to more clearly cycle through course levels for requriements.
14 lines of code changed in 2 files:
Hopefully this fixes all the bugs associated with getRegion() and also now handling bulletproofing for simulations that are not cubic shaped (such as an L shaped simulation)
30 lines of code changed in 2 files:
Significant refactoring of Level and LoadBalancerCommon prior to adding in per-level max_ghost_cells machinery.
617 lines of code changed in 4 files:
made wrapper VisIt only
13 lines of code changed in 1 file:
Redirect all MPI calls through the lightweight wrapper (header only)
This allows for standardized error checking and easy collection of runtime stats. All MPI funtions can be called from the wrapper by replacing:
MPI_ with Uintah::MPI::
e.g.
Uintah::MPI::Isend(...)
Uintah::MPI::Reduce(...)
Also enables MPI3 wrappers when MPI3 is available and protects against these when not. Will want MPI3 for non-blocking collectives. MPI3 is availalbe on Mira but not Titan yet.
* Note src/scripts/wrap_mpi_calls.sh has been added to the src tree. This has the sed foo to do this replacement src tree-wide.
* Have tested this with OpenMPI, MPICH, IntelMPI and also built on Titan and Mira.
4 lines of code changed in 1 file:
* Use variadic templates to simplify and generalize Action and Task constructors.
* Added utility class (header-only), src/Core/Util/TupleHelpers.hpp, that provides a clean way to deal with template or function parameter packs.
To see the utility in the amount of code reduction this achieves, compare Task.h now and with the previous revision. We have one Action and Task CTOR for CPU and GPU, instead of 5 overloads (for each, CPU adn GPU) and can now take in an arbitrarty number of additional arguments.
Refactor Task class and supporting classes:
* member naming convention - m_
* use nullptr comparison/checks over checks for 0
* heavy cleanup and formatting throughout
1401 lines of code changed in 2 files:
(35 more)