aboutsummaryrefslogtreecommitdiff
path: root/Carpet/CarpetLib
Commit message (Collapse)AuthorAge
* 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: 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: Add placeholders for "const" and "pure" attributes to vect<T>Erik Schnetter2006-07-31
| | | | | | | | | Add __attribute__((const)) and __attribute__((pure)) to vect<T> functions where appropriate. These attributes are not active, because it is not clear that this really improves performance, and errors could lead to wrong code. darcs-hash:20060731152218-dae7b-20c523f60890b2ad611157764e0b993bfb185c8d.gz
* CarpetLib: Replace CHKIDX macros with calls to checkindexErik Schnetter2006-12-12
| | | | darcs-hash:20061212160245-dae7b-19df81c29d911d9c77ae0aaa99ae999a0f6d27c9.gz
* CarpetLib: Initialise dh::is_interproc correctlyErik Schnetter2006-12-06
| | | | darcs-hash:20061206165743-dae7b-00a12e7ebcf48f2f54ee439ea662ab0018485915.gz
* CarpetLib: Use better algorithm to combine bboxes in bboxset's normalize()Erik Schnetter2006-12-05
| | | | | | | | | The new algorithm always finds the same canonical configuration of bboxes, independent of how the bboxset is split into bboxes. There is no guarantee that the new representation uses the minimum number of bboxes, since that would be too difficult. darcs-hash:20061205211342-dae7b-2eee2ac16cea06b3ee4fc623deb086d380d5ed37.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: Correct error in determining whether a grid structure changedErik Schnetter2006-09-28
| | | | | | Correct serious error in determining whether a grid structure changed. darcs-hash:20060928033543-dae7b-950620f6f66b1708929e1432d9158d2354ebe41e.gz
* CarpetLib: Avoid nans in timer outputErik Schnetter2006-09-25
| | | | | | | Avoid nans in timer output; instead of dividing by zero, set the result to zero. darcs-hash:20060925214858-dae7b-0c82bb1a3dc1a3080955b86324487e4a7efc044e.gz
* CarpetLib: Add timers for each prolongation operatorErik Schnetter2006-09-25
| | | | | | Add more timers, one timer for each kind of prolongation operator. darcs-hash:20060925214744-dae7b-00f47d74c2cdccdd8d5ee05a88973543116678e9.gz
* CarpetLib: When recomposing, return whether a refinement level was changedErik Schnetter2006-09-25
| | | | | | | When recomposing a refinement level level of the grid hierarchy, return whether the level's structure changed. darcs-hash:20060925214438-dae7b-e204a6fffdccc3f900b72a3e5ae82f84f0ee5d8e.gz
* CarpetLib: Clarify definition of ggf::timelevels_Erik Schnetter2006-09-25
| | | | darcs-hash:20060925214246-dae7b-1d3ad6e009dcaa1654644808d762af545c597766.gz
* CarpetLib: Use C++ comments for OMIT_F90 conditionalsErik Schnetter2006-09-25
| | | | darcs-hash:20060925214157-dae7b-e963052677829366ed96876a2bf7043d3d71ebf9.gz
* CarpetLib: Clean up data.ccErik Schnetter2006-09-25
| | | | darcs-hash:20060925214029-dae7b-9d9d5a3fec2f33f85f739bd850f156ab4c4151b7.gz
* CarpetLib: Write timer output to filesErik Schnetter2006-09-11
| | | | | | | | Write the CarpetLib timer output to files instead of to screen; the output is lengthy, difficult to interpret, and output from all processors is needed. darcs-hash:20060911025609-dae7b-c1d812ae44dfdb3f8e8daae09f06a8ed3476e73f.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: Correct errors in array index checking codeErik Schnetter2006-09-25
| | | | | | Correct errors in array index checking code for the copy operators. darcs-hash:20060925213952-dae7b-632a2159ea9f676e88ec4e27d16d2c5134b09f4f.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: Poison communications buffers as wellErik Schnetter2006-09-04
| | | | | | | When CarpetLib::poison_new_memory is set, poison communications buffers as well. darcs-hash:20060904020453-dae7b-762dfc46dcaea77cdff48fcd5e63805bf14e6dc0.gz
* CarpetLib: Replace "!" by "not"Erik Schnetter2006-09-04
| | | | darcs-hash:20060904020213-dae7b-778fdfeb662280630d1c5af50fcedde2a78e9137.gz
* CarpetLib: Reformat commentsErik Schnetter2006-09-04
| | | | darcs-hash:20060904020202-dae7b-b02b1eb0b44431d2b0e31840ac8bd8f000ac1514.gz
* [CarpetLib] add option to omit Fortran 90 files by adding -DOMIT_F90 to ↵Jonathan Thornburg2006-08-29
| | | | | | | | | | | | | | | | | | | | | | | | compiler flags Carpet is _almost_ entirely written in C, C++, and Fortran 77, but there are a few Fortran 90 files in CarpetLib defining the ENO and WENO prolongation operators. This patch allows Carpet to be compiled without a Fortran 90 compiler if these (ENO/WENO) operators are not needed, by defining the C preprocessor symbol OMIT_F90. For example, you could do this by putting CFLAGS=-DOMIT_F90 CXXFLAGS=-DOMIT_F90 F77FLAGS=-DOMIT_F90 F90FLAGS=-DOMIT_F90 in a ~/.cactus/config file. I emphasize that in the default case, where OMIT_F90 is not defined, this patch is a no-op: the ENO and WENO prolongation operators are still defined, a Fortran 90 compiler is still needed to compile CarpetLib, you still pass go, you still collect $200. :) This patch only changes the behavior of Carpet in the non-default case where OMIT_F90 is defined. darcs-hash:20060829170502-b0a3f-0d423f190bd7388faa9e1a6e0a980694b044516b.gz
* CarpetLib: fix prolongate_3d_real8_minmod.F77 to fortran77 standardsbaiotti2006-08-09
| | | | | | The fortran77 standards require that a "function" must be ended by "end" and not by "end function". The non-standard syntax is accepted by several compilers, but not by the Portland compiler. darcs-hash:20060809133700-d5812-14616fe5ee7f5e75087f09ae7cc9d83acd27bd42.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: Rename default memory statistics fileErik Schnetter2006-07-31
| | | | darcs-hash:20060731152547-dae7b-c56f2acaf72d2d21d2e4bdee00691866568af6fc.gz
* CarpetLib: Poison newly allocated memory if desiredErik Schnetter2006-07-31
| | | | | | | | | Poison newly allocated memory if desired. This is potentially more thorough that Carpet's poisoning, since it is applied to all allocated memory. It is not applied after time level cycling, though, so it cannot replace Carpet's poisoning. darcs-hash:20060731152325-dae7b-d039ee958161690c9430e70a8051d400273b819e.gz
* CarpetLib: Use double instead of size_t for memory statisticsErik Schnetter2006-07-31
| | | | | | | | | Use double instead of size_t for memory statistics. size_t works fine for keeping statistics on a single processor, but there can be overflow on multiple processors. double may be inexact, but will not overflow. darcs-hash:20060731152039-dae7b-51a07bfa276c18a59b400a4aef09ab3f2cfc1490.gz
* CarpetLib: Cast unsigned values explicitly to (int)Erik Schnetter2006-07-31
| | | | darcs-hash:20060731151456-dae7b-3f905340dc34295d2e00fe58995ebc5b4d6690f7.gz
* CarpetLib: Correct typographical error in commentErik Schnetter2006-07-31
| | | | darcs-hash:20060731151355-dae7b-fa5ddb6af45a3eec44780b7bff81e8a07a1aa861.gz
* CarpetLib: Correct grammatical error in parameter descriptionErik Schnetter2006-07-31
| | | | darcs-hash:20060731151302-dae7b-555810bfd094f8acb70b3dc90c2775ab84a20ef7.gz
* CarpetLib: Change #ifdef CCTK_* to #ifdef HAVE_CCTK_*Erik Schnetter2006-06-13
| | | | darcs-hash:20060613170802-dae7b-9f69116a70acbac95c7b7b4afa4282330b065602.gz
* CarpetLib: Allow more than one prolongation source boxesErik Schnetter2006-06-13
| | | | | | | | If two refinement boxes sit next to each other in an L (ell) shape, then the region where the boxes have prolongation boundaries may not have the shape of a single box. Therefore allow arbitrary many boxes. darcs-hash:20060613170952-dae7b-a1579f5ec53ad4a36bd44c9ab1d4f07f46a1160e.gz
* CarpetLib: #include necessary type declarationsErik Schnetter2006-06-08
| | | | darcs-hash:20060608015436-dae7b-6526525fd78b275abcd84e856d47554128dd7d7b.gz
* CarpetLib: Explicitly convert integer to type T in the bbox templateErik Schnetter2006-06-06
| | | | darcs-hash:20060606003856-dae7b-b1bbd7219113bee246898626c6652e1df5a8db65.gz
* CarpetLib: Move arithmetic operations out of vect classErik Schnetter2006-06-05
| | | | | | | | | Move the arithmetic operations (+-*/ etc.) out of the vect class. Instead of member functions, they are now standalone functions. This makes it possible to write "int * vect<int>" with automatic conversion. darcs-hash:20060605220401-dae7b-eee6ed411e3d0e5850dd8e6bd85d432eed4752e8.gz
* CarpetLib: Check for proper nestingErik Schnetter2006-05-08
| | | | darcs-hash:20060508154323-dae7b-30f14d75440c10774cd9f386bcfaca77fe3e704d.gz
* CarpetLib: Make omit_prolongation_points_when_restricting steerableErik Schnetter2006-05-08
| | | | darcs-hash:20060508154248-dae7b-a4d6c2b35d559cf0e61adae9f580905fa7771235.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: Correct error in omit_prolongation_points_when_restrictingErik Schnetter2006-05-04
| | | | | | | Correct the logic error when omit_prolongation_points_when_restricting is used. It remains off by default. darcs-hash:20060504231609-dae7b-d2b89530463b9c67e120426f20e86e6f21211a3d.gz
* CarpetLib: Add boolean parameter "omit_prolongation_points_when_restricting"Erik Schnetter2006-05-03
| | | | | | | | | | | | | | Add a parameter "omit_prolongation_points_when_restricting" that controls whether to restrict to points that are used for boundary prolongation. The default is "no", restoring Carpet's behaviour from before the patch "CarpetLib: Do not restrict to points that are used for boundary prolongation". When set to yes, then there is still a logic error in the code on multiple processors, leading to different restriction regions on different numbers of processors. darcs-hash:20060503235940-dae7b-4c124e68e4c2519c0f97d416e0a7fa3489c1441d.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
* CarpetLib: Handle empty domains correctlyErik Schnetter2006-02-27
| | | | | | | Allow a processor's domain to be empty. This needs special treatment, because such a domain must not have ghost zones added to it. darcs-hash:20060227001303-dae7b-e0c0f4d2455add31f0b1f7d1366e0090d31c9fff.gz
* CarpetLib: Add WENO prolongationI.Hawke2006-03-10
| | | | | | | | | WENO prolongation should be more accurate than ENO prolongation whilst retaining the monotonicity properties of the ENO operators. The WENO operators will only work with prolongation_order_space = 5 because of the stencil width (requires 3 ghost zones). darcs-hash:20060310132742-34bfa-32c65e7f67cb91ab36dd125a5327f2e16286e807.gz
* CarpetLib: Correct error in handling recent change to restrictionErik Schnetter2006-02-27
| | | | | | | | | Correct an error in the patch "CarpetLib: Do not restrict to points they are used for boundary prolongation". Rename some iterators to more meaningful names. darcs-hash:20060227001417-dae7b-65ada5d5357fef71b162163ee3f1ef74e55403db.gz
* CarpetLib: Do not restrict to points they are used for boundary prolongationErik Schnetter2006-02-26
| | | | | | | | Do not restrict to points they are used for boundary prolongation. Check this condition. darcs-hash:20060226002735-dae7b-36da19d1be45a8db8a2af194873cd8a3e64c8a86.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: Cache the results of MPI_Comm_rank and MPI_Comm_sizeErik Schnetter2006-02-25
| | | | darcs-hash:20060225172648-dae7b-93b93c97212a7fa33c8770200b8f8b1494ad9776.gz
* CarpetLib: Mark more parameters as steerableErik Schnetter2006-02-08
| | | | darcs-hash:20060208233203-dae7b-c3837264ceeca33579afa2bfcb45c8d10803ac0e.gz