Developer Reference

Contents

Sequence of Invoking Poisson Solver Routines

This description always shows the solution process for the Helmholtz problem, because Fast Poisson Solvers and Fast Laplace Solvers are special cases of Fast Helmholtz Solvers (see Poisson Solver Implementation).
The Poisson Solver interface enables you to compute a solution of the Helmholtz problem in four steps. Each step is performed by a dedicated routine. Table
"Poisson Solver Interface Routines"
lists the routines and briefly describes their purpose.
Most Poisson Solver routines have versions operating with single-precision and double-precision data. Names of such routines begin respectively with "
s
" and "
d
". The wildcard "
?
" stands for either of these symbols in routine names. The routines for the Cartesian coordinate system have 2D and 3D versions. Their names end respectively in "
2D
" and "
3D
". The routines for spherical coordinate system have periodic and non-periodic versions. Their names end respectively in "
p
" and "
np
".
Poisson Solver Interface Routines
Routine
Description
Initializes basic data structures for Fast Helmholtz Solver in the 2D/3D/periodic/non-periodic case, respectively.
Checks consistency and correctness of input data and initializes data structures for the solver, including those used by the
Intel® MKL
FFT interface .
Computes an approximate solution of the 2D/3D/periodic/non-periodic Helmholtz problem (see Poisson Solver Implementation) specified by the parameters.
Releases the memory used by the data structures needed for calling the
Intel® MKL
FFT interface .
1
Poisson Solver routines call the
Intel® MKL
FFT interface for better performance.
To find an approximate solution of Helmholtz problem only once, the
Intel® MKL
Poisson Solver interface routines are normally invoked in the order in which they are listed inTable
"Poisson Solver Interface Routines"
.
Though the order of invoking Poisson Solver routines may be changed, it is highly recommended to follow the above order of routine calls.
The diagram in Figure
"Typical Order of Invoking Poisson Solver Routines"
indicates the typical order in which Poisson Solver routines can be invoked in a general case.
Typical Order of Invoking Poisson Solver Routines
A general scheme of using Poisson Solver routines for double-precision computations in a 3D Cartesian case is shown below. You can change this scheme to a scheme for single-precision computations by changing the initial letter of the Poisson Solver routine names from "d" to "s". You can also change the scheme below from the 3D to 2D case by changing the ending of the Poisson Solver routine names.
... d_init_Helmholtz_3D(&ax, &bx, &ay, &by, &az, &bz, &nx, &ny, &nz, BCtype, ipar, dpar, &stat); /* change parameters in ipar and/or dpar if necessary. */ /* note that the result of the Fast Helmholtz Solver will be in f. If you want to keep the data that is stored in f, save it to another location before the function call below */ d_commit_Helmholtz_3D(f, bd_ax, bd_bx, bd_ay, bd_by, bd_az, bd_bz, &xhandle, &yhandle, ipar, dpar, &stat); d_Helmholtz_3D(f, bd_ax, bd_bx, bd_ay, bd_by, bd_az, bd_bz, &xhandle, &yhandle, ipar, dpar, &stat); free_Helmholtz_3D (&xhandle, &yhandle, ipar, &stat); /* here you may clean the memory used by f, dpar, ipar */ ...
A general scheme of using Poisson Solver routines for double-precision computations in a spherical periodic case is shown below. You can change this scheme to a scheme for single-precision computations by changing the initial letter of the Poisson Solver routine names from "d" to "s". You can also change the scheme below to a scheme for a non-periodic case by changing the ending of the Poisson Solver routine names from "p" to "np".
... d_init_sph_p(&ap,&bp,&at,&bt,&np,&nt,&q,ipar,dpar,&stat); /* change parameters in ipar and/or dpar if necessary. */ /* note that the result of the Fast Helmholtz Solver will be in f. If you want to keep the data that is stored in f, save it to another location before the function call below */ d_commit_sph_p(f,&handle_s,&handle_c,ipar,dpar,&stat); d_sph_p(f,&handle_s,&handle_c,ipar,dpar,&stat); free_sph_p(&handle_s,&handle_c,ipar,&stat); /* here you may clean the memory used by f, dpar, ipar */ ...
You can find examples of code that uses Poisson Solver routines to solve Helmholtz problem (in both Cartesian and spherical cases) in the
examples\pdepoissonc\source
folderin your
Intel® MKL
directory.

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