Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
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 \(\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 |
|---|---|
1 |
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. |
2 |
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. |
3 |
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. |
4 |
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. |
5 |
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(16) through ipar(17) |
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(18) through ipar(19) |
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) through ipar(21) |
Take the values of the (staggered) sine/cosine in the mesh points:
|
ipar(22) through ipar(23) |
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(26) through ipar(27) |
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(28) through ipar(29)-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. |