Kinetic.jl

Universal modeling and simulation of fluid dynamics upon machine learning
Author vavrines
Popularity
39 Stars
Updated Last
2 Years Ago
Started In
February 2020

Kinetic.jl

Kinetic Logo

version

status GitHub commits since tagged version

Kinetic is a lightweight Julia toolbox for the study of computational fluid dynamics and scientific machine learning. Depending on the focus, the main module is divided into portable components:

The high-performance Fortran library is embedded in KitFort.jl. Although not the default option, it can be manually imported into the current ecosystem seamlessly when the ultimate executing efficiency is pursued. A Python wrapper kineticpy has been built as well to call the structs and methods remotely through pyjulia.

Kinetic KitBase KitML KitFort
CI CI CI CI
codecov codecov codecov codecov

Motivation

Kinetic.jl is interested in theoretical and numerical studies of many-particle systems of gases, photons, plasmas, neutrons, etc. It employs the finite volume method (FVM) to conduct 1-3 dimensional numerical simulations on CPUs and GPUs. Any advection-diffusion-type equation can be solved within the framework. Special attentions have been paid on Hilbert's sixth problem, i.e. to build the numerical passage between kinetic theory of gases, e.g. the Boltzmann equation

and continuum mechanics, e.g. the Euler and Navier-Stokes equations

A partial list of current supported models and equations include

  • linear Boltzmann equation
  • nonlinear Boltzmann equation
  • multi-component Boltzmann equations
  • Fokker-Planck-Landau equation
  • direct simulation Monte Carlo
  • advection-diffusion equation
  • Burgers equation
  • Euler equations
  • Navier-Stokes equations
  • Extended hydrodynamical equations from gas kinetic expansion
  • Magnetohydrodynamical equations
  • Maxwell's equations

Documentation

For the detailed information on the implementation and usage of the package, check the documentation.

Contributing

If you have further questions regarding Kinetic.jl or have got an idea on improving it, please feel free to get in touch. Open an issue or pull request if you'd like to work on a new feature or even if you're new to open-source and want to find a cool little project or issue to work on that fits your interests. We're more than happy to help along the way.

Used By Packages

No packages found.