Developer Reference

Contents

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.
spar
Holds data needed for single-precision Fast Helmholtz Solver computations.
Because
dpar
and
spar
have similar elements in each position, the elements are described together in 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 φ-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
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 θ-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
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 θ-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.
  • In the Cartesian case, this value is used only for the pure Neumann boundary conditions (
    BCtype
    ="NNNN" in the 2D case;
    BCtype
    ="NNNNNN" in the 3D case). This is a special case, because the right-hand side of the problem cannot be arbitrary if the coefficient
    q
    is zero. The Poisson Solver verifies that the classical solution exists (up to rounding errors) using this tolerance. In any case, the Poisson Solver computes the normal solution, that is, the solution that has the minimal Euclidean norm of residual. Nevertheless, the
    ?_Helmholtz_2D/?_Helmholtz_3D
    routine informs you that the solution may not exist in a classical sense (up to rounding errors).
  • In the spherical case, the value is used for the special case of a periodic problem on the entire sphere. This special case is similar to the Cartesian case with pure Neumann boundary conditions. Here the Poisson Solver computes the normal solution as well. The parameter is also used to detect whether the problem is periodic up to rounding errors.
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[13]
-1 through
ipar[14]
-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[15]
-1 through
ipar[16]
-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[17]
-1 through
ipar[18]
-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 for a Cartesian solver
  • along the φ-axis after a call to the
    ?_commit_sph_p/?_commit_sph_np
    routine for a spherical solver.
ipar[19]
-1 through
ipar[20]
-1
Take the values of the (staggered) sine/cosine in the mesh points:
  • along the
    y
    -axis after a call to the
    ?_commit_Helmholtz_3D
    routine for a Cartesian 3D solver
  • along the φ-axis after a call to the
    ?_commit_sph_p
    routine for a spherical periodic solver.
These elements are not used in the 2D Cartesian case and in the non-periodic spherical case.
ipar[23]
-1 through
ipar[24]
-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[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_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.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804