Developer Reference for Intel® oneAPI Math Kernel Library for C
dpar and spar
Arrays dpar and spar are the same except in the data precision:
dpar holds data needed for double-precision Fast Helmholtz Solver computations.
For the Cartesian solver, double array of size \(\frac{5 \times nx}{2}+7\) in the 2D case or \(\frac{5 \times (nx+ny)}{2}+9\) in the 3D case; initialized in the d_init_Helmholtz_2D/d_init_Helmholtz_3D and d_commit_Helmholtz_2D/d_commit_Helmholtz_3D routines.
For the spherical solver, double array of size \(\frac{5 \times np}{2}+nt+10\); initialized in the d_init_sph_p/d_init_sph_np and d_commit_sph_p/d_commit_sph_np routines.
spar holds data needed for single-precision Fast Helmholtz Solver computations.
For the Cartesian solver, float array of size \(\frac{5 \times nx}{2}+7\) in the 2D case or \(\frac{5 \times (nx+ny)}{2}+9\) in the 3D case; initialized in the s_init_Helmholtz_2D/s_init_Helmholtz_3D and s_commit_Helmholtz_2D/s_commit_Helmholtz_3D routines.
For the spherical solver, float array of size \(\frac{5 \times np}{2}+nt+10\); initialized in the s_init_sph_p/s_init_sph_np and s_commit_sph_p/s_commit_sph_np routines.
Because dpar and spar have similar elements in each position, the elements are described together in the table Elements of the dpar and spar Arrays:
Elements of the dpar and spar Arrays
Index |
Description |
|---|---|
0 |
In the Cartesian case, contains the length of the interval along the x-axis right after a call to the ?_init_Helmholtz_2D/?_init_Helmholtz_3D routine or the mesh size \(h_x\) in the x direction (for details, see Poisson Solver Implementation) after a call to the ?_commit_Helmholtz_2D/?_commit_Helmholtz_3D routine. In the spherical case, contains the length of the interval along the \(\varphi\)-axis right after a call to the ?_init_sph_p/?_init_sph_np routine or the mesh size \(h_\varphi\) in the \(\varphi\) direction (for details, see Poisson Solver Implementation) after a call to the ?_commit_sph_p/?_commit_sph_np routine. |
1 |
In the Cartesian case, contains the length of the interval along the y-axis right after a call to the ?_init_Helmholtz_2D/?_init_Helmholtz_3D routine or the mesh size \(h_y\) in the y direction (for details, see Poisson Solver Implementation) after a call to the ?_commit_Helmholtz_2D/?_commit_Helmholtz_3D routine. In the spherical case, contains the length of the interval along the \(\theta\)-axis right after a call to the ?_init_sph_p/?_init_sph_np routine or the mesh size \(h_{\theta}\) in the \(\theta\) direction (for details, see Poisson Solver Implementation) after a call to the ?_commit_sph_p/?_commit_sph_np routine. |
2 |
In the Cartesian case, contains the length of the interval along the z-axis right after a call to the ?_init_Helmholtz_2D/?_init_Helmholtz_3D routine or the mesh size \(h_z\) in the z direction (for details, see Poisson Solver Implementation) after a call to the ?_commit_Helmholtz_2D/?_commit_Helmholtz_3D routine. In the Cartesian solver, this parameter is used only in the 3D case. In the spherical solver, contains the coordinate of the leftmost boundary along the \(\theta\)-axis after a call to the ?_init_sph_p/?_init_sph_np routine. |
3 |
Contains the value of the coefficient q after a call to the ?_init_Helmholtz_2D / ?_init_Helmholtz_3D / ?_init_sph_p / ?_init_sph_np routine. |
4 |
Contains the tolerance parameter after a call to the ?_init_Helmholtz_2D / ?_init_Helmholtz_3D / ?_init_sph_p / ?_init_sph_np routine.
The default value for this parameter is 1.0E-10 in case of double-precision computations or 1.0E-4 in case of single-precision computations. You can increase the value of the tolerance, for instance, to avoid the warnings that may appear. |
ipar[15]-1 through ipar[16]-1 |
In the Cartesian case, contain the spectrum of the one-dimensional (1D) problem along the x-axis after a call to the ?_commit_Helmholtz_2D/?_commit_Helmholtz_3D routine. In the spherical case, contains the spectrum of the 1D problem along the \(\varphi\)-axis after a call to the ?_commit_sph_p/?_commit_sph_np routine. |
ipar[17]-1 through ipar[18] |
In the Cartesian case, contain the spectrum of the 1D problem along the y-axis after a call to the ?_commit_Helmholtz_3D routine. These elements are used only in the 3D case. In the spherical case, contains the spherical weights after a call to the ?_commit_sph_p/?_commit_sph_np routine. |
ipar[18] through ipar[20]-1 |
Take the values of the (staggered) sine/cosine in the mesh points:
|
ipar[21]-1 through ipar[22]-1 |
Take the values of the (staggered) sine/cosine in the mesh points:
These elements are not used in the 2D Cartesian case and in the non-periodic spherical case. |
ipar[25]-1 through ipar[26]-1 |
Take the values of the (staggered) sine/cosine in the mesh points along the x-axis after a call to the ?_commit_Helmholtz_2D/?_commit_Helmholtz_3D routine. These elements are used only in the periodic Cartesian case. |
ipar[27]-1 through ipar[28]-1 |
Take the values of the (staggered) sine/cosine in the mesh points along the x-axis after a call to the ?_commit_Helmholtz_3D routine. These elements are used only in the periodic 3D Cartesian case. |