Developer Reference for Intel® oneAPI Math Kernel Library for C
A newer version of this document is available. Customers should click here to go to the newest version.
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 5*nx/2+7 in the 2D case or 5*(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 5*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 5*nx/2+7 in the 2D case or 5*(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 5*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 Table "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 hx 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 φ-axis right after a call to the ?_init_sph_p/?_init_sph_np routine or the mesh size hφ in the φ 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 hy 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 θ-axis right after a call to the ?_init_sph_p/?_init_sph_np routine or the mesh size hθ in the θ 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 hz 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 θ-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 φ-axis after a call to the ?_commit_sph_p/?_commit_sph_np routine. |
ipar[17]-1 through ipar[18]-1 |
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[19]-1 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] |
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. |
You may define the array size depending upon the type of the problem to solve.