| Commit message (Collapse) | Author | Age |
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
| |
Define dh members tallying the size of refinement boundaries. This may be used to implement (2d) face grid functions at some point.
|
| |
|
|
|
|
| |
Add infrastructure to prolongate faces of grid functions. This may be used during refluxing to apply part of the correction to the fine grid.
|
| |
|
|
|
|
|
|
| |
Rename buffer2 zones to overlap zones.
Complete implementing overlap zones in the dh class.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Extend API of grid operators and of gdata::copy_from,
gdata::transfer_from to allow hyperslabbing
Implement hyperslabbing in copy_3d.cc
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Store locations of prolongation and restriction boundaries not only
per direction, but per direction and face.
|
| |
|
|
|
|
|
|
|
| |
- 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.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Change macro CARPET_HAVE_BUFFER_WIDTH to CARPET_HAVE_BUFFER_WIDTHS,
since the field buffer_width is now buffer_widths.
|
| |
|
|
|
|
|
| |
Allow different numbers of ghost zones and different spatial
prolongation orders on different refinement levels.
|
|
|
|
| |
Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
|
|
|
|
|
| |
Handle correctly the case where the multi-patch processor decomposition
changes during regridding.
|
| |
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
Add an overloaded function memoryof which measures the size in bytes
of CarpetLib's data structures.
darcs-hash:20080202154302-dae7b-de41c79cb04617327695fae27928c05c5d431ee8.gz
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
darcs-hash:20060904020202-dae7b-b02b1eb0b44431d2b0e31840ac8bd8f000ac1514.gz
|
|
|
|
| |
darcs-hash:20060226002647-dae7b-120cbc31f8e3caf9dcf1e996844268749a954d57.gz
|
|
|
|
| |
darcs-hash:20060225172723-dae7b-27a2d88ad612cd88b33b83095760a55dd03d2dc4.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
darcs-hash:20050303101349-891bb-251f1432b873c898f73e0315ed63a7764f8714e8.gz
|
|
|
|
| |
darcs-hash:20050201231759-891bb-db87543a706110d2cd819a7f38c1e67cf27e16a3.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
darcs-hash:20050101191615-891bb-20b262ff1a4468d5e1c5ac8626a3ead0727c2da9.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
darcs-hash:20050101162121-891bb-ac9d070faecc19f91b4b57389d3507bfc6c6e5ee.gz
|
|
|
|
|
|
| |
That is, say e.g. <cmath> instead of <math.h>.
darcs-hash:20041225182902-891bb-2a4502d6a76ed830ab978030fc4e4765b183509f.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|