This repo starts from the heat conduction equation, and end up with SIMPLE algorithm step by step. Also there will be some detailed documents to describe the math process and coding structure in case the author may forget something.
The govern equation is:
The finite difference approximation for the 2D heat equation is:
The govern equation is:
This module provides essential utility functions for linear algebra operations, implemented in C for efficiency and compatibility. These utilities support the main Finite Volume Method (FVM) part of the project, which is in C++. This module includes:
- Sparse Matrix Storage: Implements the Compressed Row Storage (CRS) format for efficient handling of sparse matrices.
- Matrix-Vector Multiplication: Optimized functions for performing matrix-vector multiplication, suitable for
- both dense and sparse matrices.
- Linear System Solvers: Contains iterative solvers for linear systems, including Preconditioned Conjugate Gradient (PCG),
- Biconjugate Gradient Stabilized (BiCGSTAB), and Algebraic Multigrid (AMG) methods, designed to handle large, sparse matrices efficiently.
These utilities are optimized for performance and tailored to the matrix operations commonly encountered in FVM-based simulations.
This project serves as a comprehensive practice ground for numerical simulation, C++ coding, and parallel computing techniques. My goal is to incorporate detailed documentation, both within the code and in supplementary descriptions, to provide clarity and aid understanding for myself and others who may review this project.
Feedback and suggestions are warmly welcome! If you have any ideas or improvements, please don’t hesitate to reach out.