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:
- KitBase.jl: basic physics and numerics
- KitML.jl: neural dynamics and machine learning
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.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
For the detailed information on the implementation and usage of the package, check the documentation.
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.