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 PDESolutionTimeSpaceGrid2Dsolve(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-trueto 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
-
-