| Commit message (Collapse) | Author | Age |
|
|
|
| |
darcs-hash:20080114075419-dae7b-b59ccf120d369c4ea8715f856a68e63a0c396f63.gz
|
|
|
|
| |
darcs-hash:20070703100059-dae7b-144bb38c56bea2402ff2708d863148b0ca8cadcb.gz
|
|
|
|
| |
darcs-hash:20070613215011-dae7b-2a0f7fecdc2a95a4f79f2384e73c2acdb35e630d.gz
|
|
|
|
|
|
|
| |
Add a member gdata::allocsize which calculates the amount of memory
that a data object requires.
darcs-hash:20070526170719-dae7b-622c8d34ced2a5066fbaaf56e9d9b39efeea9022.gz
|
|
|
|
|
|
|
| |
g++ complains about function parameters which aren't used. Such warnings can be
prevented simply by not naming the parameters.
darcs-hash:20070502142321-3fd61-2df310c771be0a6177c7f56d6603e6f571209dea.gz
|
|
|
|
|
|
|
|
|
| |
Remove outdated communication mechanisms from data<T> and gdata
classes.
Redesign communication mechanism in data<T> and gdata classes.
darcs-hash:20070419014301-dae7b-ece41543dcb1e23ab81f103b04a75880ac68807f.gz
|
|
|
|
|
|
|
| |
Change static_assert to have a second arguments, which is supposed to
be a string containing a description of the test.
darcs-hash:20070228022658-dae7b-3fb68ea0e0f557f2268cb95546ba0d70c58cda7a.gz
|
|
|
|
| |
darcs-hash:20070219202316-dae7b-441bdad39e75963a86bedbcaea54bbf7ced0f8a7.gz
|
|
|
|
|
|
| |
Instantiate data<T>::operator<< for all T, not only for CCTK_REAL.
darcs-hash:20070214172622-dae7b-c920d63bc92cc6d6a102f3b20a38317c7b642f92.gz
|
|
|
|
| |
darcs-hash:20070204191635-dae7b-3ff04866f9ba7ebe272bfd61ec8900d013420432.gz
|
|
|
|
|
|
|
| |
Add a field "void * _storage" to the gdata class to speed up its
storage() member function.
darcs-hash:20070204175843-dae7b-644ade82e1432b82384baf64f55aeb2482032fdf.gz
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement a second timer based on Intel's rdtsc instruction, which is
much faster and much more accurate than MPI_Wtime.
Place the timer classes into the CarpetLib namespace.
Create a TimerSet class. Make the Timer class automatically register
all timers with a singleton object, removing all global variables.
darcs-hash:20070203211128-dae7b-42765e79446eda6a2337ba22cd390869055c555a.gz
|
|
|
|
|
|
|
|
| |
Define a macro AT() to index into std::vector. Depending on the macro
NDEBUG, AT() is defined either as at(), providing index checking, or
as operator[], providing no checking.
darcs-hash:20070203205854-dae7b-a1999c88c95ba12b1ee66505f712aefdd67d7e6f.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Reorganise prolongation and restriction operators. This is a major
implementation change.
Most operators are now written as C++ templates instead of as Fortran
77 code. This simplifies the code, since C++ routines can be called
more easily, and they also have access to CarpetLib's high-level data
structures.
Previously, the operators combined temporal and spatial interpolation.
Now, time interpolation and space interpolation are handled
separately. This may be less efficient, but simplifies the code
significantly, since there are now N+M instead of N*M routines, for N
time interpolation and M space interpolation methods.
Remove the minmod prolongation operator, which was previously
disabled.
Add support for cell centering, using a method described by Simon
Hern, and suggested for Carpet by Ian Hawke.
darcs-hash:20070112205812-dae7b-5329795aa698e7bbc3671b1504134885dd830238.gz
|
|
|
|
|
|
| |
Add more timers, one timer for each kind of prolongation operator.
darcs-hash:20060925214744-dae7b-00f47d74c2cdccdd8d5ee05a88973543116678e9.gz
|
|
|
|
| |
darcs-hash:20060925214157-dae7b-e963052677829366ed96876a2bf7043d3d71ebf9.gz
|
|
|
|
| |
darcs-hash:20060925214029-dae7b-9d9d5a3fec2f33f85f739bd850f156ab4c4151b7.gz
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
No functionality change, but this requires all callers to be changed.
darcs-hash:20051119202604-dae7b-3492487bfdc4f3d228ec57a2b2ea02116f5cb64c.gz
|
|
|
|
|
|
|
| |
Replace some int local variables by size_t local variables. This
eliminates some compiler warnings about signed/unsigned comparisons.
darcs-hash:20051119202008-dae7b-8cf4f1bf5673b3b68164b2488f3e8c738fa55726.gz
|
|
|
|
|
|
|
|
|
| |
This fixes a typo in the previous push.
I also took the opportunity to bring the patch into better compliance
with the coding style.
darcs-hash:20050809143402-90671-5feae89e34e29f1648b31a66d97d578a5b283f1b.gz
|
|
|
|
|
|
|
|
|
|
| |
Added a ostream & << operator for the data class.
Made an explicit instantiation for CCTK_REAL.
Usually the amount of data renders such an operator useless,
but in test programs it is handy to be able to just print the data values.
darcs-hash:20050809093318-90671-dd30c55dc8757efa96a9bfbe90a48ff445e26f07.gz
|
|
|
|
|
|
|
|
|
|
| |
Disable the check for time extrapolation for grid functions that are
not interpolated but copied (transport_operator=op_copy). This check
needs to know the sign of delta_time, and that sign is not known here.
(For example, 3-timelevel-initialisation evolves both forwards and
backwards in time.)
darcs-hash:20050726111122-891bb-0c2130f2dfdd86c25575cbb88cb7c8ad80089eac.gz
|
|
|
|
|
|
|
|
| |
Add 7th order accurate spatial interpolation operators. These are
probably slow; refactoring the code into subroutines may help. Only
the special case refinement-factor=2 is implemented.
darcs-hash:20050715220610-891bb-bcab32f4c57f155142abd5f0f01341ea108d983f.gz
|
|
|
|
|
|
|
|
| |
Forbid the interpolation orders 0, 2, and 4, which were not
implemented. CarpetLib used to fall back to the higher orders 1, 3,
and 5 instead. Now, CarpetLib will abort in this case.
darcs-hash:20050715220423-891bb-2d65006f6a78cb55aec3949de30b4e68134efa0b.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new transport operator type op_copy. This "prolongation"
operator does not interpolate in time, but rather copies the from the
newest time level instead. Such grid functions need only one time
level.
This is intended for prolongating or restricing grid functions like
the ADM constraints; if done properly; they will have the same values
on the coarse and fine grids. (However, this does not work for the
ADM constraints, because such grid functions still need to be set in
EVOL, not in ANALYSIS.)
darcs-hash:20050607160833-891bb-cfd1c7630f8996606328d7c7e9fe326561106aba.gz
|
|
|
|
|
|
|
| |
Use assert (dist::rank() == proc()) instead of assert (_owns_storage).
The latter is wrong; it misinterprets the meaning of the field _owns_storage.
darcs-hash:20050416184109-891bb-a07ba29e020dad420edebaa0c824b7c207d1ac2b.gz
|
|
|
|
|
|
|
| |
I think there were some errors in handling the mem<T> objects, but I'm
not completely sure.
darcs-hash:20050411183030-891bb-f1b5510bb4866c8d4bab48a7b320cb6de71b1121.gz
|
|
|
|
| |
darcs-hash:20050411182954-891bb-6f141054635439136d978f98f528af1204919199.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
darcs-hash:20050316130144-3fd61-1f95c63b76c29de63f212546b5e4fa226afe7299.gz
|
|
|
|
| |
darcs-hash:20050303170559-891bb-836694ccb8375a1f09cfaeda646e4430e3e5bd07.gz
|
|
|
|
| |
darcs-hash:20050303101420-891bb-6c23d70652146f074a392970443190966c909d10.gz
|
|
|
|
|
|
|
| |
Restructure the lightweight communication buffers.
Use lightweight communication buffers for interpolation as well.
darcs-hash:20050103200712-891bb-7e42816d3b8d667916084e3f32527c8f35327d7f.gz
|
|
|
|
|
|
| |
data::try_without_time_interpolation
darcs-hash:20050103135332-891bb-e92a19212dfbadde889fda0760232f5b7749aac3.gz
|
|
|
|
| |
darcs-hash:20050103135305-891bb-8813921b6e0e2988e9afd0be90c3d7ff092cee1e.gz
|
|
|
|
|
|
|
|
|
|
|
| |
Lightweight communication buffers use essentially only a vector<T>
instead of a data<T> 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.
darcs-hash:20050102173524-891bb-6a3999cbd63e367c8520c175c8078374d294eaa8.gz
|
|
|
|
| |
darcs-hash:20050101185718-891bb-143c84dacf00f458eed1b9c985900bbaf5e3b98b.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:20050101171429-891bb-130630de8631b8f9bbe494e135662ffb089ecca0.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove functions gdata::lives_on_this_processor() and
gdata::this_processor_is(proc). Introduce dist::rank() and
dist::size() instead.
Re-introduce assert statement in data::proc().
Move declaration and definition of assignment operator near the
constructor and destructor.
darcs-hash:20041230191026-891bb-90eeb1be4c04753c165e13e7c1e65f06847180ca.gz
|
|
|
|
| |
darcs-hash:20050101162121-891bb-ac9d070faecc19f91b4b57389d3507bfc6c6e5ee.gz
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Collect more timing statistics in the data class. Print these
statistics to stdout when the Cactus parameter print_timestats is set.
Create a timer class "timestat". This is a timer that can be started,
stopped, and it prints the total time as well as some statistics.
For memory allocation statistics, count the number of objects as well
as the number of bytes.
darcs-hash:20041230212136-891bb-c14edfa7d539ae9b135eee76afadaad51fd0b098.gz
|
|
|
|
|
|
|
|
| |
Add missing this-> prefixes
Declare template specialisation before definigg it
Rename some local variables to avoid name clashes
darcs-hash:20041228183523-891bb-acc5a1a8c1f247512a38dba56ff5419d96280fa3.gz
|
|
|
|
|
|
|
|
|
|
| |
Rename it to fill_bbox_array.
Declare it in a better place in the header file.
Make it not virtual.
Change pointer arguments to arrays.
Change hard-coded number 3 to D.
darcs-hash:20041225202612-891bb-e6249d004fdf0b3d8d24cbf8e5a4ae713786bdfb.gz
|
|
|
|
|
|
| |
abs() has arbitrary precision, fabs() is tied to double precision.
darcs-hash:20041225183953-891bb-2bb8eb14f2986c7aea9a7c1c8e3e018aab465ab5.gz
|
|
|
|
|
|
| |
That is, say e.g. <cmath> instead of <math.h>.
darcs-hash:20041225182902-891bb-2a4502d6a76ed830ab978030fc4e4765b183509f.gz
|
|
|
|
|
|
|
| |
This comment was split in half when this function was created, and does
not make sense without the other half, which was removed.
darcs-hash:20041225182719-891bb-dbf5bb49587ebf0d43df401a49a70bf1940378b9.gz
|