Starting with tag: [TAG 2005-01-01 Erik Schnetter **20050607053600] [global: Turn CarpetLib templates into classes Erik Schnetter **20050101182234 Turn most of the templates in CarpetLib, which used to have the form template 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 class XXX are now of the form template class XXX The templates vect, bbox, and bboxset remain templates. This change simplifies the code somewhat. ] [CarpetLib: Remove many this-> prefixes in class gf Erik Schnetter **20050101190036] [CarpetLib: Rename some variables to avoid shadowing class members Erik Schnetter **20050101191615] [Carpet: Provide GroupStorage{In,De}crease instead of {En,Dis}ableGroupStorage Erik Schnetter **20050128113401] [Carpet: Initialise cGroupDynamicData::activetimelevels Erik Schnetter **20050201214047] [global: Change the way in which the grid hierarchy is stored Erik Schnetter **20050201225827 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. ] [CarpetLib: Use dist::rank() instead of MPI_Comm_rank() Erik Schnetter **20050201231956] [CarpetLib: Add more checks to dh class Erik Schnetter **20050102173453] [CarpetLib: Whitespace change Erik Schnetter **20050201231759] [CarpetLib: Move class timestat into its own file Erik Schnetter **20050101171429] [CarpetLib: Correct errors in declaration of timestat Erik Schnetter **20050101185325] [CarpetLib: Remove many this-> prefixes in class data Erik Schnetter **20050101185718] [CarpetLib: Move class commstate into its own file Erik Schnetter **20050101193846] [CarpetLib: Add lightweight communication buffers (untested) Erik Schnetter **20050102173524 Lightweight communication buffers use essentially only a vector instead of a data to transfer data between processors. This should reduce the computational overhead. Set the parameter "use_lightweight_buffers" to use this feature. This feature is completely untested. ] [CarpetLib: Clean up some warning messages Erik Schnetter **20050103135305] [CarpetLib: Rename data::interpolate_in_time to data::try_without_time_interpolation Erik Schnetter **20050103135332] [CarpetLib: Restructure lightweight communication buffers Erik Schnetter **20050103200712 Restructure the lightweight communication buffers. Use lightweight communication buffers for interpolation as well. ] [CarpetLib: Add missing #include Erik Schnetter **20050112093608] [Carpet: Whitespace change Erik Schnetter **20050202125625] [CarpetIOHDF5: output individual refinement levels if requested Thomas Radke **20050204181016 After updating CactusBase/IOUtil, one can now choose refinement levels for individual grid functions to be output, simply by using an options string, eg.: IOHDF5::out_vars = "wavetoy::phi{refinement_levels = {1 2}}" If no such option is given, output defaults to all refinement levels. Note that the parsing routine (in IOUtil) does not check for invalid refinement levels (>= max_refinement_levels). ] [CarpetIOHDF5: document the 'refinement_levels' I/O parameter option Thomas Radke **20050204181953] [CarpetIOHDF5: Use positive timelevels Erik Schnetter **20050207131924] [Adaptive Regridding might work Ian Hawke **20050208180418 Changes to the adaptive regridding routine such that it appears to work for short times on one processor with various changes to, e.g., WaveMoL, before hitting internal Carpet problems. ] [Adaptive regridding symmetry / indexing partial fix Ian Hawke **20050209161923 Fixed a bug where the array indexing in C++ was wrong. Now something that should be symmetric almost is. There is still an assertion failure when it tries to derefine - for the moment this appears to be a Carpet internal problem. ] [Reverse iterator order Ian Hawke **20050209173129 Reverse the order that variables are destroyed when refinement levels are removed. This ensures that vector GFs are treated correctly. ] [Make certain parameters private Ian Hawke **20050209173226] [Comment out debugging statements Ian Hawke **20050209173245] [CarpetLib: Specialise some vect template members to remove compiler warnings Erik Schnetter **20050209222027] [CarpetLib: Specialise some vect template members to remove compiler warnings Erik Schnetter **20050209223915] [CarpetWeb: Update darcs executable to version 1.0.2 Erik Schnetter **20050210123518] [Correct outer boundary check Ian Hawke **20050210134049 Correct the outer boundary check so that there's no more assertion failures. However, the outer boundary is of course not dealt with correctly yet. ] [CarpetWeb: Add documentation for darcs Erik Schnetter **20050211121253] [AMR boundaries Ian Hawke **20050211135704 Add support for using boundaries with AMR. Seems to work with symmetry boundaries but gets a bit confused if you try refining outer boundaries. Requires that you setup the domain using CoordBase. ] [CarpetAdaptiveRegrid: Use CarpetIOScalar instead of IOBasic for scalar output Erik Schnetter **20050211161343] [Carpet: Output some grid size statistics after regridding Erik Schnetter **20050211185743] [CarpetIOHDF5: read the 'group_timelevel' attribute as a positive integer to retain backwards compatibility with older checkpoints Thomas Radke **20050214145219] [CarpetIOHDF5: write a "carpet_version" integer attribute to tag data output and checkpoint files Thomas Radke **20050214163413] [Multilevel AMR Ian Hawke **20050218120448 Basic support for more than 2 refinement levels with AMR. Basic tests done with shock tubes seem to show that it works. Note that proper nesting is not ensured as yet as we don't check for orphaned grandchildren. ] [Fix adaptive patch hitting boundary Ian Hawke **20050218164449] [Correct padding ih@maths.soton.ac.uk**20050221195416 Correct the way the errors are padded (an off-by-one error). Also be a bit more careful with F90 intent statements. ] [CarpetIOASCII: optionally request the capability SDF and fix build rules for utility programs Thomas Radke **20050222172448] [CarpetAdaptiveRegrid: Enforce proper nesting Ian Hawke **20050222174437 Enforce proper nesting both for parents and children by looping over all finer levels regridding them all at once. This completely destroys efficiency... ] [CarpetAdaptiveRegrid: Only regrid once per iteration ih@maths.soton.ac.uk**20050223143548 Because the routine now regrids all finer levels than the one on which it is called it is not necessary to regrid more than once per iteration. ] [CarpetAdaptiveRegrid: Correct striding correction Ian Hawke **20050223105949] [CarpetAdaptiveRegrid: Allow non-trivial initial grids ih@maths.soton.ac.uk**20050223235501 Use the CarpetRegrid::manual-coordinate-list notation to allow the setting up of initially refined grids. Literal cut 'n paste in many places. ] [CarpetAdaptiveRegrid: parallel support ih@maths.soton.ac.uk**20050224223702 Make CAR work on more than one processor (that is, I've tested it on my laptop using mpirun -np 2...). Note that at present whilst it runs and gives reasonable answers you do _not_ get the same answers as you would on 1 proc. This is a bug, as yet unfound. But, there probably are lots of other bugs in this code still to be found... ] [CarpetAdaptiveRegrid: Documentation ih@maths.soton.ac.uk**20050225194759 Add some documentation for the AMR, and also an example parameter file (shock tube, 6 levels). Note that my last message about parallel AMR was incorrect; the difference between the 1 and 2 processor runs was entirely due to a bug in Whisky, not in the AMR. Once that was fixed, the results now agree to output precision. Therefore I pronounce parallel AMR "working". ] [CarpetAdaptiveRegrid: Code documentation ih@maths.soton.ac.uk**20050225203643 As well as documenting the code a bit, add some fixme's (including noting that the code probably won't work correctly with checkpoint/restart yet!). ] [CarpetLib: Whitespace changes Erik Schnetter **20050303101349] [CarpetLib: Small cleanups to vector group storage handling Erik Schnetter **20050303101420] [Carpet: Comment change Erik Schnetter **20050303101606] [Carpet: Remove some unnecessary asserts Erik Schnetter **20050303101645] [Carpet: Print grid function statistics all the time Erik Schnetter **20050303101732] [Carpet: Correct errors in en-/disabling of storage Erik Schnetter **20050303101750] [Carpet: Handle groups with all time levels active correctly Erik Schnetter **20050303101914] [Carpet: Change some 0 to NULL Erik Schnetter **20050303101924] [CarpetRegrid: Change "&&" and "||" to "and" and "or" Erik Schnetter **20050303102007] [CarpetRegrid: Change moving boxes parameters back from private to restricted Erik Schnetter **20050303102105] [CarpetAdaptiveRegrid: Change implementation name to CarpetAdaptiveRegrid Erik Schnetter **20050303102220 Change implementation name from CarpetRegrid to CarpetAdaptiveRegrid. This is necessary because the thorns CarpetRegrid and CarpetAdaptiveRegrid export different parameters -- CarpetRegrid supports moving boxes, and CarpetAdaptiveRegrid does not. ] [CarpetInterp: Handle groups that have not all time levels allocated Erik Schnetter **20050303102506] [CarpetReduce: Handle groups that have not all time levels allocated Erik Schnetter **20050303102622] [CarpetLib: Use MPI_STATUS_IGNORE Erik Schnetter **20050303170559] [CarpetAdaptiveRegrid: ASCII pictures of the mask Ian Hawke **20050304120741 Print to screen (using cout; not good on multiprocs) an ASCII art picture of the mask for debugging purposes. ] [CarpetAdaptiveRegrid: Fix checking the child level for errors Ian Hawke **20050304134516 Firstly only check the errors of a child level if a grandchild level exists. Secondly take the refinement factor into account when calculating where this error should be placed! ] [CarpetAdaptiveRegrid:Really fix the inheriting child errors this time, I hope. Ian Hawke **20050304163739] [Carpet: Forbid local mode only for true storage changes Erik Schnetter **20050304224351 Forbid local mode in CCTK_{En,Dis}ableGroupStorage only when the number of allocated time level actually changes. ] [Carpet: Add new flag Carpet::constant_load_per_processor Erik Schnetter **20050307165844 Add a new flag Carpet::constant_load_per_processor which takes the specified grid size and multiplies it by the number of processors. When running benchmarks, this keeps the local load constant. ] [CarpetInterp: Correct check whether a processor owns a component Erik Schnetter **20050307170026] [CarpetLib: Correct misleading comment Erik Schnetter **20050321020511] [CarpetIOHDF5: fix for IOHDF5::use_reflevels_from_checkpoint = "yes" for the case when CarpetRegrid::refinement_levels was also set in the recovery parfile Thomas Radke **20050321110931] [Carpet/CarpetLib: minimise the number of outstanding communication requests tradke@aei.mpg.de**20050311160040 This patch greatly reduces the number of outstanding MPI_Isend/MPI_Irecv communication requests by moving the loop over comm_states (recv,send,wait) from the outermost to the innermost. This resolves problems with certain MPI implementations (specifically LAM, MPICH-NCSA, and Mvapich over Infiniband) which potentially resulted in some communication buffer overflow and caused the Cactus application to abort or hang forever. Preliminary benchmarks with BSSN_MoL show that the patch does not have a negative impact on myrinet clusters (measured to 64 processors). It even improves the Carpet performance on GigE clusters (measured up to 16 processors). The order of the communication loops is controlled by the boolean parameter CarpetRegrid::minimise_outstanding_communications which defaults to "no" (preserving the old behaviour). ] [Carpet: call SyncGFGroup() from within Restrict() to remove code duplication tradke@aei.mpg.de**20050316123248] [Carpet: simplify SyncGroup(); merge SyncGFArrayGroup() and SyncGFGroup() into SyncGVGroup() tradke@aei.mpg.de**20050316140925] [Carpet: fix for my latest patch which still had some (incomplete) debug statements left that broke compiling Comm.cc Thomas Radke **20050317150756] [CarpetLib: Do not check invariant of bboxset class Erik Schnetter **20050321020814 Checking the invariant of the bboxset class is probably O(N^3) in the number of bboxes, possibly worse. It is a very slow operation when there are many components in a simulation, especially with AMR, and possibly also when running on many processors. ] [CarpetLib: remove unused send_listvect argument in copycat() and intercat() Thomas Radke **20050323191002] [Carpet: short cut in Restrict(): don't call SyncGVGroup() on empty (vector) groups Thomas Radke **20050325093919] [CarpetLib, Carpet: implement and use collective communication buffers Thomas Radke **20050330152811 Collective buffers are used to gather all components' data on a processor before it gets send off to other processors in one go. This minimizes the number of outstanding MPI communications down to O(N-1) and thus improves overall efficiency as benchmarks show. Each processor allocates a pair of single send/recv buffers to communicate with all other processors. For this the class (actually, the struct) comm_state was extended by 3 more states: state_get_buffer_sizes: accumulates the sizes for the send/recv buffers state_fill_send_buffers: gathers all the data into the send buffers state_empty_recv_buffers: copies the data from the recv buffer back into the processor's components Send/recv buffers are exchanged during state_fill_send_buffers and state_empty_recv_buffers. The constructor for a comm_state struct now takes an argument which denotes the CCTK datatype to use for the attached collective buffers. If a negative value is passed here then it falls back to using the old send/recv/wait communication scheme. The datatype argument has a default value of -1 to maintain backwards compatibility to existing code (which therefore will keep using the old scheme). The new communication scheme is chosen by setting the parameter CarpetLib::use_collective_communication_buffers to "yes". It defaults to "no" meaning that the old send/recv/wait scheme is still used. So far all the comm_state objects in the higher-level routines in thorn Carpet (restriction/prolongation, regridding, synchronization) have been enabled to use collective communication buffers. Other thorns (CarpetInterp, CarpetIO*, CarpetSlab) will follow in separate commits. ] [CarpetIOASCII: pass vartype in comm_state constructor tto make use of collective communication buffers Thomas Radke **20050331074851] [CarpetIOHDF5: pass vartype in comm_state constructor tto make use of collective communication buffers Thomas Radke **20050331080034] [CarpetSlab: pass vartype in comm_state constructor tto make use of collective communication buffers Thomas Radke **20050331082252 So far collective buffers can be used only for the collector object. For the case where all processors should receive the resulting hyperslab, the comm_state loop was left untouched because I didn't understand the code. ] [CarpetLib: make fill_bbox_arrays() a static non-template function in data.cc tradke@aei.mpg.de**20050316130144] [CarpetLib: omit the name for the unused dummy function argument in dist::datatype() to get rid of g++ compiler warnings Thomas Radke **20050406145726] [Carpet: bugfix for high-level synchronisation routines Thomas Radke **20050407150044 In one of my previous patches I accidentally added two bugs when optimising the high-level synchronisation routines in Carpet: * a SYNC statement did only synchronise the ghostzones but forgot to prolongate the boundaries for grid functions * SyncGroups() also tried to synchronise non-CCTK_GF variables at multigrid and refinement levels other than 0 ] [CarpetIOHDF5: optimisation of syncing all variables after recovery Thomas Radke **20050407153843 Synchronise all variables of the same vartype at once by calling Carpet::SyncProlongateGroups(). ] [FOWaveToyF77: do not inherit from IDFOScalarWave Erik Schnetter **20050409185109] [Carpet: Forbid staggering about the origin only for multiple convergence levels Erik Schnetter **20050409190317] [CarpetRegrid: Correct some errors in the automatic regridding routine Erik Schnetter **20050323211540 Correct some errors in the automatic regridding routine. Add a parameter for verbose screen output. ] [CarpetRegrid: remove invalid restrict qualifier in Automatic_Recursive() Thomas Radke **20050405095600 Intel compilers seem to ignore the qualifier but g++ didn't compile automatic.cc anymore. ] [Carpet: Update doxygen instructions Erik Schnetter **20050410120954] [CarpetLib: Introduce new class mem for memory management Erik Schnetter **20050305174647 Introduce a new class mem for memory management. Memory management has become sufficiently complicated to move into its own class. The class mem features: 1. Allocating nelem items of type T 2. Managing contiguous regions of memory for several data 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 object only goes away once the last using data object does not need it any more. This makes it unnecessary to delete the first data objects for a grid function group last. ] [Carpet: Do not free timelevels in reverse order any more Erik Schnetter **20050305175432] [CarpetLib: Resolve conflict after introducing mem class Erik Schnetter **20050410175106 Resolve the conflict that exists between the patches that introduce the mem class conflicts and the option CarpetLib::use_collective_communication_buffers. ] [CarpetSlab: fix return value for CarpetSlab_GetList() Thomas Radke **20050410140710 The return code of CarpetSlab_Get() must be checked against 0 for successful completion. The return code of CarpetSlab_GetList() should be the number of slabs returned, or negative in case of errors. ] [CarpetLib: bugfix for collective buffers communication Thomas Radke **20050411100916 Collective buffers were accidentally used (eg. by CarpetIOHDF5 or CarpetIOASCII) even if CarpetLib::use_collective_communication_buffers was set to "no". Now this parameter is evaluated in the comm_state constructor (together with the variable type given) and the result stored in a flag comm_state::uses__collective_communication_buffers. This flag is then used later in comm_state::step() to decide about communication paths. ] [CarpetIOHDF5: use CCTK_ActiveTimeLevelsGI() instead of CCTK_GroupStorageIncrease() to find out the number of timelevels to checkpoint Thomas Radke **20050411121428] [CarpetLib: remove erroneous assert statements in the collective buffers communication code Thomas Radke **20050411144255] [CarpetIOHDF5: bugfix for checkpoint/recovery Thomas Radke **20050412161430 CarpetIOHDF5 used to output unchunked data only, ie. all ghostzones and boundary zones were cut off from the bboxes to be output. This caused problems after recovery: uninitialized ghostzones led to wrong results. The obvious solution, calling CCTK_SyncGroup() for all groups after recovery, was also problematic because that (1) synchronised only the current timelevel and (2) boundary prolongation was done in a scheduling order different to the regular order used during checkpointing. The solution implemented now by this patch is to write checkpoint files always in chunked mode (which includes all ghostzones and boundary zones). This also makes synchronisation of all groups after recovery unnecessary. Regular HDF5 output files can also be written in chunked mode but the default (still) is unchunked. A new boolean parameter IOHDF5::out_unchunked (with default value "yes") was introduced to toggle this option. Note that this parameter has the same meaning as IO::out_unchunked but an opposite default value. This is the only reason why IOHDF5::out_unchunked was introduced. ] [CarpetLib: Correct errors in handling mem objects Erik Schnetter **20050411183030 I think there were some errors in handling the mem objects, but I'm not completely sure. ] [CarpetLib: Correct assert statements Erik Schnetter **20050416184109 Use assert (dist::rank() == proc()) instead of assert (_owns_storage). The latter is wrong; it misinterprets the meaning of the field _owns_storage. ] [CarpetLib: do nothing if box to be copied is empty Thomas Radke **20050418170004 This fixes a bug in the collective buffers code which did call copy_from_innerloop() even for empty boxes. The fortran routine called by copy_from_innerloop() finally catched this bug in an assert statement. ] [CapretReduce: Do not crash on grid functions with only one time level Erik Schnetter **20050428151159 When a grid function has only one time level, emit a level 1 warning instead of aborting with an assertion failure. ] [CarpetReduce: handle the case of zero reductions Erik Schnetter **20050430154439 When there are zero reductions, allow the output pointers to be NULL. ] [Carpet: Output grid structure to screen only when Carpet::verbose is set Erik Schnetter **20050506111624] [CarpetLib: Output nice error message when the levels are not properly nested Erik Schnetter **20050508171047] [CarpetLib: Instantiate missing ostream template for vector > Erik Schnetter **20050502103959] [CarpetIOHDF5: API for H5Sselect_hyperslab() has changed in HDF5 1.6.4 Thomas Radke **20050512101748 The second argument to H5Sselect_hyperslab must be a 'const hsize_t start[]' in the latest release 1.6.4. It used to be 'const hssize_t start[]' in all previous releases. ] [CarpetIOHDF5: don't use buffer zones for the wavetoy testsuite Thomas Radke **20050526162722 The wavetoy checkpoint parfile did set CarpetLib::buffer_width = 6 which is not necessary for wavetoy. It even caused slight differences on 16 processors because then there apparently were more buffer zones than real gridpoints on a processor. Carpet should test for this case. ] [Carpet: skip empty groups in Poison.cc Thomas Radke **20050601161546] [CarpetIOASCII: Print a warning when OutputVarAs is not called in level mode Erik Schnetter **20050605221053 Print a nice warning when OutputVarAs is not called in level mode instead of aborting in an assert statement. ] [CarpetIOScalar: Put unique simulation ID into each file Erik Schnetter **20050605221248] [CarpetIOHDF5: Put unique simulation ID into each file Erik Schnetter **20050605221351 Add the unique simulation ID as attribute to each dataset. ] [CarpetIOScalar: Do not annotate output files when IO::out_fileinfo="none" Erik Schnetter **20050606145519] [CarpetIOASCII: Make it possible to have only one output file per group Erik Schnetter **20050509124629 Add a parameter CarpetIOASCII::one_file_per_group that collects the output for all variables of a group into a single file. This reduces the number of files, and should thus speed up output and reduce disk usage. If at least one variable of a group is output, then the whole group is output. ] [CarpetIOASCII: Correct error in one-file-per-group output Erik Schnetter **20050509204428] [CarpetIOASCII: Do not output symmetry points if desired Erik Schnetter **20050527124414] [CarpetIOASCII: Put a unique simulation ID into each file Erik Schnetter **20050605220944] [CarpetIOASCII: Use modern C++ notation for include files Erik Schnetter **20050605221025] [CarpetIOASCII: Correct error in not outputting symmetry points Erik Schnetter **20050605221204 The symmetry points were accidentally omitted all the time. ] [CarpetIOASCII: Do not annotate output files when IO::out_fileinfo="none" Erik Schnetter **20050606130520] [CarpetIOHDF5: don't use buffer zones for the wavetoy testsuite Thomas Radke *-20050526162722 The wavetoy checkpoint parfile did set CarpetLib::buffer_width = 6 which is not necessary for wavetoy. It even caused slight differences on 16 processors because then there apparently were more buffer zones than real gridpoints on a processor. Carpet should test for this case. ] [CarpetIOHDF5: don't use buffer zones for the wavetoy testsuite Thomas Radke **20050526161905 The wavetoy checkpoint parfile did set CarpetLib::buffer_width = 6 which is not necessary for wavetoy. It even caused slight differences on 16 processors because then there apparently were more buffer zones than real gridpoints on a processor. Carpet should test for this case. ] [CarpetWeb: Mention new stable version Erik Schnetter **20050411172219] [CarpetWeb: Update web pages Erik Schnetter **20050606193150 Update the web pages. Explain stable and development versions better. Update darcs binaries and documentation. ] [CarpetWeb: Update darcs binary Erik Schnetter **20050606193802] [fix perl typo in split function, triggering on neweperl versions frank.loeffler@aei.mpg.de**20050607111948] [fix typo in Carpet2ygraph.pl frank.loeffler@aei.mpg.de**20050608095613] [CarpetIOHDF5: fixed filereader testsuite parfile Thomas Radke **20050623160021 Filereader files are found in IO::filereader_ID_dir and not in IO::recover_dir. ] [CarpetIOHDF5: add "cctk_bbox" and "cctk_nghostzones" attributes to each dataset Thomas Radke **20050628113537] [CarpetIOScalar: Handle IO::out_fileinfo="axis labels" Erik Schnetter **20050617201217] [CarpetIOASCII: Handle IO::out_fileinfo="axis labels" Erik Schnetter **20050617201258] [CarpetReduce: Correct error in calculating the past levels' current times Erik Schnetter **20050704162500] [CarpetInterp: Backport correction for error in the time interpolation Erik Schnetter **20050717194126] [Carpet{IOScalar,IOHDF5,IOStreamedHDF5}: use C++ strings (rather than Util_asprintf()) to construct C output strings Thomas Radke **20050726125858 There was a small memory leak in using Util_asprintf() to continuously append to an allocated string buffer. The code has now been rewritten to use C++ string class objects which are destroyed automatically. This closes http://bugs.carpetcode.org/show_bug.cgi?id=89. ] [Fixed critical bug in Checkpointing / Zero-Variable groups Thomas Radke **20050727113911 Apparently there are groups with 0 variables. For them CCTK_FirstVarIndexI(group) returns -2. Since IOUtil does not check the validity of the varindex for which it creates an IO request, this can potentially lead to memory corruption and in fact does so on the Itanium-2 architecture. ] [Carpet: update parfiles in the par/ directory Thomas Radke **20050728172328 The parfiles didn't run because not all thorns were activated. test_rad.par activated IOASCII and set an IOASCII parameter instead of using CarpetIOASCII. multipatch.par was a very old parfile which didn't run at all. It was therefore removed. This closes bug report http://bugs.carpetcode.org/show_bug.cgi?id=78 "Fails to run test par files (unactivated thorns)". ] [CarpetInterp: fix waveinterp testsuite Thomas Radke **20050808163820 The waveinterp testsuite was broken, many output files had different values. Also, the old output files didn't contain the recently introduced header comment lines saying which thorn did output them. The waveinterp testsuite has now been split into two separate tests, waveinterp-1p and waveinterp-2p to run on 1 and 2 processors respectively. The only differences are in the CarpetIOASCII files which contain either 1 or 2 components in the output. ] [CarpetIOHDF5: bugfix for triggering output files truncation Thomas Radke **20050823132413 Truncation of an HDF5 output file was triggered by the first output of the variable that was to be written. This caused problems when the same variable was written to multiple output files (via alias names). Now the file truncation check is based on the actual output filename. ] [CarpetIOHDF5: bugfix for outputting the same variable into multiple files Thomas Radke **20050823134747 Before a variable is output it is checked whether it has been output already during the current iteration (eg. due to triggers). This check was only variable-based and therefore caused problems when the same variable was to be output to multiple files (using different alias names). Now the check has been extended to also take the output filenames into account. ] [CarpetInterp: bugfix for extracting the "time_deriv_order" values from the options table Thomas Radke **20050823211509] [Carpet: Handle negative time steps correctly during prolongation Erik Schnetter **20050808194745] [CarpetTest: fix names for grid array sizes Thomas Radke **20050926114726 The (internal) variable names as passed in CCTK_ARGUMENTS to specify CCTK array grid sizes have changed recently. This patch fixes carpettest_check_arguments.F77 to follow the new naming scheme. ] [Carpet: bugfix in synchronisation of grid arrays Thomas Radke **20051021170524] [CarpetIOHDF5: bugfix in checkpointing code Thomas Radke **20051116133828 Don't remove an initial data checkpoint file if IO::checkpoint_keep is set to a value larger 0. ] [CarpetIOHDF5: fix in checking the version of the HDF5 library Thomas Radke **20060113163713] [CarpetIOHDF5: raise the warning level from 2 (COMPLAIN) to 1 (ALERT) for warnings about the use of deprecated I/O parameters Thomas Radke **20060127164710]