aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib/src/defs.cc
Commit message (Collapse)AuthorAge
* Timers: Move all timer-related code into a new thorn TimersErik Schnetter2013-08-07
|
* 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: Don't use run-together right angle brackets in templatesErik Schnetter2013-06-08
|
* CarpetLib: Instantiate some templates that are necessary on some systemsErik Schnetter2013-06-08
|
* CarpetLib: Disable bboxset2 by defaultErik Schnetter2013-05-26
| | | | Change from CARPET_NO_BBOXSET2 and CARPET_BBOXSET2 to CARPET_ENABLE_BBOXSET2 (build it) and CARPET_USE_BBOXSET2 (use it).
* CarpetLib: New class bboxset2Erik Schnetter2013-05-26
| | | | | | | | | | Rename bboxset to bboxset1. Implement new class bboxset2, which uses a different internal datastructure than bboxset1. Make bboxset a typedef for either bboxset1 (default) or bboxset2, as selected by the compile-time macro CARPET_BBOXSET2. Disable all bboxset2 code if CARPET_NO_BBOXSET2 is given, since bboxset2 uses newer C++ constructs not available on some older compilers.
* CarpetLib: Store level_boxes in dh structureErik Schnetter2012-09-16
|
* CarpetLib: Rearrange order of #include statementsErik 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.
* CarpetLib: Add new bboxset functionsErik Schnetter2011-12-14
| | | | | | New functions: - construct a bboxset from a container of bboxes - expand or contract bboxsets
* 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: 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: Instantiate ipow<vect<CCTK_REAL,dim> >Erik Schnetter2011-12-14
|
* Import CarpetErik Schnetter2011-12-14
| | | | Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
* 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: 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: 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: Rename function argumentErik Schnetter2008-01-14
| | | | darcs-hash:20080114151659-dae7b-2dce7311a42b103773b7b6febb1bafa7ded9058f.gz
* CarpetLib: Update defsErik Schnetter2007-04-19
| | | | darcs-hash:20070419014930-dae7b-3584da98807f38935aa636d7608c1baf3fa51336.gz
* CarpetLib: Add consume() routine for stringsErik Schnetter2007-01-12
| | | | | | | Add a routine consume() which reads a whole string, not only a single character. darcs-hash:20070112210808-dae7b-dc1e0be61cefe8af390d9f598bfdac314dd7aeac.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: #include necessary type declarationsErik Schnetter2006-06-08
| | | | darcs-hash:20060608015436-dae7b-6526525fd78b275abcd84e856d47554128dd7d7b.gz
* CarpetLib: Provide I/O methods for grid_structure_tErik Schnetter2006-04-13
| | | | darcs-hash:20060413201623-dae7b-da2878c0520c3f35626e7201241037de38000cbc.gz
* CarpetLib: Do not number the elements when outputting a vectorErik Schnetter2006-04-13
| | | | darcs-hash:20060413201319-dae7b-04e2b3038d83e746ac52fd01b3cf4ba51ddb6c01.gz
* CarpetLib: Instantiate missing ostream template for vector<vect<int,3> >Erik Schnetter2005-05-02
| | | | darcs-hash:20050502103959-891bb-9e29ef515ab50541c934618717e0937fb3d91d41.gz
* global: Add varying refinement factorsErik Schnetter2005-05-01
| | | | | | | | | | Add support for varying refinement factors. The spatial refinement factors can be different in different directions, can be different from the time refinement factor, and can be different on each level. (However, the underlying spatial transport operators do currently not handle any factors except two.) darcs-hash:20050501205010-891bb-8d3a74abaad55ee6c77ef18d51fca2a2b69740de.gz
* CarpetLib: Introduce new class mem<T> for memory managementErik Schnetter2005-03-05
| | | | | | | | | | | | | | | | | | | Introduce a new class mem<T> for memory management. Memory management has become sufficiently complicated to move into its own class. The class mem<T> features: 1. Allocating nelem items of type T 2. Managing contiguous regions of memory for several data<T> objects for vector groups 3. Allowing a pointer to a memory region to be passed in, which is used instead of allocating memory through new 4. Reference counting, so that the mem<T> object only goes away once the last using data<T> object does not need it any more. This makes it unnecessary to delete the first data<T> objects for a grid function group last. darcs-hash:20050305174647-891bb-e1f53adca34e5a668af96c662845cca0f259f8e6.gz
* global: Remove $Header$ keywords from Carpet arrangementErik Schnetter2005-01-01
| | | | darcs-hash:20050101162121-891bb-ac9d070faecc19f91b4b57389d3507bfc6c6e5ee.gz
* CarpetLib: Instantiate ipow(double,int)Erik Schnetter2004-12-25
| | | | darcs-hash:20041225183429-891bb-8696b1843f3ed7705453fdc2952f91fae86ad816.gz
* CarpetLib: Update ipow functionErik Schnetter2004-12-25
| | | | darcs-hash:20041225183123-891bb-51654b84d53463c1d04fa05f901082a558136155.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
* Remove CVS header tagsErik Schnetter2004-09-18
| | | | | | Replace all CVS header tags with the standard "$Header:$". darcs-hash:20040918132147-891bb-dea889bdd94a479ec412d14d08e9efca63e5c24d.gz
* Add option to use less memory during regridding.schnetter2004-05-21
| | | | | | | | | Add option to use less memory during regridding. Some more internal consistency checks. Some reformatting. darcs-hash:20040521161341-07bb3-de11e460fb175d3dbbd94708730c18a6e94e370a.gz
* Import the recently announced changes:schnetter2004-01-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Import the recently announced changes: 1. Carpet has now an infrastructure for multiple maps (aka "grid patches"). Instead of a single grid hierarchy there can now be several. This is largely untested, because the remainder of Cactus cannot handle multiple coordinate systems. 2. The order in which the schedule bins are called has changed. As Ian Hawke pointed out, the previous order during time evolution was inconsistent. The initial data ordering did not allow for recovering and was not usable for progressively solving elliptic equations for initial data. 3. Carpet now supports convergence levels. The convergence level specifies by how many factors of two the resolution in the parameter file should be coarsened (or refined, if negative). This should make convergence tests and test runs much easier. It is, in principle, also possible to run several convergence levels at once. This has not been tested because the remainder of Cactus cannot handle multiple resolutions. This will be necessary for a multigrid solver, and also for having a shadow hierarchy to determine where to refine adaptively. 4. Carpet works together with the new CoordBase domain specification parameters. Without these, using convergence levels will lead to very strange results. 5. The "modes" have changed. There are now: meta mode: the whole simulation global mode: one convergence level level mode: one refinement level singlemap mode: one map on one refinement level local mode: as previously The whole mode handling has been cleaned up. 6. The regridding thorn has been cleaned up. 7. The kind of prolongation stencil is now determined in Carpet, i.e. at a fairly hight level, instead of in CarpetLib. 8. The low-order prolongation operators have been made much more efficient (as have previously the higher-order ones). 9. Assorted smaller changes. For Carpet users, there should be no major incompatibilities. The major improvements are 3 and 4 combined. Here is an example: CoordBase::domainsize = extent CoordBase::spacing = gridspacing CoordBase::zero_origin_x = yes CoordBase::zero_origin_y = yes CoordBase::zero_origin_z = yes CoordBase::xextent = 20.0 CoordBase::yextent = 20.0 CoordBase::zextent = 20.0 CoordBase::dx = 1.0 CoordBase::dy = 1.0 CoordBase::dz = 1.0 CoordBase::boundary_shiftout_x_lower = 1 CoordBase::boundary_shiftout_y_lower = 1 CoordBase::boundary_shiftout_z_lower = 1 Carpet::domain_from_coordbase = yes Carpet::convergence_level = 0 grid::type = coordbase grid::domain = octant grid::avoid_origin = no This gives you a grid that extends from the origin ("zero_origin") up to 20.0 with a grid spacing of 1.0. Symmetry zones and boundary zones are added automatically. The "shiftout" says that there is no boundary point on the origin. The staggering parameters (not shown) default to "no". In order to change the resolution, only the convergence level has to be adjusted. Note that the old way of specifying the domain extent still works. For Carpet developers, one major change is the new mode handling. As described in 5, the looping macros (that loop over all refinement levels, or all components) have changed. darcs-hash:20040125135727-07bb3-51c9647c1b5080e7e180b52a1b81fa155cfd19e9.gz
* Allow bboxes of CCTK_REALs.schnetter2003-11-13
| | | | darcs-hash:20031113150358-07bb3-427886aab7c861fe53bf7fef96ec2a31e1d155f5.gz
* added instantiation of vector<vect<vect<boolshawley2003-05-20
| | | | darcs-hash:20030520082627-e415b-0d37ec4491c2586228a3fb7952e60dbee7f85939.gz
* Add normalize routine to normalise bboxsets. This isn't perfect yet,schnetter2003-03-18
| | | | | | | | | | | Add normalize routine to normalise bboxsets. This isn't perfect yet, i.e. it still misses some cases. Fix bug in calculating the regions that should be restricted to: exclude all regions used as source for boundary prolongations, even if these prolongations go to a different processor. darcs-hash:20030318163025-07bb3-1cfed59a57c2db71d3dae5528e93a570ccb13101.gz
* Added extra lineshawley2003-02-27
| | | | | | | | Added extra line template ostream& output (ostream& os, const vector<vect<vect<bool,2>,3> >& v); to correct link error with Intel compiler. darcs-hash:20030227212319-e415b-5fc35f682ea3640f07d9de4ff3f437f82ea2fda5.gz
* Removed the "dimgeneric_*" data types from CarpetLib. They were neverschnetter2003-01-03
| | | | | | | | | | | | | Removed the "dimgeneric_*" data types from CarpetLib. They were never really used anyway. Changed "th" into "th<D>". Renamed "generic_*" to "g*". Propagated these changes to all other places. darcs-hash:20030103144936-07bb3-c4d74d2d94a56a898f9bb735666eefc01e2610e2.gz
* Fixed some compiler warnings. Mostly added C++ "typename" keywords.schnetter2002-08-30
| | | | darcs-hash:20020830140318-07bb3-061e0233bad17df8536c1dba820b560d6578f4df.gz
* Removed user choice of C++ template instantiation model. In myschnetter2002-05-05
| | | | | | | | | | | | | | | | | Removed user choice of C++ template instantiation model. In my experience, only one model works, namely explicit template instantiaion. No need to pretend that the other things work with Cactus. (Don't complain to me -- I also think it's a shame that something that calls itself "compiler" isn't able to do this automatically. Many other compilers for many other languages do this kind of thing without even mentioning it. So there's either something fundamentally wrong with the C++ standard, or with the C++ compiler writers, or with the perceived wishlists of C++ users. And I would bet an arm and a leg that it's not the second of these.) darcs-hash:20020505201656-07bb3-a1b8dfc5587d59c718ad25ce89d0c8973c2b3e6f.gz
* Updated Carpet to the recent changes in Cactus.schnetter2002-04-29
| | | | | | | | | | | | Updated Carpet to the recent changes in Cactus. I/O: Finding out whether this is a restart now requires looking at the ioGH structure. Timelevels: Timelevels now have to be allocated explicitely. Made Carpet compile with the Intel 6.0 C++ compiler. darcs-hash:20020429092752-07bb3-65b0b317ba98c017e16294d2ff8ac6a8a424a102.gz
* Added stream input routines for some CarpetLib containers.schnetter2002-03-11
| | | | | | | | | | | | | | | | | | | | Added stream input routines for some CarpetLib containers. The regridder now has to explicitly say which boundaries are outer, and which are internal. This will make outer boundaries on fine grid possible, and is also necessary when there are multiple grid patches. Started to add support for arbitrariliy many user-specified refinement regions. Not yet finished. The Carpet driver can now handle multiple grid patches. Added example files for multiple grid patches. They use initial data that does not "fit" the boundary conditions, and they don't use multiple refinement levels so far. Removed old and unused example files in CarpetLib. darcs-hash:20020311121709-07bb3-18594c42bd7a958ee0840d29e158a343208f5711.gz
* 1. Added interface for AMR. Carpet still contains no clusterer, butschnetter2001-08-26
| | | | | | | | | | 1. Added interface for AMR. Carpet still contains no clusterer, but the application can now determine where to refine. 2. Made scalars (again) available all the time. This allows the scheduler to use scalars. darcs-hash:20010826115851-07bb3-eca06f09fe49430522d9770bdf5ff2e99f7578a6.gz
* Broke the file "carpet.cc" into several files.schnetter2001-07-04
| | | | | | | | Broke the file "carpet.cc" into several files. Simplified support for arrays with a dimension different from 3. Added a testing thorn. darcs-hash:20010704102946-07bb3-82132f0c643e91f0de33bbaef93f9c693ce7227f.gz
* Second stab at having arrays with a dimension different than gridschnetter2001-07-02
| | | | | | | Second stab at having arrays with a dimension different than grid functions. Not yet tested. darcs-hash:20010702112209-07bb3-816053f629c333189a63014698d4b34c124168aa.gz
* Made Carpet compile on IRIX.eschnett2001-03-27
| | | | darcs-hash:20010327202631-f6438-d70466b15bf2224f3ce20968622c77a3cca37a73.gz
* Added support for higher-order interpolation in space and time.eschnett2001-03-24
| | | | darcs-hash:20010324213842-f6438-3ccfdd7797b28055f08d28b77e33205c69c60e27.gz
* Brought in latest differences from the SGI version. This is workeschnett2001-03-22
| | | | | | | Brought in latest differences from the SGI version. This is work towards a code that compiles on both architectures. darcs-hash:20010322174200-f6438-23ab5f26cf84d2666312791c6bdb5a0fc1d0390a.gz