Giter VIP home page Giter VIP logo

xcompact3d's Introduction

About

I've been working in Computational Fluid Dynamics research for about ten years, applying and also developing tools that are often powered by High-Performance Computing (HPC). I bring with me the experience of solving complex problems employing computational tools, besides processing, visualizing, and communicating the data produced by these solutions.

My main interests are Software Development and related topics (Python and Fortran), High-performance computing, parallel computing, numerical methods, data science, data visualization, and technical writing.

Fschuch's GitHub stats

Highlights

  • Open-source contributions:

    • XCompact3d (Member of the development Team): A Fortran-MPI based, finite difference high-performance code for solving the incompressible Navier-Stokes equation and as many as you need scalar transport equations;
    • XCompact3d-toolbox (Core developer): A Python package with many tools for pre and postprocessing prepared for the high-order Navier-Stokes solver XCompact3d.
  • Reasearch results:

    • Plunging Criterion: This repository contains the source code and dataset from our work "Plunging condition for particle-laden flows over sloping bottoms: three-dimensional turbulence-resolving simulations" (Computers & Geosciences, 2021);
    • The Plunging Flow by 3D-LES: The Plunging of Hyperpycnal Plumes on Tilted Bed by Three-Dimensional Large-Eddy Simulations (EPTT, 2020).
  • Tutorials (all in Portuguese):

xcompact3d's People

Contributors

arahamz avatar etwll avatar fschuch avatar gdeskos avatar leormonteiro avatar nasos94 avatar pbartholomew08 avatar ricardofrantz avatar shykafer avatar slaizet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

xcompact3d's Issues

Not computing gravitational term

The gravitational term is not computed if ilmn .eq. False (transeq.f90):

    if (ilmn) then
      !! Gravity
      if ((Fr**2).gt.zero) then
        call momentum_gravity(dux1, duy1, duz1, rho1(:,:,:,1) - one, one / Fr**2)
      endif
      do is = 1, numscalar
        call momentum_gravity(dux1, duy1, duz1, phi1(:,:,:,is), ri(is))
      enddo
    endif

That is a bug for the proper simulation of gravity currents.

Wrong derivative routine (and Boundary Conditions) for scalar field

SUBROUTINE calc_divu_constraint (navier.f90) needs review:

  • CALL derxx (tc1, phi1(:,:,:,is), di1, sx, sfxp, ssxp, swxp, xsize(1), xsize(2), xsize(3), 1);
  • CALL deryy (td2, phi2(:,:,:,is), di2, sy, sfyp, ssyp, swyp, ysize(1), ysize(2), ysize(3), 1);
  • CALL derzz (tc3, phi3(:,:,:,is), di3, sz, sfzp, sszp, swzp, zsize(1), zsize(2), zsize(3), 1).

SUBROUTINE continuity_rhs_eq (transqe.f90) needs review:

  • call derz (ta3, rho3, di3, sz, ffzp, fszp, fwzp, zsize(1), zsize(2), zsize(3), 1);
  • call dery (ta2, rho2, di2, sy, ffyp, fsyp, fwyp, ppy, ysize(1), ysize(2), ysize(3), 1);
  • call derx (drho1(:,:,:,1), rho1(:,:,:,1), & di1, sx, ffxp, fsxp, fwxp, xsize(1), xsize(2), xsize(3), 1);
  • call derzz (ta3,rho3,di3,sz,sfzp,sszp,swzp,zsize(1),zsize(2),zsize(3),1);
  • call deryy (ta2,rho2,di2,sy,sfyp,ssyp,swyp,ysize(1),ysize(2),ysize(3),1);
  • call derxx (tb1,rho1,di1,sx,sfxp,ssxp,swxp,xsize(1),xsize(2),xsize(3),1).

Organize data output into different directories

The binary outputs were reorganized:

  • A format .bin was added to binary fields, in order to be more friendly with any applications based on filename patterns;
  • The files where arranged in folders according to their shape, i.e.:
    • ./data/3d_snapshots for 3d fields (nx, ny, nz);
    • ./data/xy_planes for planes (nx, ny);
    • ./data/xz_planes for planes (nx, nz);
    • ./data/yz_planes for planes (ny, nz).
  • The filenames enumeration changed, now files receive the number according to the current timestep. The previous continuous counting is still possible by setting filenamedigits = 1 at .i3d (default is 0), in addition, the number of digits can be easily chosen with ifilenameformat (default is '(I9.9)'),

All changes aim to make postprocessing easier for tools like the new xcompact3d_toolbox. Reading a bunch of files is possible with just a fill lines of Python code since the shape is inferred from the directory name and the time from filenames.

BC-Sandbox.f90 is not working with single precision

The problem was tracked to init_sandbox, more specifically, to call decomp_2d_read_one(...), I'm investigating how to solve it.

The recommendation, for now, is to use only double-precision, i.e., make sure -DDOUBLE_PREC is included as DEFS at the Makefile.

Restart is not working for Sandbox flow configuration

It happens because some variables are allocated and initialized at init_sandbox, and it is not called when restarting.

We should allocate and initialize boundary conditions and volume integration in another place.

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.