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,doublearray of size 5*nx/2+7 in the 2D case or 5*(nx+ny)/2+9 in the 3D case; initialized in thed_init_Helmholtz_2D/d_init_Helmholtz_3Dandd_commit_Helmholtz_2D/d_commit_Helmholtz_3Droutines.
- For the spherical solver,doublearray of size 5*np/2+nt+10; initialized in thed_init_sph_p/d_init_sph_npandd_commit_sph_p/d_commit_sph_nproutines.
- spar
- Holds data needed for single-precision Fast Helmholtz Solver computations.
- For the Cartesian solver,floatarray of size 5*nx/2+7 in the 2D case or 5*(nx+ny)/2+9 in the 3D case; initialized in thes_init_Helmholtz_2D/s_init_Helmholtz_3Dands_commit_Helmholtz_2D/s_commit_Helmholtz_3Droutines.
- For the spherical solver,floatarray of size 5*np/2+nt+10; initialized in thes_init_sph_p/s_init_sph_npands_commit_sph_p/s_commit_sph_nproutines.
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
h x 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 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 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.