Skip to content

andrei-punko/math-pde-solvers

Repository files navigation

Solvers of PDE (partial differential equations)

Java CI with Gradle

Migration to Java some part of C/C++ code from my math-library repository

Prerequisites

  • JDK 21

Gradle isn't required because of embedded Gradle presence in the project

Supported PD equation types

  • Parabolic equation (described heat/mass transfer):
    M(x,t,U)*dU_dt = dU( K(x,t,U)*dU_dx )_dx + V(x,t,U)*dU_dx + F(x,t,U) where U = U(x,t)
    Check ParabolicEquation for details

  • Hyperbolic equation (described oscillation processes):
    M(x,t,U)*d2U_dt2 + L(x,t,U)*dU_dt = dU( K(x,t,U)*dU_dx )_dx + V(x,t,U)*dU_dx + F(x,t,U) where U = U(x,t)
    Check HyperbolicEquation for details

Border conditions types

  • Border condition type 1 (definite mode): U(X,t)
  • Border condition type 2 (definite force): dU_dx(X,t)
  • Border condition type 3 (elastic fixing): dU_dx(X,t) = h*(U(X,t) - Theta(t))

Solver

The finite-difference method was used, in result we get tridiagonal system of linear equations and solve it with help of tridiagonal matrix algorithm (or Thomas algorithm) (or "метод прогонки" in Russian).

How to build

./gradlew clean build

Usage notes

Check solved problems in tests: