Visible to Intel only — GUID: GUID-C79A67EC-E804-440B-8075-B7E86509A247
Visible to Intel only — GUID: GUID-C79A67EC-E804-440B-8075-B7E86509A247
?_commit_sph_p/?_commit_sph_np
Checks consistency and correctness of input data and initializes certain data structures required to solve the periodic/non-periodic Helmholtz problem on a sphere.
Syntax
void d_commit_sph_p(double* f, DFTI_DESCRIPTOR_HANDLE* handle_s, DFTI_DESCRIPTOR_HANDLE* handle_c, MKL_INT* ipar, double* dpar, MKL_INT* stat);
void s_commit_sph_p(float* f, DFTI_DESCRIPTOR_HANDLE* handle_s, DFTI_DESCRIPTOR_HANDLE* handle_c, MKL_INT* ipar, float* spar, MKL_INT* stat);
void d_commit_sph_np(double* f, DFTI_DESCRIPTOR_HANDLE* handle, MKL_INT* ipar, double* dpar, MKL_INT* stat);
void s_commit_sph_np(float* f, DFTI_DESCRIPTOR_HANDLE* handle, MKL_INT* ipar, float* spar, MKL_INT* stat);
Include Files
- mkl_poisson.f90
Input Parameters
f |
double* for d_commit_sph_p/d_commit_sph_np, float* for s_commit_sph_p/s_commit_sph_np. Contains the right-hand side of the problem packed in a single vector. The size of the vector is (np+1)*(nt+1) and value of the right-hand side in the mesh point (i, j) is stored in f[i+j*(np+1)] . Note that the array f may be altered by the routine. Save this vector to another memory location if you want to preserve it. |
ipar |
MKL_INT array of size 128. Contains integer data to be used by the Fast Helmholtz Solver on a sphere (for details, refer to ipar). |
dpar |
double array of size 5*np/2+nt+10. Contains double-precision data to be used by the Fast Helmholtz Solver on a sphere (for details, refer to dpar and spar). |
spar |
float array of size 5*np/2+nt+10. Contains single-precision data to be used by the Fast Helmholtz Solver on a sphere (for details, refer to dpar and spar). |
Output Parameters
f |
Contains the right-hand side of the problem, possibly altered on output. |
ipar |
Contains integer data to be used by the Fast Helmholtz Solver on a sphere. Modified on output as explained in ipar. |
dpar |
Contains double-precision data to be used by the Fast Helmholtz Solver on a sphere. Modified on output as explained in dpar and spar. |
spar |
Contains single-precision data to be used by the Fast Helmholtz Solver on a sphere. Modified on output as explained in dpar and spar. |
handle_s, handle_c, handle |
DFTI_DESCRIPTOR_HANDLE*. Data structures used by the Intel® oneAPI Math Kernel Library (oneMKL) FFT interface (for details, refer toFFT Functions). handle_s and handle_c are used only in ?_commit_sph_p and handle is used only in ?_commit_sph_np. |
stat |
MKL_INT*. Routine completion status, which is also written to ipar[0]. Continue to call other Poisson Solver routines only if the status is 0. |
Description
The ?_commit_sph_p/?_commit_sph_np routines check consistency and correctness of the parameters to be passed to the solver routines ?_sph_p/?_sph_np, respectively. They also initialize certain data structures. The routine ?_commit_sph_p initializes structures handle_s and handle_c, and ?_commit_sph_np initializes handle. The routines also initialize the 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_sph_p/?_commit_sph_np 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_sph_p/?_init_sph_np, you must call the ?_commit_sph_p/?_commit_sph_np routines. Values of np and nt are passed to each of the routines 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 the dpar, spar, or ipar array was altered by mistake. |
stat= -1000 |
The routine stopped because of an Intel® oneAPI Math Kernel Library (oneMKL) FFT or TT interface error. |
stat= -10000 |
The routine stopped because the initialization failed to complete or the parameter ipar[0] was altered by mistake. |
stat= -99999 |
The routine failed to complete the task because of a fatal error. |