GithubHelp home page GithubHelp logo

zimoliao / flutas Goto Github PK

View Code? Open in Web Editor NEW

This project forked from multiphysics-flow-solvers/flutas

0.0 0.0 0.0 744 KB

FluTAS (Fluid Transport Accelerated Solver) is a modular, multiphysics code for multiphase fluid dynamics simulations

License: MIT License

Shell 0.39% Python 2.65% Fortran 96.43% MATLAB 0.20% Makefile 0.33%

flutas's Introduction

Synopsis

FluTAS (Fluid Transport Accelerated Solver) is an open-source code targeting multiphase fluid dynamics simulations. The key feature of FluTAS is the ability to efficiently run both on many-CPUs and many-GPUs in a single and unified framework. This framework is also designed to be modular so that it can be extended in a sustainable manner. So far, the code has been tested on several large-scale HPC clusters, both standard CPU-based and accelerated ones.

The overall effort was initiated within the research group of Prof. Luca Brandt at KTH in Stockholm (Sweden). The code structure and the Poisson solver are based on CaNS (https://github.com/CaNS-World/CaNS), and have been adapted to include the different modules developed by the various researchers and students at KTH Engineering Mechanics.

References for the original code structure and Poisson solver (CPU and GPU)

Reference for FluTAS and the acceleration of the multiphase code

Crialesi-Esposito, M., Scapin, N., Demou, A. D., Rosti, M. E., Costa, P., Spiga, F., & Brandt, L. (2022). FluTAS: A GPU-accelerated finite difference code for multiphase flows. Computer Physics Communications 284: 108602 (2023). doi.org/10.1016/j.cpc.2022.108602 [arXiv preprint]

We recommend new users to have a look at this document and to carefully read the section Compilation and usage.

News

  • not yet...to come!

Code structure

To target different flow configurations, FluTAS has multiple main__<APP>.f90, each of one corresponding to a different application <APP>. Currently, the following applications are available:

  • Single-phase solver, optionally with heat transfer, under main__single_phase.f90;
  • Multiphase flows, using the VoF MTHINC method to capture the interface, under main__two_phase_inc_isot.f90;
  • Multiphase flows with heat transfer, solving the energy equation (Boussinesq effects can be included in the liquid and gas phase), under main__two_phase_ht.f90.

In all the main__<APP>.f90, different modules and subroutines are called and employed, depending on the specific problem under study. Although some apps are already present, more can be created by following the available templates. See the directory apps for an overview of the existing applications.

Additional features are:

  • MPI parallelization in CPU
  • MPI+OpenACC+CUDA Fortran parallelization in GPU
  • FFTW guru interface used for computing multi-dimensional vectors of 1D transforms
  • The right type of transformation (Fourier, Cosine, Sine, etc) automatically determined from the input file
  • 2DECOMP&FFT routines used for performing global data transpositions and data I/O
  • Different physical configurations can be simulated just by selecting the appropriate application and adjusting the input files

Some examples of the flows that can be solved by FluTAS are:

  • periodic or spatially developing wall-bounded flows
  • tri-periodic domains, e.g., homogeneous isotropic turbulence
  • lid-driven cavity
  • Rayleigh–Bénard convection

The above configurations can be numerically reproduced both in single and multiphase flows, with or without heat transfer effects, in CPUs and in GPUs.

Compilation and usage

Before using FluTAS, it is necessary to fulfill the prerequisites listed in REQ. Once done, FluTAS can be compiled, run and the output can be visualized in Paraview. Details on how to perform all these tasks are provided as it follows:

  • For information about compilation and generic use, please refer to HOW_TO_USE
  • For information about the required input files, i.e., the files with extension .in, please refer to INFO_INPUT
  • For information about how to visualize the output, please refer to INFO_VISU

Notes

Please read the ACKNOWLEDGEMENTS and LICENSE files to have more information about the authors.

Collaborate on this project

We highly value any feedback to improve the code and further extend it. In case of problems and bugs, please open an issue to point out them and a pull request if you have a solution to fix them. Moreover, if you are interested in contributing to this effort, please get in contact with Luca Brandt.

flutas's People

Contributors

marcres avatar nscapin avatar p-costa avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.