aboutsummaryrefslogtreecommitdiff
path: root/Carpet/Carpet/src/Evolve.cc
Commit message (Collapse)AuthorAge
* Evolve: fix tapered gridsHEADmasterAnton Khirnov2016-02-27
|
* Timers: Move all timer-related code into a new thorn TimersErik Schnetter2013-08-07
|
* Carpet: Provide global instead of process-local timer outputErik Schnetter2013-05-26
| | | | | | Reduce timer values across all processes before output, reporting both maximum and average. TimerNode::getGlobalTime: new function
* Carpet: Take tapering into account during postrestrictErik Schnetter2013-04-04
|
* Requirements: Use location_t to output warnings and errorsErik Schnetter2013-04-04
| | | | | | Add function_data to location_t. Update location_t's output routine. Pass iteration number to Requirements::Recompose. Update callers in Carpet.
* Replace abs() by fabs()Erik Schnetter2013-04-02
| | | | Replace calls to abs() with floating arguments by calls to fabs(), to ensure the results are not accidentally truncated to integer.
* Requirements: New thornErik Schnetter2013-04-02
| | | | Move requirement handling code out of Carpet and into a new thorn.
* Add a timer tree for measuring time spent in each Carpet modeIan Hinder2012-10-26
| | | | | | * This can be used for determining which mode, or which refinement level or map, is taking up a lot of time in a simulation * Add parameters to control whether local mode and each map are timed * Time the transitions between modes
* Support more than one hierarchy of timersIan Hinder2012-10-26
| | | | | | * Introduce a TimerTree class which contains a pointer to the root and current TimerNodes of that tree * Adapt TimerNode and Timer classes to use TimerTrees rather than static variables * Declare a main_timer_tree variable, which is the default tree to use if you don't specify one in Timer timer("timername")
* Carpet: Correct errors in adaptive step size handlingErik Schnetter2012-10-23
|
* Carpet: match refinement level argument of Requirement::Recompose toRoland Haas2012-09-11
| | | | | | Recompose call. This means that instead of reflevel it is passed rl.
* Carpet: Check schedule reads/writes statements at run timeErik Schnetter2012-09-11
|
* Carpet: Break long linesErik Schnetter2012-09-11
|
* Carpet: call POSTREGRID on all finer levels of a regridded levelRoland Haas2012-09-11
| | | | | | Carpet assumes that a regridding operation always changes level N and all finer levels so we should call POSTREGRID on all finer levels
* Carpet: ensure scheduling of global-early routines in POSTREGRIDRoland Haas2012-09-11
| | | | | these routines would not start since they were only checked for on rl==0 which is never recomposed.
* Carpet: Choose epsilon depending on precisionErik Schnetter2012-09-11
|
* Carpet: Time OutputGH operationsErik Schnetter2012-09-11
|
* Make timer tree output precision and threshold configurable with parametersIan Hinder2012-09-11
|
* Carpet: New parameter output_after_regriddingErik Schnetter2012-09-11
| | | | | Add debugging parameter Carpet::output_after_regridding that schedules an additional output right after regridding.
* Support accelerator data transferErik Schnetter2012-09-11
| | | | | | | | | | | | | | | | | | | This patch provides a function interface for accelerator (GPU) devices to be called at certain points when Carpet traverses the schedule tree. This can be used to copy data between the host (CPU) and the device (GPU) as it is needed. --- Carpet/Carpet/interface.ccl | 28 ++++++++++++++++++++++++++++ Carpet/Carpet/param.ccl | 6 ++++++ Carpet/Carpet/src/CallFunction.cc | 12 ++++++++++++ Carpet/Carpet/src/Comm.cc | 8 ++++++++ Carpet/Carpet/src/Cycle.cc | 4 ++++ Carpet/Carpet/src/Evolve.cc | 2 ++ Carpet/Carpet/src/Initialise.cc | 2 ++ Carpet/Carpet/src/Requirements.cc | 34 ++++++++++++++++++++++------------ Carpet/Carpet/src/variables.cc | 3 +++ Carpet/Carpet/src/variables.hh | 3 +++ 10 files changed, 90 insertions(+), 12 deletions(-)
* Carpet: Correct schedule traversal for poststep and post_recover_variablesErik Schnetter2011-12-14
| | | | | | | | | | Traverse postrestrict bin in correct order (i.e. coarsest to finest), so that prolongation boundaries are applied consistently. Traverse post_recover_variables in only for current timelevel (not for all timelevels). Variables on past timelevels cannot have their boundary conditions applied consistently, because time interpolation for these may requires even older timelevels that are not available.
* Adapt Carpet to hierarchical timersIan Hinder2011-12-14
| | | | | | | | Specifically, remove any hierarchy information that has been added to the name of timers, as well as any code for creating timers dynamically, as these are now unnecessary. Additionally, time some previously-untimed parts of the code and make timer names in some places more consistent.
* Add timer tree output and associated parametersIan Hinder2011-12-14
| | | | | | | | | | | | | | New parameters output_initialise_timer_tree and output_timer_tree_every control output of a new "timer tree diagram" to standard output for the Initialise and Evolve timer trees respectively. These diagrams indicate: 1. the value of each timer; 2. the percentage of the given tree taken by each timer; 3. which timers are contained in which other timers; 4. any untimed code for any timer which takes more than 1% of the tree time.
* Make Carpet timers hierarchicalIan Hinder2011-12-14
| | | | | | | | | | | | | | This commit modifies the timer infrastructure in Carpet to generate a tree of timers where the hierarchy reflects the call-graph of the program. This makes it much easier to interpret the timer output than with the previous flat structure, where it was not possible to see which timers "contained" which others. More implementation details are given at the top of TimerNode.hh. Note that the Timer source and header files have been renamed as CactusTimer and a new Timer file and object has been created. This is because the Timer object now only provides a wrapper around the Cactus timer mechanism which was contained in the old Timer object.
* Carpet: Set times of past timelevels correctlyErik Schnetter2011-12-14
| | | | Redesign the way in which the times of the past timelevels are set. If cctk_delta_time changes during initialisation, re-set the times of the past timelevels accordingly.
* Carpet: Execute postrestrict bin finest-to-coarsestErik Schnetter2011-12-14
| | | | | | | Execute the postrestrict and postrestrictinitial bins from finest to coarsest level, so that the restriction to level L+1 is complete (including boundary conditions, synchronisation etc.) before level L is restricted.
* Carpet: Correct scheduling of global-early mode in analysis binErik Schnetter2011-12-14
|
* Re-organise time level handlingErik Schnetter2011-12-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Store the current Cactus time (and not a fake Carpet time) in the th "time hiearchy". This removes the now redundant "leveltimes" data structure in Carpet. Add past time levels to th, so that it can store the time for past time levels instead of assuming the time step size is constant. This allows changing the time step size during evolution. Share the time hierarchy between all maps, instead of having one time hierarchy per map. Simplify the time level cycling and time stepping code used during evolution. Improve structure of the code that loops over time levels for certain schedule bins. Introduce a new Carpet variable "timelevel", similar to "reflevel". This also makes it possible to avoid time interpolation for the past time levels during regridding. The past time levels of the fine grid then remain aligned (in time) with the past time levels of the coarse grid. This is controlled by a new parameter "time_interpolation_during_regridding", which defaults to "yes" for backwards compatibility. Simplify the three time level initialisation. Instead of initialising all three time levels by taking altogether three time steps (forwards and backwards), initialise only one past time level by taking one time step backwards. The remaining time level is initialised during the first time step of the evolution, which begins by cycling time levels, which drops the non-initialised last time level anyway. Update Carpet and the mode handling correspondingly. Update the CarpetIOHDF5 checkpoint format correspondingly. Update CarpetInterp, CarpetReduce, and CarpetRegrid2 correspondingly. Update CarpetJacobi and CarpetMG correspondingly.
* Carpet: Use datatype streamsize instead of intErik Schnetter2011-12-14
|
* Carpet: Introduce per-level timersErik Schnetter2011-12-14
|
* Carpet: Clean up cycling over time levelsErik Schnetter2011-12-14
| | | | | Clean up cycling over time levels during initialisation, regridding, poisoning etc.
* Import CarpetErik Schnetter2011-12-14
| | | | Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
* Carpet: Measure M/h only for evolution, disregarding initialisationErik Schnetter2008-10-23
|
* Carpet: Overload OutputGH, and add timersErik Schnetter2008-09-05
|
* Carpet: Add new modes "global_early" and "global_late"Erik Schnetter2008-07-11
| | | | | | Add new modes meta_early, meta_late, global_early, and global_late, which execute like meta mode or global mode, but execut either as early or as late as possible in the schedule.
* Carpet: Disable accuracy check of level timesErik Schnetter2008-05-28
|
* Carpet: Correct error in floating point comparisonErik Schnetter2008-05-16
|
* Carpet: Require less accuracy when comparing level timesErik Schnetter2008-05-16
|
* Carpet: Compare simulation times with relative accuracyErik Schnetter2008-05-14
|
* Carpet: Set time on refinement levels explicitly from global timeErik Schnetter2008-02-26
| | | | | | | Set time on the refinement levels explicitly from the global time. This avoids accumulation of round-off errors. darcs-hash:20080226140439-dae7b-999dc372d9586fa34ccc181d39572338d5f23e9e.gz
* Carpet: Avoid nans in timing outputErik Schnetter2007-10-06
| | | | darcs-hash:20071006164252-dae7b-98b2b1c19dc9e52e6c1feaf7b75919766ca1b29c.gz
* Carpet: Correct handling of tapered gridsErik Schnetter2007-08-09
| | | | darcs-hash:20070809202205-dae7b-baa50974f8519fcde0b1351b6bb3ea72606a6388.gz
* Carpet: Add more timersErik Schnetter2007-06-13
| | | | | | Add more timers to Initialise.cc and Evolve.cc. darcs-hash:20070613215046-dae7b-01cbfbe064e49ed70c28a179ceb68eb2eecf858f.gz
* Carpet: Forbid accessing past timelevels in certain scheduling binsErik Schnetter2007-06-06
| | | | | | | Certain scheduling bins do not allow accessing past time levels. Set the grid function pointers to past time levels to null in these. darcs-hash:20070606203504-dae7b-df075bdeb5bea053b84d9e6f162796a5aac50540.gz
* Carpet: Output timers for newly allocated refinement levelsErik Schnetter2007-05-24
| | | | darcs-hash:20070524020543-dae7b-9f8e0ea390832953bcc93e4df83a7c769a336942.gz
* Carpet: Always call postregrid on the finest levelErik Schnetter2007-05-23
| | | | | | | | | | Always call postregrid on the finest level. Before, postregrid was only called on the finest level if (a) the level changed, or (b) the finest level was removed. Since global mode routines are called together with the finest level, postregrid is now always called on the finest level. darcs-hash:20070523204700-dae7b-de1d602c4a3d7a23c5efe2493e7e794859973c07.gz
* Carpet: Add timers measuring initialisation and I/OErik Schnetter2007-05-10
| | | | darcs-hash:20070510223037-dae7b-115fc6391d2f18dc73e12774185b1d50f3618ab6.gz
* Carpet: Simplify timer interfaceErik Schnetter2007-03-12
| | | | | | | | | | | | | | Remove parameter parameters Carpet::silent, which was inconvenient to use. Do not output timing statistics by default. Allow parameter values -1 in addition to 0 to disable timing output. Place the timing statistics into the grid scalars even if timing output is disabled. darcs-hash:20070312161517-dae7b-77a7d21f37179962beae2f544e7ee6a174c45508.gz
* Carpet: Initialise Carpet timers laterErik Schnetter2007-02-07
| | | | | | | Initialise the Carpet timers at the beginning of Evolve, not at the beginning of Initialise. darcs-hash:20070207210806-dae7b-db6c6e0c3eebdf149c6adf1abdaf9cd2636cf283.gz
* Carpet: Call postregrid bin also when only levels have been removedErik Schnetter2007-02-04
| | | | | | | | Correct an error in determining whether the grid hierarchy has changed: When only levels are removed, this is now also counted as change. Call postregrid on the newly finest grid in this case. darcs-hash:20070204212111-dae7b-3447e8d8959c437616ed0e0431e13b373aa93f77.gz