EarlFan / MultiphaseSolverAMReX

An all-Mach, discretely conservative, geometric volume-of-fluid multiphase flow solver for liquid-gas flows

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

All-Mach multiphase flow solver in AMReX

This repository contains the code for an all-Mach multiphase flow solver for liquid-gas flows using a geometric volume-of-fluid method within the block-structured adaptive mesh refinement framework of AMReX. The code requires the installation of two libraries - AMReX and IRL, both of which are provided in this repository. Hence, this repository is self-contained, and no external packages need to be installed.

Simulations

Simulations are performed for water jet in supersonic air crossflow, water spray atomization with acoustic excitation, and collapse of water bubbles in supersonic air crossflow. The simulations below show the adaptively refined mesh and the boxes show the finest level of refienement which captures the interface regions. The simulations are also rendered in Blender which show the liquid-gas interface.

your_alternative_textyour_alternative_text

your_alternative_textyour_alternative_text

your_alternative_text

Scaling

Scaling studies were performed on the Stampede2 supercomupter at Texas Advanced Supercomputing Center (TACC) Knights Landing (KNL) nodes. Images below show the strong and weak scaling for single mesh cases, and the effect of adaptation and resource utilization.
your_alternative_textyour_alternative_text

your_alternative_textyour_alternative_text

Installation and compilation

git clone https://github.com/nataraj2/MultiphaseSolverAMReX.git
cd MultiphaseSolverAMReX
sh install.sh
vi amrex/Tools/GNUMake/Make.local

In the first 5 lines of Make.local, change the path to IRLDIR, and the compilers CXX, CC, FC, F90. Make sure to use MPI compilers.

Running

The following is to run the case of Zalesak's disk.

cd amrex/Tutorials/Amr/MultiphaseSolver_Zalesak_Elvira/Exec/Zalesak_Elvira
make -j
sh run_3d.sh

Input file description

  1. geometry.prob_lo and geometry.prob_hi define the domain
  2. amr.max_level is the number of refinement levels above the base level. It is set to 2. Hence there will be a total of 3 levels (including base level).
  3. amr.regrid_int is the frequency of regridding. Has to be 1. Regridding has to be done at every step since we do not allow for the interface to cut across levels. The interface should always be enclosed by the finest level.
  4. amr.plot_int and amr.chk_int are the frequencies at which the output and checkpoint (restart) files are written.
  5. amr.blocking_factor is the blocking factor. Defines the size of the blocks.

Visualization

VisIt 2.13 is the minimum version needed for visualization. The earlier versions of VisIt cannot read the AMReX output files. In the running directory, do

sh run_output.sh

This script will create a text file movie.visit (which contains a list of headers of the solution files - which has all the flow variables). This also creates a directory ensight-3D, in which all plic data is written. A file plic.visit is also written inside ensight-3D. Both movie.visit and plic.visit can be loaded simultaneously into VisIt and visualized. The steps are as follows

  1. sh run_output.sh
  2. File-> Open file -> movie.visit
  3. File-> Open file -> enisght-3D/plic.visit
  4. Active source -> movie.visit. Add->Mesh->mesh
  5. Active source -> plic.visit. Add->Mesh->mesh
  6. VisIt will ask if a correlation should be setup. Click Yes. This will allow the plic and the mesh to change simultaneously
  7. Active time slider -> Correlation01
  8. Click Draw
  9. Click the right arrow button below the Active time slider to animate

About

An all-Mach, discretely conservative, geometric volume-of-fluid multiphase flow solver for liquid-gas flows


Languages

Language:C++ 55.4%Language:Fortran 21.7%Language:Python 16.0%Language:C 2.4%Language:CMake 1.4%Language:Roff 1.0%Language:Mathematica 0.6%Language:Makefile 0.5%Language:Cuda 0.3%Language:Perl 0.3%Language:Shell 0.2%Language:MATLAB 0.2%Language:CSS 0.1%Language:TeX 0.1%Language:HTML 0.0%Language:Yacc 0.0%Language:JavaScript 0.0%Language:Lex 0.0%Language:Jupyter Notebook 0.0%Language:Modula-3 0.0%Language:Haskell 0.0%Language:RPC 0.0%