Skip to content

Commit

Permalink
Merge branch 'develop'
Browse files Browse the repository at this point in the history
Adding multi-species capability
Adding schmidt diffusion model
Bug fixes
  • Loading branch information
mnucci32 committed Feb 22, 2018
2 parents 67cee55 + c4a4478 commit fe4c379
Show file tree
Hide file tree
Showing 115 changed files with 13,416 additions and 7,636 deletions.
3 changes: 2 additions & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ platform: x64
environment:
PYTHON: C:\Python35-x64
PATH: C:\Program Files\Project\bin;C:\Program Files\Microsoft MPI\Bin;%PATH%
AITHER_FLUID_DATABASE: C:\Program Files\Project\fluidDatabase
build_script:
- ps: >-
powershell ci\appveyor\installMPI.ps1
Expand All @@ -18,4 +19,4 @@ test_script:
- cmd: >-
cd testCases
%PYTHON%\python.exe regressionTests.py --mpirunPath=mpiexec.exe --aitherPath=aither.exe
%PYTHON%\python.exe regressionTests.py --mpirunPath=mpiexec.exe --aitherPath=aither.exe --operatingSystem=windows
11 changes: 11 additions & 0 deletions .github/ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
## Issue Type (bug, feature request, other)


## Description of Issue


## Steps to Reproduce Issue


## System Details (OS, compiler, number of processors, etc)

8 changes: 8 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
## Fixes Issue #


## Description of Changes


## Suggested Reviewers
@mnucci32
24 changes: 22 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ matrix:
- CXX_COMPILER=g++-5
- C_COMPILER=gcc-5
- BUILD_TYPE=release
- AITHER_FLUID_DATABASE=$TRAVIS_BUILD_DIR/build/install/fluidDatabase
- os: linux
dist: trusty
sudo: required
Expand All @@ -41,6 +42,22 @@ matrix:
- CXX_COMPILER=g++-6
- C_COMPILER=gcc-6
- BUILD_TYPE=debug
- AITHER_FLUID_DATABASE=$TRAVIS_BUILD_DIR/build/install/fluidDatabase
- os: linux
dist: trusty
sudo: required
compiler: gcc
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7 gcc-7 libstdc++-7-dev
env:
- CXX_COMPILER=g++-7
- C_COMPILER=gcc-7
- BUILD_TYPE=release
- AITHER_FLUID_DATABASE=$TRAVIS_BUILD_DIR/build/install/fluidDatabase
- os: linux
dist: trusty
sudo: required
Expand All @@ -56,6 +73,7 @@ matrix:
- CXX_COMPILER=clang++-3.8
- C_COMPILER=clang-3.8
- BUILD_TYPE=release
- AITHER_FLUID_DATABASE=$TRAVIS_BUILD_DIR/build/install/fluidDatabase
- os: osx
osx_image: xcode8
compiler: gcc
Expand All @@ -65,6 +83,7 @@ matrix:
- HOMEBREW_CC=gcc-7
- HOMEBREW_CXX=g++-7
- BUILD_TYPE=release
- AITHER_FLUID_DATABASE=$TRAVIS_BUILD_DIR/build/install/fluidDatabase
- os: osx
osx_image: xcode8
compiler: clang
Expand All @@ -74,6 +93,7 @@ matrix:
- HOMEBREW_CC=clang
- HOMEBREW_CXX=clang++
- BUILD_TYPE=release
- AITHER_FLUID_DATABASE=$TRAVIS_BUILD_DIR/build/install/fluidDatabase

# upgrade packages
before_install:
Expand All @@ -100,10 +120,10 @@ before_script:
# 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 -j2
- make -j 4
- 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 --build $BUILD_TYPE
- cd $TRAVIS_BUILD_DIR/build

after_success:
Expand Down
46 changes: 46 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Contributor Covenant Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment include:

* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

* The use of sexualized language or imagery and unwelcome sexual attention or advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.

## Scope

This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at michael.nucci@gmail.com. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]

[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
40 changes: 40 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# How to Contribute
Thank you for contributing to aither! Check out the aither [blog](http://aithercfd.com) for more information. Aither
uses the git flow branching method. The **master** branch is a permanent branch containing stable code with releases
coming off of this branch. The default branch is the **develop** branch. This is a permanent branch containing the most
up-to-date code and is therefore not guaranteed to be working. Bug fixes and feature additions branch off of **develop** and
are merged back in when complete. Aither uses continuous integration services [TravisCI](https://travis-ci.org/mnucci32/aither)
and [Appveyor](https://ci.appveyor.com/project/mnucci32/aither/branch/develop) to test builds on Linux, macOS, and
Windows. The code is built on each platform and a suite of tests are run to ensure that the residuals have not
changed due to a commit. There are a few ways to get involved with this project including reporting or fixing a bug,
requesting or adding a feature, and adding documentation.

### Reporting a Bug
Bugs should be reported via [Github Issues](https://github.com/mnucci32/aither/issues).

### Fixing a Bug
A list of known bugs can be found on the [Issues](https://github.com/mnucci32/aither/issues) page. A fix can be submitted
by creating a new branch off of the **develop** branch with a descriptive name starting with **hotfix_**. When the bug has
been fixed and and all continuous integration tests are passing, a pull request can be submitted to merge the fix back into
**develop**.

### Requesting a Feature
New features should be requested via [Github Issues](https://github.com/mnucci32/aither/issues). Not all requests will be
accepted.

### Adding a Feature
A list of features to be added can be found on the [Issues](https://github.com/mnucci32/aither/issues) page. If you want
to add a feature not listed, first submit an issue requesting that it be added. New features should be implemented by
creating a branch off of **develop** with a descriptive name starting with **feature_**. When the feature has been fixed
and all continuous integreation tests are passing, a pull request can be submitted to merge the feature back into **develop**.
If it is a fairly significant addition, an additional test case should be added as well.

### Adding Documentation
Documentation can be added by editing the [Wiki](https://github.com/mnucci32/aither/wiki) page.

# Coding Style
* Aither conforms to the [Google Style Guide](https://google.github.io/styleguide/cppguide.html)
* Variable names should use camelCase starting with a lower case letter
* Function names should use CamelCase starting with an upper case letter
* Class member variables should be appended with a _
* Modern C++ features should be used when possible
77 changes: 0 additions & 77 deletions Makefile

This file was deleted.

26 changes: 17 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
| 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
### About The Code
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
extrapolation to reconstruct the primitive 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
Expand All @@ -28,31 +28,39 @@ are the implicit euler (1st order), Crank-Nicholson (2nd order), and BDF2
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.
large eddy simulations, the WALE subgrid scale model is available. A
Multi-species flow capability is in progress. Supported diffusion models will be
Schmidt number based diffusion.

### To Do List
* Add non-reflecting boundary conditions
* Add multigrid scheme for improved convergence
* Add multi-species flow capability
* Add reacting flow capability
* Performance improvements

### Dependencies
* 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
### How To Compile And Install
Aither is compiled and installed with the standard cmake process.

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

export AITHER_FLUID_DATABASE=/path/to/installation/fluidDatabase
```

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*.
installation, set **-DMPI_DIR** to the MPI installation directory. In addition
to **release**, other supported build types are **debug**, **profile**,
**relwithdebinfo**, and **minsizerel**.

The **AITHER_FLUID_DATABASE** environment variable should be set to the
**fluidDatabase** folder inside of the installation directory. This tells aither
where to look for fluid properties.

### How To Run
```bash
Expand Down
2 changes: 1 addition & 1 deletion ci/appveyor/buildAither.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ function BuildAither() {
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
cmake --build . --target INSTALL --config release
cd ..
}

Expand Down
13 changes: 13 additions & 0 deletions ci/appveyor/installMPI.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,24 @@ function InstallMPI() {
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
Write-Host "Microsoft MPI Runtime installation complete..."
cd ..
}

function InstallCmake() {
Write-Host "Installing CMake 3.4.0 ..." -ForegroundColor Cyan
$exePath = "$($env:USERPROFILE)\cmake-3.4.0-rc2-win32-x86.exe"
Write-Host "Downloading..."
(New-Object Net.WebClient).DownloadFile('https://cmake.org/files/v3.4/cmake-3.4.0-rc2-win32-x86.exe', $exePath)
Write-Host "Installing..."
cmd /c start /wait $exePath /S
cmake --version
Write-Host "CMake 3.4.0 installed" -ForegroundColor Green
}

function main() {
InstallMPI
InstallCmake
}

main
17 changes: 17 additions & 0 deletions fluidDatabase/Ar.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# general fluid properties
n: 1.5
molarMass: 39.948
vibrationalTemperature: []

# Sutherland's coefficients for transport properties
# ----- viscosity -----
# values obtained from least squares curve fit of data
# from [250.0 K - 1000.0 K]
sutherlandViscosityC1: 2.0343E-06
sutherlandViscosityS: 1.6053E+02

# ----- thermal conductivity -----
# values obtained from least squares curve fit of data
# from [250.0 K - 1000.0 K]
sutherlandConductivityC1: 1.5877E-03
sutherlandConductivityS: 1.6053E+02
Loading

0 comments on commit fe4c379

Please sign in to comment.