Added parallelization. Fixes
This commit is contained in:
parent
3d67b66ae0
commit
9ef2b008b0
3 changed files with 83 additions and 33 deletions
|
@ -11,6 +11,11 @@ try:
|
|||
double *delta_hat, size_t Nx, size_t Ny, size_t Nz,
|
||||
size_t *Ntriangles,
|
||||
double* B, double delta_k, size_t Nk ) ;
|
||||
void CosmoTool_compute_powerspectrum(
|
||||
double *delta_hat, size_t Nx, size_t Ny, size_t Nz,
|
||||
size_t *Ncounts,
|
||||
double* P, double delta_k, size_t Nk );
|
||||
|
||||
""");
|
||||
|
||||
_pathlib = os.path.dirname(os.path.abspath(__file__))
|
||||
|
@ -42,6 +47,7 @@ def bispectrum(delta, delta_k, Nk, fourier=True):
|
|||
if not fourier:
|
||||
delta = np.fft.rfftn(delta)
|
||||
N1,N2,N3 = delta.shape
|
||||
rN3 = (N3-1)*2
|
||||
delta_hat_buf = np.empty((N1*N2*N3*2),dtype=np.double)
|
||||
delta_hat_buf[::2] = delta.real.ravel()
|
||||
delta_hat_buf[1::2] = delta.imag.ravel()
|
||||
|
@ -54,16 +60,16 @@ def bispectrum(delta, delta_k, Nk, fourier=True):
|
|||
else:
|
||||
raise RuntimeError("Internal error, do not know how to map size_t")
|
||||
|
||||
B_buf = np.zeros((Nk*Nk*Nk*4), dtype=np.double)
|
||||
B_buf = np.zeros((Nk*Nk*Nk*2), dtype=np.double)
|
||||
|
||||
_lib.CosmoTool_compute_bispectrum( \
|
||||
_ffi.cast("double *", delta_hat_buf.ctypes.data), \
|
||||
N1, N2, N3, \
|
||||
N1, N2, rN3, \
|
||||
_ffi.cast("size_t *", triangle_buf.ctypes.data), \
|
||||
_ffi.cast("double *", B_buf.ctypes.data), \
|
||||
delta_k, \
|
||||
Nk)
|
||||
B_buf = B_buf.reshape((Nk,Nk,Nk,4))
|
||||
B_buf = B_buf.reshape((Nk,Nk,Nk,2))
|
||||
return triangle_buf, B_buf[...,0]+1j*B_buf[...,1]
|
||||
|
||||
def powerspectrum(delta, delta_k, Nk, fourier=True):
|
||||
|
@ -102,7 +108,7 @@ def powerspectrum(delta, delta_k, Nk, fourier=True):
|
|||
|
||||
B_buf = np.zeros((Nk,), dtype=np.double)
|
||||
|
||||
_lib.CosmoTool_compute_bispectrum( \
|
||||
_lib.CosmoTool_compute_powerspectrum( \
|
||||
_ffi.cast("double *", delta_hat_buf.ctypes.data), \
|
||||
N1, N2, N3, \
|
||||
_ffi.cast("size_t *", count_buf.ctypes.data), \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue