Developer Reference for Intel® oneAPI Math Kernel Library for C
?_init_sph_p/?_init_sph_np
Initializes basic data structures of the periodic and non-periodic Fast Helmholtz Solver on a sphere.
Syntax
void d_init_sph_p(const double* ap, const double* at, const double* bp, const double* bt,
const MKL_INT* np, const MKL_INT* nt, const double* q, MKL_INT* ipar,
double* dpar, MKL_INT* stat);
void s_init_sph_p(const float* ap, const float* at, const float* bp, const float* bt,
const MKL_INT* np, const MKL_INT* nt, const float* q, MKL_INT* ipar,
float* spar, MKL_INT* stat);
void d_init_sph_np(const double* ap, const double* at, const double* bp, const double* bt,
const MKL_INT* np, const MKL_INT* nt, const double* q, MKL_INT* ipar,
double* dpar, MKL_INT* stat);
void s_init_sph_np(const float* ap, const float* at, const float* bp, const float* bt,
const MKL_INT* np, const MKL_INT* nt, const float* q, MKL_INT* ipar,
float* spar, MKL_INT* stat);
Include Files
mkl.h
Input Parameters
Parameter Name |
Description |
|---|---|
ap |
double * for d_init_sph_p/d_init_sph_np, float * for s_init_sph_p/s_init_sph_np. The coordinate (angle) of the leftmost boundary of the domain along the \(\varphi\)-axis. |
bp |
double * for d_init_sph_p/d_init_sph_np, float * for s_init_sph_p/s_init_sph_np. The coordinate (angle) of the rightmost boundary of the domain along the \(\varphi\)-axis. |
at |
double * for d_init_sph_p/d_init_sph_np, float * for s_init_sph_p/s_init_sph_np. The coordinate (angle) of the leftmost boundary of the domain along the \(\theta\)-axis. |
bt |
double * for d_init_sph_p/d_init_sph_np, float * for s_init_sph_p/s_init_sph_np. The coordinate (angle) of the rightmost boundary of the domain along the \(\theta\)-axis. |
np |
MKL_INT *. The number of mesh intervals along the \(\varphi\)-axis. Must be even in the periodic case. |
nt |
MKL_INT *. The number of mesh intervals along the \(\theta\)-axis. |
q |
double * for d_init_sph_p/d_init_sph_np, float * for s_init_sph_p/s_init_sph_np. The constant Helmholtz coefficient. To solve the Poisson problem, set the value of q to 0. |
Output Parameters
Parameter Name |
Description |
|---|---|
ipar |
MKL_INT array of size 128. Contains integer data to be used by Fast Helmholtz Solver on a sphere (for details, refer to ipar). |
dpar |
double array of size \(\frac{5np}{2}+nt+10\). Contains double-precision data to be used by Fast Helmholtz Solver on a sphere (for details, refer to dpar and spar). |
spar |
float array of size \(\frac{5np}{2}+nt+10\). Contains single-precision data to be used by Fast Helmholtz Solver on a sphere (for details, refer to dpar and spar). |
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 ?_init_sph_p/?_init_sph_np routines initialize basic data structures for Poisson Solver computations. 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. A detailed description of the array parameters can be found in Common Parameters.
You can skip calls to these routines in your code. However, see Caveat on Parameter Modifications for information on initializing the data structures.
Return Values
Parameter Name |
Value |
Description |
|---|---|---|
stat |
0 |
The routine successfully completed the task. In general, to proceed with computations, the routine should complete with this stat value. |
stat |
-99999 |
The routine failed to complete the task because of fatal error. |