forked from mnucci32/aither
Repository for an in-progress 3D, block structured, explicit/implicit, Navier-Stokes solver.
License
Nasrollah/cfd3d
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
ABOUT THE CODE This code is for a 3D Navier-Stokes computational fluid dynamics solver. It is a cell centered, structured solver, using mulit-block structured grids in Plot3D format. It uses explicit and implicit time integration methods. It uses MUSCL extrapolation to reconstruct the conserved variables from the cell centers to the cell faces. The code uses the Roe flux difference splitting scheme for the inviscid fluxes, and a central scheme for the viscous fluxes. It is second order accurate in both space and time. CURRENT STATUS The code is 2nd order accurate in space and time using the explicit solver. Available explicit time integration methods are forward euler (1st order) and a minimum storage four stage Runge-Kutta method (2nd order). The implicit solver (LU-SGS) is implemented for implicit time integration. Dual time stepping is implemented for time accuracy in the implicit solver. Available implicit time integrations methods come from the Beam and Warming family of methods and are the implicit euler (1st order), Crank-Nicholson (2nd order), and BDF2 (2nd order) methods. The code has been thoroughly commented. Recently it has been made parallel. TO DO LIST - Add RANS terms with turbulence model. -Add wall distance calculation FILES AND CLASSES procBlock - A class to store the state vector (primatives), cell volume, face areas, time step, and residual for a plot3D processor block of cells. boundaryConditions - A class to store the data for the boundary conditions on each block. eos - A class to impliment the perfect gas equation of state and sutherland's law for viscosity. input - A class to read in the input file and store the necessary data. inviscidFlux - A class to store the inviscid flux vector for a cell. Contains functions to calculate the flux. main - The driver of the code. MAKEFILE - The makefile to compile the code matrix - A set of classes to store the matrix elements of the Jacobian matrix for the implicit solver. output - Functions to write out the solution in plot3D function file format. primVars - A class to store the primative variables at a cell center. vector3d - A templated class to store vectors in 3D space. viscousFlux - A class to store the viscous flux vector for a cell. Contains functions to calculate the flux. geomSlice - A class to store slices of procBlocks. Used for inter block and inter processor boundary conditions. parallel - functions to aid in the data exchange between processors. HOW TO COMPILE Assuming you have g++ (or equivalent) with c++11 support, just type 'make'. HOW TO RUN mpirun -n 1 main inputFile.inp >outputFile.out 2>errorFile.err
About
Repository for an in-progress 3D, block structured, explicit/implicit, Navier-Stokes solver.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C++ 99.7%
- Other 0.3%