_commit_Helmholtz_2D/?_commit_Helmholtz_3D
_commit_Helmholtz_2D/?_commit_Helmholtz_3D
Checks consistency and correctness of input data and initializes certain data structures required to solve 2D/3D Helmholtz problem.
Syntax
void
d_commit_Helmholtz_2D
(
double
*
f
,
const
double
*
bd_ax
,
const
double
*
bd_bx
,
const
double
*
bd_ay
,
const
double
*
bd_by
,
DFTI_DESCRIPTOR_HANDLE
*
xhandle
,
MKL_INT
*
ipar
,
double
*
dpar
,
MKL_INT
*
stat
);
void
s_commit_Helmholtz_2D
(
float
*
f
,
const
float
*
bd_ax
,
const
float
*
bd_bx
,
const
float
*
bd_ay
,
const
float
*
bd_by
,
DFTI_DESCRIPTOR_HANDLE
*
xhandle
,
MKL_INT
*
ipar
,
float
*
spar
,
MKL_INT
*
stat
);
void
d_commit_Helmholtz_3D
(
double
*
f
,
const
double
*
bd_ax
,
const
double
*
bd_bx
,
const
double
*
bd_ay
,
const
double
*
bd_by
,
const
double
*
bd_az
,
const
double
*
bd_bz
,
DFTI_DESCRIPTOR_HANDLE
*
xhandle
,
DFTI_DESCRIPTOR_HANDLE
*
yhandle
,
MKL_INT
*
ipar
,
double
*
dpar
,
MKL_INT
*
stat
);
void
s_commit_Helmholtz_3D
(
float
*
f
,
const
float
*
bd_ax
,
const
float
*
bd_bx
,
const
float
*
bd_ay
,
const
float
*
bd_by
,
const
float
*
bd_az
,
const
float
*
bd_bz
,
DFTI_DESCRIPTOR_HANDLE
*
xhandle
,
DFTI_DESCRIPTOR_HANDLE
*
yhandle
,
MKL_INT
*
ipar
,
float
*
spar
,
MKL_INT
*
stat
);
Include Files
- mkl.h
Input Parameters
- f
- double*ford_commit_Helmholtz_2D/d_commit_Helmholtz_3D,float*fors_commit_Helmholtz_2D/s_commit_Helmholtz_3D.Contains the right-hand side of the problem packed in a single vector:
- 2D problem: The size of the vector for the is (nx+1)*(ny+1). The value of the right-hand side in the mesh point (i, j) is stored inf[i+j*(nx+1)] .
- 3D problem: The size of the vector for the is (nx+1)*(ny+1)*(nz+1). The value of the right-hand side in the mesh point (i, j, k) is stored inf[i+j*(nx+1)+k*(nx+1)*(ny+1)].
Note that to solve the Laplace problem, you should set all the elements of the arrayfto 0.Note also that the arrayfmay be altered by the routine. To preserve thefvector, save it to another memory location. - ipar
- MKL_INTarray of size 128. Contains integer data to be used by the Fast Helmholtz Solver (for details, refer toipar).
- dpar
- doublearray of size depending on the dimension of the problem:
- 2D problem: 5*/2+7
- 3D problem: 5*(nx+ny)/2+9
Contains double-precision data to be used by the Fast Helmholtz Solver (for details, refer todparandspar). - spar
- floatarray of size depending on the dimension of the problem:
- 2D problem: 5*/2+7
- 3D problem: 5*(nx+ny)/2+9
Contains single-precision data to be used by the Fast Helmholtz Solver (for details, refer todparandspar). - bd_ax
- double*ford_commit_Helmholtz_2D/d_commit_Helmholtz_3D,float*fors_commit_Helmholtz_2D/s_commit_Helmholtz_3D.Contains values of the boundary condition on the leftmost boundary of the domain along thex-axis (for more information, refer to a detailed description ofbd_ax).
- bd_bx
- double*ford_commit_Helmholtz_2D/d_commit_Helmholtz_3D,float*fors_commit_Helmholtz_2D/s_commit_Helmholtz_3D.Contains values of the boundary condition on the rightmost boundary of the domain along thex-axis (for more information, refer to a detailed description ofbd_bx).
- bd_ay
- double*ford_commit_Helmholtz_2D/d_commit_Helmholtz_3D,float*fors_commit_Helmholtz_2D/s_commit_Helmholtz_3D.Contains values of the boundary condition on the leftmost boundary of the domain along they-axis (for more information, refer to a detailed description ofbd_ay).
- bd_by
- double*ford_commit_Helmholtz_2D/d_commit_Helmholtz_3D,float*fors_commit_Helmholtz_2D/s_commit_Helmholtz_3D.Contains values of the boundary condition on the rightmost boundary of the domain along they-axis (for more information, refer to a detailed description ofbd_by).
- bd_az
- double*ford_commit_Helmholtz_3D,float*fors_commit_Helmholtz_3D.Used only by?_commit_Helmholtz_3D. Contains values of the boundary condition on the leftmost boundary of the domain along thez-axis (for more information, refer to a detailed description ofbd_az).
- bd_bz
- double*ford_commit_Helmholtz_3D,float*fors_commit_Helmholtz_3D.Used only by?_commit_Helmholtz_3D. Contains values of the boundary condition on the rightmost boundary of the domain along thez-axis (for more information, refer to a detailed description ofbd_bz).
Output Parameters
- f
- Contains right-hand side of the problem, possibly altered on output.
- ipar
- Contains integer data to be used by Fast Helmholtz Solver. Modified on output as explained inipar.
- dpar
- Contains double-precision data to be used by Fast Helmholtz Solver. Modified on output as explained indparandspar.
- spar
- Contains single-precision data to be used by Fast Helmholtz Solver. Modified on output as explained indparandspar.
- xhandle, yhandle
- DFTI_DESCRIPTOR_HANDLE*. Data structures used by theFFT interface (for details, refer toFFT Functions).Intel® oneAPI Math Kernel Libraryyhandleis used only by?_commit_Helmholtz_3D.
- stat
- MKL_INT*. Routine completion status, which is also written toipar[0]. Continue to call other Poisson Solver routines only if the status is 0.
Description
The
?_commit_Helmholtz_2D/?_commit_Helmholtz_3D
routines check the consistency and correctness of the parameters to be passed to the solver routines . They also initialize the xhandle
and yhandle
data structures, ipar
array, and dpar
or spar
array, depending upon the routine precision. Refer to Common Parameters to find out which particular array elements the ?_commit_Helmholtz_2D/?_commit_Helmholtz_3D
routines initialize and to what values these elements are initialized. The routines perform only a basic check for correctness and consistency. If you are going to modify parameters of Poisson Solver routines, see Caveat on Parameter Modifications. Unlike
?_init_Helmholtz_2D/?_init_Helmholtz_3D
, you must call the ?_commit_Helmholtz_2D/?_commit_Helmholtz_3D
routines in your code. Values of ax
, bx
, ay
, by
, az
, and bz
are passed to the routines with the spar/dpar
array, and values of nx
, ny
, nz
, and BCtype
are passed with the ipar
array. Return Values
- stat= 1
- The routine completed without errors but with warnings.
- stat= 0
- The routine successfully completed the task.
- stat= -100
- The routine stopped because an error in the input data was found, or the data in thedpar,spar, oripararray was altered by mistake.
- stat= -1000
- The routine stopped because of anFFT or TT interface error.Intel® oneAPI Math Kernel Library
- stat= -10000
- The routine stopped because the initialization failed to complete or the parameteripar[0] was altered by mistake.
- stat= -99999
- The routine failed to complete the task because of a fatal error.