aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib/src/dh.hh
Commit message (Collapse)AuthorAge
* 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.
* CarpetLib: Disable unused refluxing face descriptionsErik Schnetter2013-05-20
|
* CarpetLib: Store level-wide set of buffer zonesErik Schnetter2013-02-18
|
* CarpetLib: Define dh members tallying the size of refinement boundariesErik Schnetter2012-11-14
| | | | Define dh members tallying the size of refinement boundaries. This may be used to implement (2d) face grid functions at some point.
* CarpetLib: Store level_boxes in dh structureErik Schnetter2012-09-16
|
* 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.
* CarpetLib: Remove unused typedefsErik Schnetter2012-09-11
|
* Carpet…: Rename buffer2 to overlap zones; correct implementation in dhErik Schnetter2012-09-11
| | | | | | Rename buffer2 zones to overlap zones. Complete implementing overlap zones in the dh class.
* Carpet, CarpetLib: Complete patch to support buffer2 zonesErik Schnetter2012-09-11
|
* CarpetLib: Improve comment of dh data structuresErik Schnetter2012-09-11
|
* CarpetLib: Remove/correct ATTRIBUTE_CONST and ATTRIBUTE_PURE declarationsErik 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: Remove some attribute(const) declarationsErik Schnetter2011-12-14
|
* CarpetLib: Pre-calculate bbox regions for reduction maskErik Schnetter2011-12-14
| | | | | | | | | | Pre-calculate and store the regions for CarpetReduce's reduction weight. Add new dh fields prolongation_boundary and restriction_boundary. Remove field fine_active. Disable also the dh fields buffers_stepped.
* CarpetLib: Redefine handling of reduction maskErik Schnetter2011-12-14
| | | | | | Calculate fine_active, the active points on the next finer grid overlapping with the current component. Temporarily store the per-level set of active grid points per level, introducing a new structure level_dboxes. Remove outdated code.
* CarpetLib: Store more details for setting up the weight masksErik Schnetter2011-12-14
| | | | | Store locations of prolongation and restriction boundaries not only per direction, but per direction and face.
* implement unusedpoints_maskknarf2011-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.
* CarpetLib: Add field "active" to dh::dboxesErik Schnetter2011-12-14
| | | | | | | Add field "active" to dh::dboxes, the replicated part of the data hierarchy. Since bboxsets cannot be transmitted via MPI, this can contain only up to 4 bboxes. There are helper routines to transform bboxsets to these bboxes and back.
* CarpetLib: Define macro CARPET_HAVE_BUFFER_WIDTHSErik Schnetter2011-12-14
| | | | | Change macro CARPET_HAVE_BUFFER_WIDTH to CARPET_HAVE_BUFFER_WIDTHS, since the field buffer_width is now buffer_widths.
* CarpetLib: Make some typedefs in class dh publicErik 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.
* Import CarpetErik Schnetter2011-12-14
| | | | Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
* CarpetLib: Correct regridding communication scheduleErik Schnetter2008-05-20
| | | | | Handle correctly the case where the multi-patch processor decomposition changes during regridding.
* Add preprocessor macro CARPET_HAVE_BUFFER_WIDTH to carpet.hhIan Hinder2008-03-05
|
* 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: 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 unoptimised fields of dh::boxes structureErik Schnetter2008-01-30
| | | | | | | | | | Remove the unoptimised and the old-style optimised fields for the communication and regridding structure from the dh::boxes structure. (Keep the new-style optimised fields.) Remove the code that sets them. Remove the old-style optimisation routines. Update the output routines. darcs-hash:20080130221033-dae7b-cd7a9b8445ba13eaf95af2b1739bf6592cebdbcf.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: 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: Various dh changesErik Schnetter2007-04-19
| | | | | | | | | Redesign storing and calculating the communication schedule in dh class. Remove bases from dh class; bases are now stored in gh class. darcs-hash:20070419014553-dae7b-254c932eac39cf73e538dbfcf5a07470639e6f2c.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: Optimise dh class furtherErik Schnetter2007-03-04
| | | | | | | | | | | Reduce the number of bbox operations while setting up the communication schedule. Cache some results. Introduce timers throughout. Introduce a parameter CarpetLib::check_bboxes, defaulting to "yes", which can be used to disable the self-checks. darcs-hash:20070304210744-dae7b-1a2756dc0aa2f30b2f1311a9475c2a35513f2cfc.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: Make some routines and destructores non-virtualErik Schnetter2007-01-12
| | | | | | | Make some routines and destructores non-virtual. They belong to classes which used to form a type hierarchy but are now flat. darcs-hash:20070112211017-dae7b-cffc83b94bf43c3b8665f6115021827e9d61717a.gz
* CarpetLib: Correct the way prolongation boundaries are determinedErik Schnetter2006-11-13
| | | | | | | | | | | Correc the way in which it is determined which points are boundary prolongated and which are synchronised. For this, introduce a new field "owned" to the dh class that determines which grid points a processor owns for interprocessor communication. darcs-hash:20061113214128-dae7b-34a520f7e461173d0042acde68cb48cd670b167a.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: Reformat commentsErik Schnetter2006-09-04
| | | | darcs-hash:20060904020202-dae7b-b02b1eb0b44431d2b0e31840ac8bd8f000ac1514.gz
* CarpetLib: Rename function in dh, add const qualifiersErik Schnetter2006-02-26
| | | | darcs-hash:20060226002647-dae7b-120cbc31f8e3caf9dcf1e996844268749a954d57.gz
* CarpetLib: Rename the dh setup functionsErik Schnetter2006-02-25
| | | | darcs-hash:20060225172723-dae7b-27a2d88ad612cd88b33b83095760a55dd03d2dc4.gz
* CarpetLib: Add outer buffer zonesErik Schnetter2005-08-08
| | | | | | | | | | | | | | | | | | | | | Rename the previous buffer zones to "inner buffer zones". Introduce additional "outer buffer zones". Their meaning is the same, except that inner buffer zones are taken from the computational domain, making it smaller, while outer buffer zones are added to the outside, similar to ghost zones. This makes them easier to handle, both internally in Carpet and for the end user. This changes the API of the dh class. There is a new field "is_interproc" in the "dboxes" structure; it specifies whether the whole boundary is an interprocessor boundary. (Note that boundaries can be partly interprocessor and partly refinement boundaries.) Both kinds of buffer zones can exist at the same time, although I would not do that. darcs-hash:20050808200647-891bb-9d9a8eefaf7bcb665d09869a8b564f3769d2ecc2.gz
* CarpetLib: Whitespace changesErik Schnetter2005-03-03
| | | | darcs-hash:20050303101349-891bb-251f1432b873c898f73e0315ed63a7764f8714e8.gz
* CarpetLib: Whitespace changeErik Schnetter2005-02-01
| | | | darcs-hash:20050201231759-891bb-db87543a706110d2cd819a7f38c1e67cf27e16a3.gz
* global: Change the way in which the grid hierarchy is storedErik Schnetter2005-02-01
| | | | | | | | | | | | | | | | | | | | Change the way in which the grid hierarchy is stored. The new hierarchy is map mglevel reflevel component timelevel i.e., mglevel moved from the bottom to almost the top. This is because mglevel used to be a true multigrid level, but is now meant to be a convergence level. Do not allocate all storage all the time. Allow storage to be switched on an off per refinement level (and for a single mglevel, which prompted the change above). Handle storage management with CCTK_{In,De}creaseGroupStorage instead of CCTK_{En,Dis}ableGroupStorage. darcs-hash:20050201225827-891bb-eae3b6bd092ae8d6b5e49be84c6f09f0e882933e.gz
* CarpetLib: Rename some variables to avoid shadowing class membersErik Schnetter2005-01-01
| | | | darcs-hash:20050101191615-891bb-20b262ff1a4468d5e1c5ac8626a3ead0727c2da9.gz
* global: Turn CarpetLib templates into classesErik Schnetter2005-01-01
| | | | | | | | | | | | | | | | | | | Turn most of the templates in CarpetLib, which used to have the form template<int D> class XXX into classes, i.e., into something like class XXX by setting D to the new global integer constant dim, which in turn is set to 3. The templates gf and data, which used to be of the form template<typename T, int D> class XXX are now of the form template<typename T> class XXX The templates vect, bbox, and bboxset remain templates. This change simplifies the code somewhat. darcs-hash:20050101182234-891bb-c3063528841f0d078b12cc506309ea27d8ce730d.gz
* global: Remove $Header$ keywords from Carpet arrangementErik Schnetter2005-01-01
| | | | darcs-hash:20050101162121-891bb-ac9d070faecc19f91b4b57389d3507bfc6c6e5ee.gz
* CarpetLib: Use new style instead of old style C++ headersErik Schnetter2004-12-25
| | | | | | That is, say e.g. <cmath> instead of <math.h>. darcs-hash:20041225182902-891bb-2a4502d6a76ed830ab978030fc4e4765b183509f.gz
* dh_decomposeswhite2004-11-22
| | | | | | | | | | | | | | | | | | | | | | | | | Broke up dh<D>::recompose( bool ) into bite-sized chunks. Made use of member function pointers to cut down as many as three levels of blocks. See 'foreach_reflevel_component_mglevel'. Advantages: 1) the code of the main function 'recompose' now presents an outline of its functionality, rather than a post-ice-age deluge. 2) component functions are named according to some comment found in the code. For those who want to minimise comments. 3) most of the functions conform to my "rule of thumb" (comprehensible chunks of code are no longer than my thumb) 4) nesting substantially reduced (The functions that still have more than 5 levels of nested blocks are mostly those that are also unthumbworthy. More room on the screen, but still room for improvement.) darcs-hash:20041122173415-32473-616506e73f5c93be610bc773adaa7867663cb726.gz
* unglobswhite2004-11-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | I broke up dh<D>::recompose( bool ) into bite-sized chunks. I made use of member function pointers to cut down as many as three levels of blocks. See 'foreach_reflevel_component_mglevel'. Resulting in: 1) the code of the main function 'recompose' now presents an outline of its functionality, rather than a post-ice-age deluge. 2) component functions are named according to some comment found in the code. For those who want to minimise comments. 3) most of the functions conform to my "rule of thumb" (comprehensible chunks of code are no longer than my thumb) 4) nesting substantially reduced (The functions that still have more than 5 levels of nested blocks are mostly those that are also unthumbworthy. More room on the screen, but still room for improvement.) Probably some of these functions could have been non-members, but it was more mechanical to consider them all as members. darcs-hash:20041119182315-32473-7a328297ba05b013194c23ae5d5b516c1105b7c1.gz