Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
This adds in wall functions
  • Loading branch information
mnucci32 committed May 1, 2017
2 parents b3f09cd + 3da4c44 commit f869fb6
Show file tree
Hide file tree
Showing 53 changed files with 5,597 additions and 2,786 deletions.
21 changes: 21 additions & 0 deletions .appveyor.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
version: 1.0.{build}
branches:
only:
- master
- develop
image: Visual Studio 2015
configuration: release
platform: x64
environment:
PYTHON: C:\Python35-x64
PATH: C:\Program Files\Project\bin;C:\Program Files\Microsoft MPI\Bin;%PATH%
build_script:
- ps: >-
powershell ci\appveyor\installMPI.ps1
powershell ci\appveyor\buildAither.ps1
test_script:
- cmd: >-
cd testCases
%PYTHON%\python.exe regressionTests.py --mpirunPath=mpiexec.exe --aitherPath=aither.exe
2 changes: 2 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
fixes:
- "/home/travis/build/mnucci32/aither::"
8 changes: 5 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
#Ignore temporary copy files
# Ignore temporary copy files
*~
\#*

#Ignore results files
# Ignore results files
*.fun
*.res
*.out
*_center.xyz
*.resid
*.p3d

#Ignore blog files
# Ignore blog files
.sass-cache/
_site/

# Ignore VS Code files
.vscode/
30 changes: 24 additions & 6 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ matrix:
env:
- CXX_COMPILER=g++-5
- C_COMPILER=gcc-5
- BUILD_TYPE=release
- os: linux
dist: trusty
sudo: required
Expand All @@ -35,10 +36,11 @@ matrix:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-6 gcc-6 libstdc++-6-dev
- g++-6 gcc-6 libstdc++-6-dev lcov
env:
- CXX_COMPILER=g++-6
- C_COMPILER=gcc-6
- BUILD_TYPE=debug
- os: linux
dist: trusty
sudo: required
Expand All @@ -53,6 +55,7 @@ matrix:
env:
- CXX_COMPILER=clang++-3.8
- C_COMPILER=clang-3.8
- BUILD_TYPE=release
- os: osx
osx_image: xcode8
compiler: gcc
Expand All @@ -61,6 +64,7 @@ matrix:
- C_COMPILER=gcc-6
- HOMEBREW_CC=gcc-6
- HOMEBREW_CXX=g++-6
- BUILD_TYPE=release
- os: osx
osx_image: xcode8
compiler: clang
Expand All @@ -69,6 +73,7 @@ matrix:
- C_COMPILER=clang
- HOMEBREW_CC=clang
- HOMEBREW_CXX=clang++
- BUILD_TYPE=release

# upgrade packages
before_install:
Expand All @@ -82,14 +87,27 @@ before_install:

# install mpi
install:
- bash travis/installMPI
- bash ci/travis/installMPI

# build instructions
script:
before_script:
- mkdir build
- cd build
- cmake -G "Unix Makefiles" -DCMAKE_CXX_COMPILER=$CXX_COMPILER -DCMAKE_C_COMPILER=$C_COMPILER -DMPI_DIR=$TRAVIS_BUILD_DIR/openmpi -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=install ..
- if [[ "$BUILD_TYPE" == "debug" ]]; then lcov --directory . --zerocounters; fi
- if [[ "$BUILD_TYPE" == "debug" ]]; then ln -s /usr/bin/gcov-6 gcov; fi
- if [[ "$BUILD_TYPE" == "debug" ]]; then export PATH=$PWD:$PATH; fi
- if [[ "$BUILD_TYPE" == "debug" ]]; then gcov --version; fi

# build instructions
script:
- cmake -G "Unix Makefiles" -DCMAKE_CXX_COMPILER=$CXX_COMPILER -DCMAKE_C_COMPILER=$C_COMPILER -DMPI_DIR=$TRAVIS_BUILD_DIR/openmpi -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_INSTALL_PREFIX=install ..
- make -j4
- make install
- cd ../testCases
- python3 regressionTests.py --aitherPath=$TRAVIS_BUILD_DIR/build/install/bin/aither --operatingSystem=$TRAVIS_OS_NAME --mpirunPath=$TRAVIS_BUILD_DIR/openmpi/bin/mpirun
- python3 regressionTests.py --aitherPath=$TRAVIS_BUILD_DIR/build/install/bin/aither --operatingSystem=$TRAVIS_OS_NAME --mpirunPath=$TRAVIS_BUILD_DIR/openmpi/bin/mpirun
- cd $TRAVIS_BUILD_DIR/build

after_success:
- if [[ "$BUILD_TYPE" == "debug" ]]; then lcov --directory . --capture --rc lcov_branch_coverage=1 --output-file coverage.info; fi
- if [[ "$BUILD_TYPE" == "debug" ]]; then lcov --remove coverage.info '/usr/*' '/Applications/*' '/Library/*' --rc lcov_branch_coverage=1 --output-file coverage.info; fi
- if [[ "$BUILD_TYPE" == "debug" ]]; then lcov --rc lcov_branch_coverage=1 --list coverage.info; fi
- if [[ "$BUILD_TYPE" == "debug" ]]; then bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"; fi
51 changes: 40 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,67 @@
# Accurate Implicit Three-dimensional Efficient RANS (AITHER)

[![Build Status](https://travis-ci.org/mnucci32/aither.svg?branch=master)](https://travis-ci.org/mnucci32/aither)
| Branch | Linux/macOS Build | Windows Build | Coverage |
|--- |--- |--- |--- |
| Master | [![Build Status](https://travis-ci.org/mnucci32/aither.svg?branch=master)](https://travis-ci.org/mnucci32/aither) | [![Build status](https://ci.appveyor.com/api/projects/status/o7fc231lp9jxlsib/branch/master?svg=true)](https://ci.appveyor.com/project/mnucci32/aither/branch/master) | [![Coverage Status](https://codecov.io/github/mnucci32/aither/coverage.svg?branch=master)](https://codecov.io/github/mnucci32/aither?branch=master) |
| Develop | [![Build Status](https://travis-ci.org/mnucci32/aither.svg?branch=develop)](https://travis-ci.org/mnucci32/aither) | [![Build status](https://ci.appveyor.com/api/projects/status/o7fc231lp9jxlsib/branch/develop?svg=true)](https://ci.appveyor.com/project/mnucci32/aither/branch/develop) | [![Coverage Status](https://codecov.io/github/mnucci32/aither/coverage.svg?branch=develop)](https://codecov.io/github/mnucci32/aither?branch=develop) |

### 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 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.
This code is for a 3D Navier-Stokes computational fluid dynamics solver. It is
a cell centered, structured solver, using multi-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 for 2nd order accuracy. Higher order reconstruction is acheived
with a 5th order WENO reconstruction for the inviscid fluxes, and a 4th order
central reconstruction for the viscous fluxes. 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, 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.
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. For RANS simulations the Wilcox K-Omega 2006 and SST 2003
turbulence models are available. Wall functions are supported for both models.
For detatched eddy simulations, the SST-DES turbulence model is available. For
large eddy simulations, the WALE subgrid scale model is available.

### To Do List
* Add SST-DES turbulence model
* Add WALE and Smagorinsky subgrid scale models for LES
* Add Couette flow regression test for isothermal wall, moving wall, periodic boundary conditions
* Add wall functions for turbulence models
* Add non-reflecting boundary conditions
* Add thermally perfect gases
* Add additional inviscid flux option (AUSM)
* Add multigrid scheme for improved convergence

### Dependencies
* MPI - OpenMPI and MPICH have both been used in the past. Aither is currently developed with OpenMPI
* MPI - OpenMPI, MPICH, & MS-MPI have been used
* C++ compiler with C++14 support
* Cmake - Cmake only depends on a C++ compiler

### How To compile
Aither is compiled and installed with the standard cmake process.

```bash
cmake -DCMAKE_INSTALL_PREFIX=/path/to/installation /path/to/source
cmake -DCMAKE_INSTALL_PREFIX=/path/to/installation -DCMAKE_BUILD_TYPE=release /path/to/source
make
make install
```

Cmake will automatically look for an MPI package. To specify a specific installation, set *-DMPI_DIR* to the MPI installation directory.
Cmake will automatically look for an MPI package. To specify a specific
installation, set *-DMPI_DIR* to the MPI installation directory. In addition
to *release*, other supported build types are *debug*, *profile*,
*relwithdebinfo*, and *minsizerel*.

### How To Run
```bash
mpirun -np 1 aither inputFile.inp <restartFile.rst> >outputFile.out 2>errorFile.err &
mpirun -np 1 aither inputFile.inp [restartFile.rst] > outputFile.out 2> errorFile.err &
```
The restart file argument is optional.

### Visualizing Results
Aither writes out Plot3D function files (\*.fun), as well as a Plot3D meta
files (\*.p3d) that can be visualized in [ParaView](www.paraview.org). Versions
5.3 and newer support reading the meta files.
15 changes: 15 additions & 0 deletions ci/appveyor/buildAither.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
function BuildAither() {
# Go to build directory and build
# Build Aither with cmake
md build
cd build
cmake -G "Visual Studio 14 2015 Win64" -DMPI_DIR="C:\Program Files (x86)\Microsoft SDKs\MPI" ..
cmake --build . --target INSTALL --config Release
cd ..
}

function main() {
BuildAither
}

main
19 changes: 19 additions & 0 deletions ci/appveyor/installMPI.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
function InstallMPI() {
md mpi
cd mpi
# install MPI SDK and Runtime
Write-Host "Installing Microsoft MPI SDK..."
appveyor DownloadFile http://download.microsoft.com/download/B/2/E/B2EB83FE-98C2-4156-834A-E1711E6884FB/msmpisdk.msi
Start-Process -FilePath msiexec.exe -ArgumentList "/quiet /qn /i msmpisdk.msi" -Wait
Write-Host "Microsoft MPI SDK installation complete"
Write-Host "Installing Microsoft MPI Runtime..."
appveyor DownloadFile http://download.microsoft.com/download/B/2/E/B2EB83FE-98C2-4156-834A-E1711E6884FB/MSMpiSetup.exe
Start-Process -FilePath MSMpiSetup.exe -ArgumentList -unattend -Wait
cd ..
}

function main() {
InstallMPI
}

main
File renamed without changes.
Loading

0 comments on commit f869fb6

Please sign in to comment.