Skip to content

wazedxwxx/IBTFO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

96 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Spack IBTFO

License License

IBTFO is discrete forcing Immersed Boundary method fast Test Facility based OpenAcc. It is designed for development and validation of immersed boundary methods. IBTFO uses Built-in Euler equation solver and shared memory computation based OpenACC. The vision of IBTFO is not to provide a robust and powerful solver, but to focus on the efficient and fast development and validation of advanced immersed boundary methods!

Note that IBTFO currently only supports Direct BC Imposition. Such methods include ghost fluid method (GFM) and cut cell method (CCM) and their extensions.

Installation

Even though it has simple built-in utilities as a fast test facility, IBTFO still relies on a few libraries.

  • GNU Make-determines which files need to be compiled
  • Nvidia HPC SDK-heterogeneous parallel computing Using OpenACC. Nvidia acquired The Portland Group, Inc, the "PGI Compilers and Tools" technology is a part of the Nvidia HPC SDK product available as a free download from Nvidia.
  • libpng-libpng is the official PNG reference library

We recommend using Spack to install and manage dependencies. It can easily install the required libraries and manage the version of each library. If you decide to use spack to manage dependencies, our recommended do:

spack install libpng@1.6.37 nvhpc@21.9

Getting Started

To build IBTFO and run a sample 2D SOD problem:

  1. Import related dependencies:
spack load libpng@1.6.37 nvhpc@21.9
  1. CLone the repository and enter the SOD test case
git clone git@github.com:wazedxwxx/IBTFO.git
cd IBTFO-main/Test/SOD/
  1. Complie
make
  1. Run
./REGULAR_SOD.EX sod.inp

NOTE

  • If ARCH=CPU in the compilation options, the number of cores can be selected by setting ACC_NUM_CORES
export ACC_NUM_CORES=8 

After importing the above environment variables, IBTFO will use 8 cores for calculation.

  • If ARCH=GPU in the compilation options, the number of GPU can be selected by setting CUDA_VISIBLE_DEVICES.
CUDA_VISIBLE_DEVICES="0" ./INCLINE_SOD.EX sod.inp 

This will only call GPU 0 for computation, otherwise all GPUs will be used.

Tutorial

The tutorial of IBTFO can be found here.

Contributing

If you want to contribute to the development of IBTFO, have a look at the contribution guidelines. We discourage the development of advanced advection schemes if not required for your immersed boundary method. We encourage the development and validation of your advanced immersed boundary methods. If your method is publicly published, we'd be happy to couple it into IBTFO. If you have any questions, you can discuss in the issue.

License

IBTFO (Copyright (c) 2020-2022) is an open-source package made available under the MIT License. All new contributions must be made underthe MIT license.

Credits

The code has been developed by Science and Technology on Scramjet Laboratory.