2D Finite-Volume Heat-Conduction Solver

A dependency-free Rust implementation of a two-dimensional steady heat-conduction problem using the cell-centered Finite Volume Method, fixed-temperature boundary conditions, and Gauss-Seidel iteration.

Temperature field generated by the Rust finite-volume solver
v1.0.0stable tagged release
80 × 80control volumes
1.0e-6 Kconvergence tolerance
Rust CIbuild, run, output checks

Problem setup

The current case models steady heat conduction through a 0.5 m × 0.5 m square plate. The west wall is fixed at 400 K, while the east, north, and south walls are fixed at 300 K. The temperature difference produces a two-dimensional field inside the plate.

Numerical method

Discretization

Cell-centered finite-volume formulation on a uniform Cartesian grid.

Boundary treatment

Prescribed wall temperatures introduced through finite-volume source terms.

Linear iteration

Gauss-Seidel updates continue until the maximum temperature change falls below the configured tolerance.

Automated software check

The GitHub Actions workflow installs stable Rust, checks the locked Cargo project, builds the release binary, runs the default heat-conduction case, and verifies that all expected result files were generated.

Reproducible outputs

What the project demonstrates

The solver exposes the full numerical workflow directly: coefficient assembly, boundary source terms, iterative updates, convergence checks, structured output, and visualization. It avoids external numerical or plotting libraries so the implementation remains compact and inspectable.

Scope and limitations

This baseline project is intentionally limited to steady conduction, constant material properties, a uniform grid, fixed-temperature boundaries, one Gauss-Seidel solver, and one demonstration case. Independent analytical or numerical validation was not part of the completed baseline, so the project should be treated as an implementation demonstration rather than a formally validated research result.