Class AlternatingDirectionImplicitMethod
- java.lang.Object
-
- dev.nm.analysis.differentialequation.pde.finitedifference.parabolic.dim2.AlternatingDirectionImplicitMethod
-
- All Implemented Interfaces:
PDESolver
public class AlternatingDirectionImplicitMethod extends Object implements PDESolver
Alternating direction implicit (ADI) method is an implicit method for obtaining numerical approximations to the solution of aHeatEquation2D
. 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.
-
-
Constructor Summary
Constructors Constructor Description AlternatingDirectionImplicitMethod(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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PDESolutionTimeSpaceGrid2D
solve(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 Detail
-
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 Detail
-
solve
public PDESolutionTimeSpaceGrid2D solve(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).- 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
-
-