| Commit message (Collapse) | Author | Age |
|
|
|
| |
parallelizing via gdata.cc
|
|
|
|
| |
When this parameters is set, then (some) prolongation/restriction operators are parallelized via LoopControl instead of in dh.cc.
|
|
|
|
|
| |
Rewrite padding infrastructure.
Add padded array extents to transport operator APIs.
|
|
|
|
|
|
|
| |
Extend API of grid operators and of gdata::copy_from,
gdata::transfer_from to allow hyperslabbing
Implement hyperslabbing in copy_3d.cc
|
|
|
|
|
|
| |
Introduce a function gdata::allocated_memory_shape that determines from a given grid size how many grid points should be allocated. This allows adding padding to grid sizes, e.g. to improve cache performance.
Use this function when checking grid sizes.
|
| |
|
|
|
|
|
|
| |
single mechanism provided by CarpetLib.
Use this mechanism everywhere.
|
|
|
|
|
|
| |
Use int instead of ptrdiff_t in index calculations in restrict_3d_rf2
to avoid conversions on 64 bit machines, and to unify this with other
operators.
|
|
|
|
|
|
|
|
|
|
|
| |
Ensure that there is exactly one OpenMP parallelisation for each
operator.
Improve the prolongation operator parallellisation method by splitting
along the direction of longest extent, not always in the z direction.
Use LoopControl for copy, restriction, and time interpolation
operators instead of explicit OpenMP directives.
|
|
|
|
| |
Ignore-this: 309b4dd613f4af2b84aa5d6743fdb6b3
|
|
|
|
|
|
|
| |
Use #pragma instead of _Pragma for OpenMP directives. The PGI compilers do
not understand the _Pragma syntax.
Use int instead of ptrdiff_t for loop variables which are parallelised via
OpenMP. The PGI compilers cannot handle ptrdiff_t.
|
|
|
|
| |
darcs-hash:20080114151201-dae7b-bc92cc1504e42ffd037e140dc085dd7e65f657e4.gz
|
|
|
|
|
|
|
|
|
|
|
| |
Add #pragma omp statements for loops in reduction and prolongation
operators. Change loop control variables to signed types.
Add functions to determine the number of active threads.
Add a parameter to set the number of threads if desired.
darcs-hash:20070821185237-dae7b-56827b72a69b5fa1b3d1316379a0f155696b4cb2.gz
|
|
|
|
|
|
|
| |
Use #include "instantiate" to instantiate the transport operators.
This allows e.g. switching off support for complex numbers.
darcs-hash:20070214172513-dae7b-aef2b83617158679c80ac350c2837f519928ddda.gz
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove unused, #ifdef'ed out code from the operators. Since the
operators use now the bbox class, this checking is already performed
there.
Remove unused debugging code in the cell-centered operators.
Use the restrict qualifier in the prototypes.
darcs-hash:20070204174027-dae7b-743583b30d52646219411c98ad99486d10445e52.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
|