Class AlternatingDirectionImplicitMethod
java.lang.Object
dev.nm.analysis.differentialequation.pde.finitedifference.parabolic.dim2.AlternatingDirectionImplicitMethod
- All Implemented Interfaces:
PDESolver
Alternating direction implicit (ADI) method is an implicit method for obtaining numerical
approximations to the solution of a
HeatEquation2D
. The idea behind the ADI method
is to split the finite difference equations into two, one with the x-derivative taken implicitly
and the next with the y-derivative taken implicitly, that allows solving the symmetric and
tridiagonal systems of linear equations by using LU decomposition, at each step. Solutions are
computed on a three-dimensional grid (time and x- and y-coordinates).
This method is unconditionally stable and is a second-order method with a truncation error of
order \(O(\Delta t^2 + \Delta x^2 + \Delta y^2)\).
Since a linear system for each row/column at the same time step can be solved independently,
parallel computation by multi-core processor can be used for higher performance. By default, this
option is turned on.- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionAlternatingDirectionImplicitMethod
(double epsilon) Create an ADI method with the given precision parameter.AlternatingDirectionImplicitMethod
(double epsilon, boolean parallel) Create an ADI method with the given precision parameter, and choice for using multi-core parallel computation for higher performance. -
Method Summary
Modifier and TypeMethodDescriptionsolve
(HeatEquation2D pde, int m, int n, int p) Solve the given two-dimensional heat equation problem, with the given numbers of points along the three axes in the grid (time, x, and y).
-
Constructor Details
-
AlternatingDirectionImplicitMethod
public AlternatingDirectionImplicitMethod(double epsilon) Create an ADI method with the given precision parameter. By default, multi-core parallel computation is used for higher performance.- Parameters:
epsilon
- the precision parameter
-
AlternatingDirectionImplicitMethod
public AlternatingDirectionImplicitMethod(double epsilon, boolean parallel) Create an ADI method with the given precision parameter, and choice for using multi-core parallel computation for higher performance.- Parameters:
epsilon
- the precision parameterparallel
-true
to turn on parallel computation
-
-
Method Details
-
solve
Solve the given two-dimensional heat equation problem, with the given numbers of points along the three axes in the grid (time, x, and y).- Parameters:
pde
- the heat equation problemm
- the number of grid points along the time-axis (excluding the initial condition)n
- the number of grid points along the x-axis (excluding the boundary)p
- the number of grid points along the y-axis (excluding the boundary)- Returns:
- the solution grid
-