Initializes basic data structures of the Fast 2D/3D Helmholtz Solver.
void d_init_Helmholtz_2D(double* ax, double* bx, double* ay, double* by, int* nx, int* ny, char* BCtype, double* q, int* ipar, double* dpar, int* stat);
void s_init_Helmholtz_2D(float* ax, float* bx, float* ay, float* by, int* nx, int* ny, char* BCtype, float* q, int* ipar, float* spar, int* stat);
void d_init_Helmholtz_3D(double* ax, double* bx, double* ay, double* by, double* az, double* bz, int* nx, int* ny, int* nz, char* BCtype, double* q, int* ipar, double* dpar, int* stat);
void s_init_Helmholtz_3D(float* ax, float* bx, float* ay, float* by, float* az, float* bz, int* nx, int* ny, int* nz, char* BCtype, float* q, int* ipar, float* spar, int* stat);
The Fortran interfaces are specified in the mkl_poisson.f90 include file and the C interfaces are specified in the mkl_poisson.h include file.
ax |
double* for d_init_Helmholtz_2D/d_init_Helmholtz_3D, float* for s_init_Helmholtz_2D/s_init_Helmholtz_3D. The coordinate of the leftmost boundary of the domain along x-axis. |
bx |
double* for d_init_Helmholtz_2D/d_init_Helmholtz_3D, float* for s_init_Helmholtz_2D/s_init_Helmholtz_3D. The coordinate of the rightmost boundary of the domain along x-axis. |
ay |
double* for d_init_Helmholtz_2D/d_init_Helmholtz_3D, float* for s_init_Helmholtz_2D/s_init_Helmholtz_3D. The coordinate of the leftmost boundary of the domain along y-axis. |
by |
double* for d_init_Helmholtz_2D/d_init_Helmholtz_3D, float* for s_init_Helmholtz_2D/s_init_Helmholtz_3D. The coordinate of the rightmost boundary of the domain along y-axis. |
az |
double* for d_init_Helmholtz_2D/d_init_Helmholtz_3D, float* for s_init_Helmholtz_2D/s_init_Helmholtz_3D. The coordinate of the leftmost boundary of the domain along z-axis. This parameter is needed only for the ?_init_Helmholtz_3D routine. |
bz |
double* for d_init_Helmholtz_2D/d_init_Helmholtz_3D, float* for s_init_Helmholtz_2D/s_init_Helmholtz_3D. The coordinate of the rightmost boundary of the domain along z-axis. This parameter is needed only for the ?_init_Helmholtz_3D routine. |
nx |
int*. The number of mesh intervals along x-axis. |
ny |
int*. The number of mesh intervals along y-axis. |
nz |
int*. The number of mesh intervals along z-axis. This parameter is needed only for the ?_init_Helmholtz_3D routine. |
BCtype |
char*. Contains the type of boundary conditions on each boundary. Must contain four characters for ?_init_Helmholtz_2D and six characters for ?_init_Helmholtz_3D. Each of the characters can be 'N' (Neumann boundary condition) or 'D' (Dirichlet boundary condition). Types of boundary conditions for the boundaries should be specified in the following order: bd_ax, bd_bx, bd_ay, bd_by, bd_az, bd_bz. Boundary condition types for the last two boundaries should be specified only in the 3D case. |
q |
double* for d_init_Helmholtz_2D/d_init_Helmholtz_3D, float* for s_init_Helmholtz_2D/s_init_Helmholtz_3D . The constant Helmholtz coefficient. Note that to solve Poisson or Laplace problem, you should set the value of q to 0. |
ipar |
int array of size 128. Contains integer data to be used by Fast Helmholtz Solver (for details, refer to Common Parameters). |
dpar |
double array of size 5*nx/2+7 in the 2D case or 5*(nx+ny)/2+9 in the 3D case. Contains double-precision data to be used by Fast Helmholtz Solver (for details, refer to Common Parameters). |
spar |
float array of size 5*nx/2+7 in the 2D case or 5*(nx+ny)/2+9 in the 3D case. Contains single-precision data to be used by Fast Helmholtz Solver (for details, refer to Common Parameters). |
stat |
int*. Routine completion status, which is also written to ipar[0]. The status should be 0 to proceed to other PL routines. |
The ?_init_Helmholtz_2D/?_init_Helmholtz_3D routines initialize basic data structures for Poisson Library computations of the appropriate precision. All routines invoked after a call to a ?_init_Helmholtz_2D/?_init_Helmholtz_3D routine use values of the ipar, dpar and spar array parameters returned by the routine. Detailed description of the array parameters can be found in Common Parameters.
Data structures initialized and created by 2D/3D flavors of the routine cannot be used by 3D/2D flavors of any PL routines, respectively.
You can skip calling this routine in your code. However, see Caveat on Parameter Modifications before doing so.
Copyright © 1994 - 2011, Intel Corporation. All rights reserved.