Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CFD_Training_2

Programming exercises for different methods, which is based on the work of Suraj Pawar and Omer San in article "CFD Julia: A Learning Module Structuring an Introductory Course on Computational Fluid Dynamics".
The purpose of this repository is to give ideas for building a complete numerical simulation program. The purpose of this repository is to give ideas for building a complete numerical simulation program. Starting from the FDM, each example uses a different method to solve the corresponding partial differential equation. The source code is stored in the path CFD_Training_2/ CFD_FDM_2. The spectral method(high order method) in FEM was added later.
The methods used in each source file and the partial differential equations solved are given below:

  • FDM/ HLLC_Riemann_Solver.cpp
    • Solving the 1d Euler equation
    • Using WENO-5 Scheme to reconstruct the left and right side fluxes at the interface
    • Using Runge-Kutta-3 Scheme for time integration
    • Using HLLC scheme to approximate Riemann solver
  • FDM/ Roe_Riemann_Solver.cpp
    • Solving the 1d Euler equation
    • Using WENO-5 Scheme to reconstruct the left and right side fluxes at the interface
    • Using Runge-Kutta-3 Scheme for time integration
    • Using Reo approximate Riemann solver
  • FDM/ Rusanov_Riemann_Solver.cpp
    • Solving the 1d Euler equation
    • Using WENO-5 Scheme to reconstruct the left and right side fluxes at the interface
    • Using Runge-Kutta-3 Scheme for time integration
    • Using Rusanov scheme to approximate Riemann solver
  • FDM/ FFT.cpp
    • Using Fast Fourier Transform to slove Poisson equation for the periodic domain
    • Using additional library FFTW3
  • FDM/ FST.cpp
    • -Using Fast Sine Transform to slove Poisson equation for the periodic domain
  • FDM/ Gauss_seidel.cpp
    • Using Gauss-Seidel iterative methods to slove Poisson equation with Dirichlet boundary condition
    • Using the ratio of L2 to its initial value during the iteration as the criterion for convergence
  • FDM/ Conjugate_Gradient.cpp
    • Using Conjugate Gradient methods to slove Poisson equation with Dirichlet boundary condition
    • Using the ratio of L2 to its initial value during the iteration as the criterion for convergence
  • FDM/ Conjugate_Gradient.cpp
    • viscous incompressible flow
    • a square cavity consisting of three rigid walls with no-slip conditions and a lid moving with a tangential unit velocity
    • Using Runge-Kutta-3 Scheme for time integration
    • Using second-order Arakawa scheme for the nonlinear terms
  • HOM(SEM)/ HOM1D_Helmholtz_v2
    • Using Galerkin method to solve 1d-Helmholtz equation
    • Using Gauss–Lobatto–Legendre points to a
    • Using Conjugate gradient(CG) method oder Gauss-Seidel(GS) method to solve system of equations

###Note: You need to configure the Eigen library before using the code in this program.

About

Programming exercises for different FDM methods

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages