Class FiniteDifference
java.lang.Object
org.episteme.core.mathematics.analysis.pde.FiniteDifference
Finite Difference Methods for solving Partial Differential Equations.
Discretizes PDEs on grid, approximates derivatives with differences. Handles: heat equation, wave equation, Poisson equation.
- Since:
- 1.0
- Author:
- Silvere Martin-Michiellot, Gemini AI (Google DeepMind)
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic Real[][]Solves 1D heat equation: ∂u/∂t = α ∂²u/∂x²static Real[][]poisson2D(Function<Real[], Real> source, int nx, int ny, Real lx, Real ly, int maxIter, Real tolerance) Solves 2D Poisson equation: ∇²u = f on rectangular domain.static Real[][]waveEquation1D(Function<Real, Real> initial, Function<Real, Real> initialVelocity, Real c, Real L, Real T, int nx, int nt) Solves 1D wave equation: ∂²u/∂t² = c² ∂²u/∂x²
-
Constructor Details
-
FiniteDifference
public FiniteDifference()
-
-
Method Details
-
heatEquation1D
public static Real[][] heatEquation1D(Function<Real, Real> initial, Real alpha, Real L, Real T, int nx, int nt) Solves 1D heat equation: ∂u/∂t = α ∂²u/∂x²Forward Euler (explicit) time stepping. Boundary conditions: u(0,t) = u(L,t) = 0
- Parameters:
initial- initial condition u(x,0)alpha- thermal diffusivityL- domain lengthT- final timenx- number of spatial pointsnt- number of time steps- Returns:
- solution u[time][space]
-
waveEquation1D
public static Real[][] waveEquation1D(Function<Real, Real> initial, Function<Real, Real> initialVelocity, Real c, Real L, Real T, int nx, int nt) Solves 1D wave equation: ∂²u/∂t² = c² ∂²u/∂x²Explicit central differences in space and time.
- Parameters:
initial- initial displacement u(x,0)initialVelocity- initial velocity ∂u/∂t(x,0)c- wave speedL- domain lengthT- final timenx- spatial pointsnt- time steps- Returns:
- solution u[time][space]
-
poisson2D
public static Real[][] poisson2D(Function<Real[], Real> source, int nx, int ny, Real lx, Real ly, int maxIter, Real tolerance) Solves 2D Poisson equation: ∇²u = f on rectangular domain.Uses Jacobi iteration (simple iterative solver). ∂²u/∂x² + ∂²u/∂y² = f
- Parameters:
source- source term f(x,y)nx- , ny grid points in x, ylx- , ly domain sizemaxIter- max iterationstolerance- convergence tolerance- Returns:
- solution u[x][y]
-