aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib/src/gdata.cc
Commit message (Collapse)AuthorAge
* CarpetLib: introduce accessor in gdata to query electric_fenceRoland Haas2013-10-31
| | | | | this function effectively exposes the CarpetLib parameter to Carpet without explicit parameter sharing
* CarpetLib: Store registered gh, dh, th, gf, data etc. via sets, not via listsErik Schnetter2013-08-04
| | | | | | Use set instead of list to store registered gh, dh, th, gf, data. Do not store an iterator as handle for de-registering. This corrects some memory corruption with the Intel compiler; the previous code may have been illegal.
* 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.
* CarpetLib, LoopControl: Correct required/optional capabilitiesErik Schnetter2013-01-22
|
* CarpetLib: Use "process" instead of "processor" in comments and outputErik Schnetter2012-11-24
|
* Allow padding in transport operatorsErik Schnetter2012-11-22
| | | | | Rewrite padding infrastructure. Add padded array extents to transport operator APIs.
* Remove all #warning statementsErik Schnetter2012-09-11
|
* MergeErik Schnetter2012-09-11
|
* CarpetLib: wrap some debugging-only assert statement in an if blockroland haas2012-09-11
|
* MergeErik Schnetter2012-09-11
|\
| * Re-organise some refluxing internalsErik Schnetter2012-09-11
| | | | | | | | | | | | | | | | | | | | | | Re-organise some of the internal details of refluxing. Refluxing requires restricting fluxes from fine to coarse grids. Previously, Carpet would internally store bounding boxes that were offset by 1/2 grid point, and adjust (correct) these boxes in various places in a rather ad-hoc manner. This is now cleaned up. Remove the (unused) "accumulate" operator, and the (unused) "accumulate" prolongation type.
* | Cast several things to CCTK_REAL to supportIan Hinder2012-09-11
|/ | | | | | | | single-precision --- Carpet/Carpet/src/Timing.cc | 2 +- Carpet/CarpetLib/src/gdata.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)
* CarpetLib: Extend operator API to allow hyperslabbingErik Schnetter2012-09-11
| | | | | | | Extend API of grid operators and of gdata::copy_from, gdata::transfer_from to allow hyperslabbing Implement hyperslabbing in copy_3d.cc
* Improve named barriersErik Schnetter2011-12-14
| | | | | | | | | Introduce dist::barrier as low-level implementation of a named barrier. Use it in Carpet::NamedBarrier. Use the above in almost all barrier calls.
* CarpetLib: Correct check for VECTORISE_ALIGNED_ARRAYSErik Schnetter2011-12-14
|
* CarpetLib: Introduce gdata::allocated_memory_shapeErik Schnetter2011-12-14
| | | | | | Introduce a function gdata::allocated_memory_shape that determines from a given grid size how many grid points should be allocated. This allows adding padding to grid sizes, e.g. to improve cache performance. Use this function when checking grid sizes.
* CarpetLib: Use thorn NoMPI to be able to run without MPIErik Schnetter2011-12-14
| | | | Thorn LSUThorns/NoMPI provides a fake MPI implementation that runs only on a single processor if no real MPI implementation is found.
* CarpetLib: Add new transport operator "accumulate"Erik Schnetter2011-12-14
| | | | | | Add a new transport operator "accumulate", which accumulates ghost zones into grid functions. (This is in a sense the opposite of regular synchronisation, which copies grid function values into ghost zones.)
* CarpetLib: Correct refluxing errorsErik Schnetter2011-12-14
|
* CarpetLib: Disable invalid stride consistency check (for face-centered grids)Erik Schnetter2011-12-14
|
* CarpetLib: Output grid variable name in error messageErik Schnetter2011-12-14
| | | | Output grid variable name in find_source_timelevel's error messages.
* CarpetLib: Rename local variable in find_source_timelevelErik Schnetter2011-12-14
|
* CarpetLib: Use at least first order interpolation for cell centringErik Schnetter2011-12-14
| | | | | | When using cell centring, use first order interpolation (instead of zeroth order interpolation), even when prolongation="copy" is specified.
* CarpetLib: Implement padding for grid variablesErik Schnetter2011-12-14
| | | | | | | | | Ignore-this: 1a389f0dd3f40a0c0edb3fdabd6e7d40 Padding grid variables means that e.g. a component of size 32x32x32 is allocated as 33x33x33 instead, but only 32x32x32 of this storage is used. This can improve cache performance considerably. This requires corresponding changes to the cGH entries.
* Import CarpetErik Schnetter2011-12-14
| | | | Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
* CarpetLib: Compare simulation times with relative accuracyErik Schnetter2008-05-14
|
* CarpetLib: Output all digits in error messageErik Schnetter2008-02-25
| | | | | | | Output all digit for the times in the error message indicating that there is an extrapolation in time. darcs-hash:20080225055300-dae7b-500b168cc5b5f9c57b31c54e7ee07114062dca51.gz
* CarpetLib: Make mem<T> saferErik Schnetter2008-02-19
| | | | | | | | | | When passing in a pointer to mem<T>, also pass the size of the pointed-to memory region, so that mem<T> can check that there is enough space. Keep track of the number of allocated bytes in mempools. darcs-hash:20080219044528-dae7b-107edc6f696a35aad32ef6e58129b3281d00eb56.gz
* CarpetLib: Add missing #include <sstream> to gdata.ccErik Schnetter2007-04-19
| | | | darcs-hash:20070419024245-dae7b-862947817fa17453aa9996920c3012ff9eda7c20.gz
* CarpetLib: Various changes to class dataErik Schnetter2007-04-19
| | | | | | | | | Remove outdated communication mechanisms from data<T> and gdata classes. Redesign communication mechanism in data<T> and gdata classes. darcs-hash:20070419014301-dae7b-ece41543dcb1e23ab81f103b04a75880ac68807f.gz
* CarpetLib: Add timer copy_into_sendbuffer_memcpy in gdataErik Schnetter2007-02-04
| | | | darcs-hash:20070204192255-dae7b-6088220061f07d64a163966855064f5311c1a028.gz
* CarpetLib: Add some const qualifiersErik Schnetter2007-02-04
| | | | darcs-hash:20070204191934-dae7b-8428cc85656d5eb92580f82165ef134c72fc98c9.gz
* CarpetLib: Use AT instead of at in some remaining placesErik Schnetter2007-02-04
| | | | darcs-hash:20070204191733-dae7b-52b09558844a134371169ab0530c3df5b030b739.gz
* CarpetLib: Add _storage field to gdata classErik Schnetter2007-02-04
| | | | | | | Add a field "void * _storage" to the gdata class to speed up its storage() member function. darcs-hash:20070204175843-dae7b-644ade82e1432b82384baf64f55aeb2482032fdf.gz
* CarpetLib: Improve timersErik Schnetter2007-02-03
| | | | | | | | | | | | Implement a second timer based on Intel's rdtsc instruction, which is much faster and much more accurate than MPI_Wtime. Place the timer classes into the CarpetLib namespace. Create a TimerSet class. Make the Timer class automatically register all timers with a singleton object, removing all global variables. darcs-hash:20070203211128-dae7b-42765e79446eda6a2337ba22cd390869055c555a.gz
* CarpetLib: Use AT to index std::vectorErik Schnetter2007-02-03
| | | | | | | | Define a macro AT() to index into std::vector. Depending on the macro NDEBUG, AT() is defined either as at(), providing index checking, or as operator[], providing no checking. darcs-hash:20070203205854-dae7b-a1999c88c95ba12b1ee66505f712aefdd67d7e6f.gz
* CarpetLib: Reorganise prolongation and restriction operatorsErik Schnetter2007-01-12
| | | | | | | | | | | | | | | | | | | | | | | | Reorganise prolongation and restriction operators. This is a major implementation change. Most operators are now written as C++ templates instead of as Fortran 77 code. This simplifies the code, since C++ routines can be called more easily, and they also have access to CarpetLib's high-level data structures. Previously, the operators combined temporal and spatial interpolation. Now, time interpolation and space interpolation are handled separately. This may be less efficient, but simplifies the code significantly, since there are now N+M instead of N*M routines, for N time interpolation and M space interpolation methods. Remove the minmod prolongation operator, which was previously disabled. Add support for cell centering, using a method described by Simon Hern, and suggested for Carpet by Ian Hawke. darcs-hash:20070112205812-dae7b-5329795aa698e7bbc3671b1504134885dd830238.gz
* CarpetLib: Make many MPI experiments configurableErik Schnetter2006-12-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add new parameters: BOOLEAN interleave_communications: Try to interleave communications with each other; each processor begins to communicate with its 'right neighbour' in rank, instead of with the root processor BOOLEAN vary_tags: Use different tags for each communication BOOLEAN barrier_between_stages: Add a barrier between the communication stages (slows down, but may make timing numbers easier to interpret) BOOLEAN combine_sends: Send data together and in order of processor ranks BOOLEAN reduce_mpi_waitall: Call MPI_Waitall only for requests that are not null BOOLEAN use_mpi_send: Use MPI_Send instead of MPI_Isend BOOLEAN use_mpi_ssend: Use MPI_Ssend instead of MPI_Isend darcs-hash:20061206165333-dae7b-8ba40bd19fb1733336e60cb7e6bfa0ebfe0d546d.gz
* CarpetLib: Collect more timing informationErik Schnetter2006-09-04
| | | | | | | Extend the CarpetLib timers so that they also count the number of bytes transmitted in addition to the wall time. darcs-hash:20060904020649-dae7b-7a18c2fbe2de09d662b4154a3ae2e553ad57c12b.gz
* CarpetLib: Extend timing statisticsErik Schnetter2006-07-31
| | | | | | | | | | Add timers for the new communication infrastructure. Enhance the timers to also track the minimum and maximum time spent. Add a parameter to output timing information to files. darcs-hash:20060731152618-dae7b-1d049b2b37397610c14648078fd0ee92f252ca2a.gz
* CarpetLib: Cast unsigned values explicitly to (int)Erik Schnetter2006-07-31
| | | | darcs-hash:20060731151456-dae7b-3f905340dc34295d2e00fe58995ebc5b4d6690f7.gz
* CarpetLib: Rename some local variablesErik Schnetter2005-11-19
| | | | | | | Rename some local variables in dh.cc and gdata.cc so that their names don't clash with global variables. darcs-hash:20051119203248-dae7b-c371dfbf1e43fbd95577a17201d7cee45e5c8400.gz
* CarpetLib: Change member dist::comm to function dist::comm()Erik Schnetter2005-11-19
| | | | | | No functionality change, but this requires all callers to be changed. darcs-hash:20051119202604-dae7b-3492487bfdc4f3d228ec57a2b2ea02116f5cb64c.gz
* CarpetLib: bugfix in collective commbuffer schemeThomas Radke2005-08-16
| | | | | | | | | The low-level routine gdata::change_processor() wasn't aware of the collective commbuffers communication scheme. This caused problems with CarpetInterp which still uses this function in order to communicate data. But not for long anymore, another patch is waiting already to be pushed. darcs-hash:20050816135442-776a0-60371ebba14505a9d402bb08a9b0696d4b3d4702.gz
* Carpet*: generalise the comm_state class for collective buffer communicationsThomas Radke2005-08-15
| | | | | | | | | CarpetLib's comm_state class (actually, it's still just a struct) has been extended to handle collective buffer communications for all possible C datatypes at the same time. This makes it unnecessary for the higher-level communication routines to loop over each individual datatype separately. darcs-hash:20050815150023-776a0-dddc1aca7ccaebae872f9f451b2c3595cd951fed.gz
* CarpetLib: resolve conflictsErik Schnetter2005-06-06
| | | | darcs-hash:20050606162839-891bb-d7c2b48772dd8910ae362f0a96b34e1564f906b8.gz
* CarpetLib: do nothing if box to be copied is emptyThomas Radke2005-04-18
| | | | | | | | This fixes a bug in the collective buffers code which did call copy_from_innerloop() even for empty boxes. The fortran routine called by copy_from_innerloop() finally catched this bug in an assert statement. darcs-hash:20050418170004-776a0-68fdda0131f273b80931a55d8abb5799dcf820c8.gz
* CarpetLib: resolve conflictErik Schnetter2005-06-06
| | | | darcs-hash:20050606161741-891bb-4c4c528437cc24241167486f0d3295475086e3f3.gz
* CarpetLib: remove erroneous assert statements in the collective buffers ↵Thomas Radke2005-04-11
| | | | | | communication code darcs-hash:20050411144255-776a0-cfa22ce6876ff5f598d55f2da2d8b0d474c85ab0.gz
* CarpetLib: clean-up of communication scheme for individual sends/recvs on ↵Thomas Radke2005-05-26
| | | | | | | | | | | | | | | | | | | | single components The default communication scheme in Carpet (which does an individual send/recv operation for each component) comes with two parameters for fine tuning: CarpetLib::use_lightweight_buffers CarpetLib::combine_recv_send the defaults of which are set to use a well-tested but also slower communication pattern (as turned out during benchmark runs). This patch cleans up the implementation of this communication scheme so that the fastest communication pattern (combined posting of send/recv; use of lightweight buffers) is now always used. The above parameters therefore became obsolete and shouldn't be used anymore in parfiles. darcs-hash:20050526114253-776a0-780933a1539a260d74da8b92522fa2f48c714964.gz