This interface overloads the solve
interface from stdlib_linalg
for solving a system where is a Poisson2D
matrix.
It also enables to solve a linear system with multiple right-hand
sides.
x = solve(A, b)
A
: Matrix of type Poisson2D
. It is an intent(in)
argument.
b
: Rank-1 or rank-2 array defining the right-hand side(s).
It is an intent(in)
argument.
x
: Solution of the linear system. It has the same type and
shape as b
.
Note
It uses a fast Poisson solver leveraging the discrete sine
transform provided by fftpack
. Only homogeneous Dirichlet boundary
conditions are handled by default. If non-homogeneous Dirichlet
boundary conditions need to be used, they can be implemented by
modifiying the right-hand side vector. Neuman-type boundary
conditions are not supported at all.
Solve the linear system using a fast Poisson solver.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(Poisson2D), | intent(in) | :: | A |
Coefficient matrix. |
||
real(kind=dp), | intent(in) | :: | b(:,:) |
Right-hand side vectors. |
Solution vectors.
Solve the linear system using a fast Poisson solver.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(Poisson2D), | intent(in) | :: | A |
Coefficient matrix. |
||
real(kind=dp), | intent(in) | :: | b(:) |
Right-hand side vector. |
Solution vector.