Skip to content

Commit

Permalink
Merge branch 'feature_block_implicit' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
mnucci32 committed Sep 17, 2016
2 parents a833088 + c660b06 commit a0df123
Show file tree
Hide file tree
Showing 45 changed files with 4,594 additions and 3,025 deletions.
24 changes: 12 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
OBJS = main.o plot3d.o input.o boundaryConditions.o eos.o primVars.o procBlock.o output.o matrix.o parallel.o slices.o turbulence.o gradients.o inviscidFlux.o viscousFlux.o source.o resid.o kdtree.o genArray.o fluxJacobian.o uncoupledScalar.o
OBJS = main.o plot3d.o input.o boundaryConditions.o eos.o primVars.o procBlock.o output.o matrix.o parallel.o slices.o turbulence.o inviscidFlux.o viscousFlux.o source.o resid.o kdtree.o genArray.o fluxJacobian.o uncoupledScalar.o utility.o
CC = mpic++
DEBUG = -ggdb -pg
DEBUG = -O0 -ggdb -pg
OPTIM = -O3 -march=native
PROF = -O3 -march=native -pg
CODENAME = aither
CFLAGS = -std=c++14 -Wall -c $(OPTIM)
LFLAGS = -std=c++14 -Wall $(OPTIM) -o $(CODENAME)
CFLAGS = -std=c++14 -Wall -pedantic -c $(OPTIM)
LFLAGS = -std=c++14 -Wall -pedantic $(OPTIM) -o $(CODENAME)

$(CODENAME) : $(OBJS)
$(CC) $(LFLAGS) $(OBJS)

plot3d.o : plot3d.cpp plot3d.hpp vector3d.hpp multiArray3d.hpp
$(CC) $(CFLAGS) plot3d.cpp

main.o : main.cpp plot3d.hpp vector3d.hpp input.hpp procBlock.hpp eos.hpp primVars.hpp boundaryConditions.hpp inviscidFlux.hpp tensor.hpp viscousFlux.hpp output.hpp parallel.hpp turbulence.hpp gradients.hpp resid.hpp multiArray3d.hpp genArray.hpp
main.o : main.cpp plot3d.hpp vector3d.hpp input.hpp procBlock.hpp eos.hpp primVars.hpp boundaryConditions.hpp inviscidFlux.hpp tensor.hpp viscousFlux.hpp output.hpp parallel.hpp turbulence.hpp resid.hpp multiArray3d.hpp genArray.hpp fluxJacobian.hpp utility.hpp
$(CC) $(CFLAGS) main.cpp

input.o : input.cpp input.hpp boundaryConditions.hpp
Expand All @@ -22,7 +22,7 @@ input.o : input.cpp input.hpp boundaryConditions.hpp
primVars.o : primVars.cpp primVars.hpp vector3d.hpp eos.hpp inviscidFlux.hpp boundaryConditions.hpp input.hpp macros.hpp genArray.hpp
$(CC) $(CFLAGS) primVars.cpp

procBlock.o : procBlock.cpp procBlock.hpp vector3d.hpp plot3d.hpp eos.hpp primVars.hpp inviscidFlux.hpp input.hpp genArray.hpp viscousFlux.hpp boundaryConditions.hpp macros.hpp turbulence.hpp kdtree.hpp uncoupledScalar.hpp fluxJacobian.hpp
procBlock.o : procBlock.cpp procBlock.hpp vector3d.hpp plot3d.hpp eos.hpp primVars.hpp inviscidFlux.hpp input.hpp genArray.hpp viscousFlux.hpp boundaryConditions.hpp macros.hpp turbulence.hpp kdtree.hpp uncoupledScalar.hpp fluxJacobian.hpp matrix.hpp utility.hpp
$(CC) $(CFLAGS) procBlock.cpp

inviscidFlux.o : inviscidFlux.cpp vector3d.hpp eos.hpp primVars.hpp inviscidFlux.hpp input.hpp macros.hpp genArray.hpp turbulence.hpp matrix.hpp
Expand Down Expand Up @@ -52,26 +52,26 @@ matrix.o : matrix.cpp matrix.hpp macros.hpp genArray.hpp
genArray.o : genArray.cpp genArray.hpp macros.hpp
$(CC) $(CFLAGS) genArray.cpp

turbulence.o : turbulence.cpp turbulence.hpp
turbulence.o : turbulence.cpp turbulence.hpp matrix.hpp vector3d.hpp tensor.hpp primVars.hpp eos.hpp
$(CC) $(CFLAGS) turbulence.cpp

source.o : source.cpp source.hpp macros.hpp turbulence.hpp primVars.hpp gradients.hpp
source.o : source.cpp source.hpp macros.hpp turbulence.hpp primVars.hpp matrix.hpp
$(CC) $(CFLAGS) source.cpp

gradients.o : gradients.cpp gradients.hpp primVars.hpp vector3d.hpp tensor.hpp procBlock.hpp
$(CC) $(CFLAGS) gradients.cpp

resid.o : resid.cpp resid.hpp
$(CC) $(CFLAGS) resid.cpp

kdtree.o : kdtree.cpp kdtree.hpp vector3d.hpp
$(CC) $(CFLAGS) kdtree.cpp

fluxJacobian.o : fluxJacobian.cpp fluxJacobian.hpp turbulence.hpp vector3d.hpp primVars.hpp eos.hpp input.hpp genArray.hpp matrix.hpp inviscidFlux.hpp uncoupledScalar.hpp
fluxJacobian.o : fluxJacobian.cpp fluxJacobian.hpp turbulence.hpp vector3d.hpp primVars.hpp eos.hpp input.hpp genArray.hpp matrix.hpp inviscidFlux.hpp uncoupledScalar.hpp tensor.hpp utility.hpp
$(CC) $(CFLAGS) fluxJacobian.cpp

uncoupledScalar.o : uncoupledScalar.cpp uncoupledScalar.hpp genArray.hpp
$(CC) $(CFLAGS) uncoupledScalar.cpp

utility.o : utility.cpp utility.hpp genArray.hpp vector3d.hpp multiArray3d.hpp procBlock.hpp eos.hpp input.hpp turbulence.hpp slices.hpp fluxJacobian.hpp kdtree.hpp resid.hpp
$(CC) $(CFLAGS) utility.cpp

clean:
rm *.o *~ $(CODENAME)
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,19 @@
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 primative 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. 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. It has been made parallel using MPI. Currently the Wilcox K-Omega 2006 and SST 2003 turbulence models are available.
The code is 2nd order accurate in space and time. 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, BLU-SGS, DPLUR, BDPLUR) 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. It has been made parallel using MPI. Currently the Wilcox K-Omega 2006 and SST 2003 turbulence models are available.

### To Do List
* Implement block LUSGS implicit method
* Add build system (autotools or cmake)
* Add a library for matrix operations (Eigen and PETSc being considered)
* Implement higher order state reconstruction for DES / Hybrid RANS/LES
* Implement tubulence model for DES / Hybrid RANS/LES

### Dependencies
Aither depends on an MPI implementation. OpenMPI and MPICH have both been used in the past. Currently Aither is developed with OpenMPI.

### How To compile
Assuming you have g++ (or equivalent) with c++14 support and some version of MPI (I use MPICH), just type 'make'.
Assuming you have a c++ compiler with c++14 support, just type 'make'.

### How To Run
```bash
Expand Down
Loading

0 comments on commit a0df123

Please sign in to comment.