|
Neko 1.99.9
A portable framework for high-order spectral element flow simulations
|
Provides a coupled CPU implementation of the BiCGStab method.
Data Types | |
| type | bicgstab_cpld_t |
| Coupled right-preconditioned CPU BiCGStab method. More... | |
Functions/Subroutines | |
| subroutine | bicgstab_cpld_init (this, n, max_iter, m, rel_tol, abs_tol, monitor) |
| Initialise a coupled CPU BiCGStab solver. | |
| subroutine | bicgstab_cpld_free (this) |
| Free a coupled CPU BiCGStab solver. | |
| type(ksp_monitor_t) function | bicgstab_cpld_solve_scalar (this, ax, x, f, n, coef, bc_projector, gs_h, niter) |
| Reject a scalar solve with a coupled BiCGStab solver. | |
| type(ksp_monitor_t) function, dimension(3) | bicgstab_cpld_solve (this, ax, x, y, z, fx, fy, fz, n, coef, bc_projector, gs_h, niter) |
| Solve a three-component coupled system with the CPU BiCGStab method. | |
| subroutine | bicgstab_cpld_check_inner_product (inner_product, norm_a, norm_b, quantity) |
| Check an inner product for a coupled BiCGStab breakdown. | |
| real(kind=rp) function | bicgstab_cpld_sqrt (value, quantity) |
| Return the square root of a valid combined squared norm. | |
| subroutine | bicgstab_cpld_assemble (vector, n, coef, bc_projector, gs_h) |
| Assemble a coupled operator result and project its boundary data. | |
| subroutine | bicgstab_cpld_product (product, ax, ay, az, bx, by, bz, mult, n) |
| Compute a coupled weighted inner product in one global reduction. | |
| subroutine | bicgstab_cpld_product_and_norm (product, norm_squared, ax, ay, az, bx, by, bz, mult, n) |
| Compute a coupled inner product and squared norm in one reduction. | |
|
private |
| vector | Three-component operator result. |
| n | Number of degrees of freedom per component. |
| coef | Spectral element coefficients used for cyclic rotation. |
| bc_projector | Projector for vector Dirichlet boundary nodes. |
| gs_h | Gather-scatter handle used to assemble the vector. |
Definition at line 491 of file bicgstab_coupled.f90.

|
private |
| inner_product | Combined inner product of the two vectors. |
| norm_a | Combined norm of the first vector. |
| norm_b | Combined norm of the second vector. |
| quantity | Name of the algorithmic quantity for error reporting. |
Definition at line 444 of file bicgstab_coupled.f90.

|
private |
Definition at line 130 of file bicgstab_coupled.f90.
| subroutine bicgstab_cpld::bicgstab_cpld_init | ( | class(bicgstab_cpld_t), intent(inout), target | this, |
| integer, intent(in) | n, | ||
| integer, intent(in) | max_iter, | ||
| class(pc_t), intent(in), optional, target | m, | ||
| real(kind=rp), intent(in), optional | rel_tol, | ||
| real(kind=rp), intent(in), optional | abs_tol, | ||
| logical, intent(in), optional | monitor | ||
| ) |
| n | Number of degrees of freedom per component. |
| max_iter | Maximum number of iterations. |
| M | Optional preconditioner. An identity preconditioner is used if absent. |
| rel_tol | Optional relative convergence tolerance. |
| abs_tol | Optional absolute convergence tolerance. |
| monitor | Optional switch for logging the residual at each iteration. |
Definition at line 93 of file bicgstab_coupled.f90.
|
private |
| product | Combined weighted inner product. |
| ax | First component of the first vector. |
| ay | Second component of the first vector. |
| az | Third component of the first vector. |
| bx | First component of the second vector. |
| by | Second component of the second vector. |
| bz | Third component of the second vector. |
| mult | Spectral element multiplicity weights. |
| n | Number of degrees of freedom per component. |
Definition at line 518 of file bicgstab_coupled.f90.

|
private |
| product | Combined weighted inner product of a and b. |
| norm_squared | Combined weighted squared norm of b. |
| ax | First component of a. |
| ay | Second component of a. |
| az | Third component of a. |
| bx | First component of b. |
| by | Second component of b. |
| bz | Third component of b. |
| mult | Spectral element multiplicity weights. |
| n | Number of degrees of freedom per component. |
Definition at line 552 of file bicgstab_coupled.f90.

|
private |
The initial guesses are discarded. All inner products combine the three components, so the method advances one Krylov recurrence for the complete coupled system.
| Ax | Coupled linear operator. |
| x | Solution field for the first component. |
| y | Solution field for the second component. |
| z | Solution field for the third component. |
| fx | Right-hand side for the first component. |
| fy | Right-hand side for the second component. |
| fz | Right-hand side for the third component. |
| n | Number of degrees of freedom per component. |
| coef | Spectral element coefficients and multiplicity weights. |
| bc_projector | Projector for vector Dirichlet boundary nodes. |
| gs_h | Gather-scatter handle used to assemble operator results. |
| niter | Optional maximum number of iterations, overriding the configured value. |
Definition at line 191 of file bicgstab_coupled.f90.

|
private |
| Ax | Linear operator. |
| x | Solution field. |
| f | Right-hand side. |
| n | Number of degrees of freedom. |
| coef | Spectral element coefficients and multiplicity weights. |
| bc_projector | Projector for Dirichlet boundary nodes. |
| gs_h | Gather-scatter handle used to assemble the operator result. |
| niter | Optional maximum number of iterations. |
Definition at line 150 of file bicgstab_coupled.f90.
|
private |
| value | Combined weighted squared norm. |
| quantity | Name of the vector for error reporting. |
Definition at line 472 of file bicgstab_coupled.f90.
