aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib/src/ggf.cc
Commit message (Collapse)AuthorAge
* 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: Support prolongating facesErik Schnetter2012-09-11
| | | | Add infrastructure to prolongate faces of grid functions. This may be used during refluxing to apply part of the correction to the fine grid.
* 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.
* | CarpetLib: Correct white spaceErik Schnetter2012-09-11
|/
* 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
* CarpetLib: Correct component and process ids while regriddingErik Schnetter2011-12-14
| | | | | | | During regridding, there are two sets of component indices and process numbers, namely those of the old and of the new grid structure. Previously, Carpet would erroneously always use those of the new grid structure; this fails when the number of components changes.
* CarpetLib: Rearrange order of #include statementsErik Schnetter2011-12-14
|
* 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: Add another consistency check when executing communication scheduleErik Schnetter2011-12-14
|
* CarpetLib: Correct refluxing function in ggfErik Schnetter2011-12-14
| | | | Correct indices.
* CarpetLib: Add refluxing function to ggf classErik Schnetter2011-12-14
|
* CarpetLib: Restructure dh classesErik Schnetter2011-12-14
| | | | | | | - Add new entries for the CarpetRegrid mask and for refluxing - Rename dboxes to light_dboxes. - Add local_dboxes with more information about the process-local part of the grid hierarchy.
* 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.
* CarpetLib: Replace ! by notErik Schnetter2011-12-14
|
* CarpetLib: Allow different numbers of ghost zones on different levelsErik Schnetter2011-12-14
| | | | | Allow different numbers of ghost zones and different spatial prolongation orders on different refinement levels.
* CarpetLib: Beautify code for flip_all and fill_allErik Schnetter2011-12-14
|
* CarpetLib: Beautify error messageErik Schnetter2011-12-14
|
* Import CarpetErik Schnetter2011-12-14
| | | | Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
* CarpetLib: Allow some fuzz when comparing real numbersErik Schnetter2008-08-03
|
* Introduce a tree data structure to speed up domain decompositionErik Schnetter2008-06-20
| | | | | | | | | Introduce a tree data structure "fulltree", which decomposes a single, rectangular region into a tree of non-overlapping, rectangular sub-regions. Move the processor decomposition from the regridding thorns into Carpet. Create such trees during processor decomposition. Store these trees with the grid hierarchy.
* Move communication schedule into its own data structureErik Schnetter2008-02-29
| | | | | | | Splite the grid hierarchy and communication schedule into two separate data structures. Correct error in determining the processor owning a certain region when calculating the communication schedule.
* CarpetLib: Change API of ggf's cycle, flip, and fillErik Schnetter2008-02-19
| | | | | | | | | Rename cycle, flip, and fill to cycle_all, flip_all, and fill_all, respecively, in the ggf class. Remove the c ("component") argument. Instead, loop over all components. This mirror earlier changes to sync etc. darcs-hash:20080219045150-dae7b-f2198d253aac5b62d247a51155a08c3739daa720.gz
* CarpetLib: White space change in ggf.ccErik Schnetter2008-02-19
| | | | darcs-hash:20080219045115-dae7b-b098e7d4835a115ea87fc0ed656ba87f803a368b.gz
* CarpetLib: Add function memoryof to measure size of data structuresErik Schnetter2008-02-02
| | | | | | | Add an overloaded function memoryof which measures the size in bytes of CarpetLib's data structures. darcs-hash:20080202154302-dae7b-de41c79cb04617327695fae27928c05c5d431ee8.gz
* CarpetLib: Remove old-style communication routinesErik Schnetter2008-01-30
| | | | | | | Remove the declarations and definitions of old-style communication routines. darcs-hash:20080130221457-dae7b-1d759b545bf0e56273f6c7ba3aeb628fa9ade7ef.gz
* CarpetLib: Move pseudoregion datatypes to region.hhErik Schnetter2008-01-30
| | | | | | | | | Rename the datatypes pseudoregion and sendrecv_pseudoregion to pseudoregion_t and sendrecv_pseudoregion_t, respectively. Move their declaration and definition to region.hh and region.cc, respectively. Instantiate templates for stream output. darcs-hash:20080130221653-dae7b-8eb25cacc8f7750ac470179c9575785bdb32b575.gz
* CarpetLib: Free memory when deallocating grid functionsErik Schnetter2008-01-29
| | | | darcs-hash:20080129044555-dae7b-74b17623c5239e72cfb5e82b305604ee694daba8.gz
* CarpetLib: Introduce new communication scheduleErik Schnetter2008-01-14
| | | | | | | | | | Store the communication schedule more efficiently: store only the non-zero parts. This saves much time when traversing the schedule. Add new communication routines which communicate not between only two individual components, but between all components. darcs-hash:20080114152229-dae7b-7b7ba51bd8b5de0a0009ea236f4a894667b0281b.gz
* CarpetLib: Add function ggf::fill, which fills all time levelsErik Schnetter2008-01-14
| | | | | | | | | Add a new function ggf::fill, which fills all time levels from the current time level. Remove the function ggf::copy, which was unused. darcs-hash:20080114151255-dae7b-469b57d0393ba0ed22590c2eabe862e02702fde7.gz
* CarpetLib: #include <cstring>Erik Schnetter2007-11-02
| | | | darcs-hash:20071102224528-dae7b-b8ecec8895cd86f40ed667db5db2c4b79ba8b237.gz
* CarpetLib: Sync 1-tl and prolongation=none GFscott2007-07-20
| | | | | | | | | | Sync 1-tl and prolongation=none GFs Fix a little bug that prevented the synchronization of GFs that have only 1 timelevel or have prolongation turned off explicitely (tag 'prolongation=none'). darcs-hash:20070720053350-fff0f-dd8b80ecbb76ff7f3347ce3a906e537f7e0fd128.gz
* CarpetLib: Remove outdated commentErik Schnetter2007-05-13
| | | | darcs-hash:20070513034420-dae7b-7261b7a902bf7ac39a2c73bd6d762e67e37c9110.gz
* CarpetLib: Use the correct time when interpolating while regriddingErik Schnetter2007-05-13
| | | | | | Use the correct time when interpolating while regridding. darcs-hash:20070513034335-dae7b-df3960395af6cd7a8fb75ceb7bb6b6513933bcf2.gz
* CarpetLib: Various changes to class gfErik Schnetter2007-04-19
| | | | | | Update to use new communication mechanism. darcs-hash:20070419014851-dae7b-313adb8952e62048a096bba95023c99be48e9658.gz
* CarpetLib: Correct error in calculating regridding scheduleErik Schnetter2007-03-12
| | | | | | | Regridding when the previous grid hierarchy had fewer levels was not handled correctly. darcs-hash:20070312161246-dae7b-f9bdb2990fcbd1bc9f245aaef35398b1a25b60d3.gz
* CarpetLib: Pre-calculate the communication schedule for recomposingErik Schnetter2007-03-07
| | | | | | | | | | | | Calculate the communication schedule for recomposing in advance. This is the schedule which decides which parts of the old grid hierarchy are used to fill what parts of the new grid hierarchy. Previously, this schedule was calculate for every grid function anew. Omit synchronisation and boundary prolongation after recomposing. This must now happen by scheduled routines in the postregrid bin. darcs-hash:20070307231156-dae7b-a9fc9a40a88dc7c5b459de8118fc3d4b6c66ffac.gz
* CarpetLib: Change static_assert to have two argumentsErik Schnetter2007-02-28
| | | | | | | Change static_assert to have a second arguments, which is supposed to be a string containing a description of the test. darcs-hash:20070228022658-dae7b-3fb68ea0e0f557f2268cb95546ba0d70c58cda7a.gz
* CarpetLib: Make ggf::cycle more efficientErik Schnetter2007-02-04
| | | | darcs-hash:20070204192032-dae7b-10c06e6529291abe5a3dda8ae1d0022a23837ac3.gz
* CarpetLib: Add some const qualifiersErik Schnetter2007-02-04
| | | | darcs-hash:20070204191934-dae7b-8428cc85656d5eb92580f82165ef134c72fc98c9.gz
* CarpetLib: Introduce pseudoregion classErik Schnetter2007-02-04
| | | | | | | | | | | | | A pseudoregion is almost a region; it is a bbox that lives on a certain processor. Pseudoregions are a compact way to store information about what processors needs to send data to what other processor during synchronisation or regridding. Introduce a class pseudoregion. Add additional pseudoregion fields to the dh class. Use these fields when communicating; this is faster than walking the original data structures. darcs-hash:20070204184339-dae7b-3bd90a48b77cf0623e3df3a7ca4edd9d5c7053f8.gz
* CarpetLib: Rename ggf::recompose_free to ggf::recompose_free_oldErik Schnetter2007-02-04
| | | | | | | Rename ggf::recompose_free to ggf::recompose_free_old. Remove code that was commented out. darcs-hash:20070204180937-dae7b-0c0c9f5b5007d416ec16da8a6781950a4f1406e5.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: Add new datatype region_tErik Schnetter2007-01-12
| | | | | | | | | | | | | | | | | | | | | | | The new datatype region_t combines an extent (a bbox), an outer boundary descriptor, a refinement descriptor, and a processor number: struct region_t { ibbox extent; // extent b2vect outer_boundaries; // outer boundaries b2vect refinement_boundaries; // refinement boundaries int map; // map to which this // region belongs int processor; // processor number }; These quantities are often used together, and combining them into a single datatype simplifies the code significantly. Adapt gh, dh, etc. to use this new datatype. This is a major API change. darcs-hash:20070112204130-dae7b-92cad546187b0fe499e8cfc38b2e26614a4f608c.gz
* CarpetLib: Split recompose functions into regrid and recomposeErik Schnetter2006-09-04
| | | | | | | | | | | | | | | Split recompose functions into two stages, regrid and recompose. The first stage, regrid, changes the grid structure in the gh and dh classes. The second stage, recompose, changes the values of the actual grid functions, i.e., changes the gf<T> and data<T> objects. The second stage has to be called individually for every refinement level. This is necessary since the boundary conditions need to be applied after recomposing one refinement level, before the next fine refinement level can be recomposed. darcs-hash:20060904230433-dae7b-3ba1982460f57b34da11a6fbb6b4b524dc5b348f.gz
* CarpetLib: Cast unsigned values explicitly to (int)Erik Schnetter2006-07-31
| | | | darcs-hash:20060731151456-dae7b-3f905340dc34295d2e00fe58995ebc5b4d6690f7.gz
* CarpetLib: Store number of time levels per refinement levelErik Schnetter2006-04-13
| | | | | | | | Store the number of active time levels per refinement level, not globally, because each refinement level can have a different number of active time levels. darcs-hash:20060413192655-dae7b-be12d1baef21b3f0a24bbb022297a4856c7d6f14.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: Implement fast recomposingErik Schnetter2005-08-11
| | | | | | | | For each refinement level that is to be recomposed, check whether it has the same structure as before, and if so, do nothing. This is controlled by a new flag CarpetLib::fast_recomposing. darcs-hash:20050811120347-891bb-f937c21ddeac7d909cae41d487e9fd74a5ce8cc8.gz