Skip to content

This is Basilisk Documentation written by Haochen Huang for beginners and advanced users.

Notifications You must be signed in to change notification settings

Langford-H/Basilisk-Documentation

Repository files navigation

Basilisk Documentation

This is a Documentation for PDE solver Basilisk written by Haochen Huang, a master candidate in XJTU.

The doc is written for those who are interested in how things work inside Basilisk and want to alter the solver.




For Real What is Basilisk?

Technically, Basilisk consists of two parts.

Unlike most open-source solvers, which usually consist of a collection of header files designed for specific types of PDEs in Fortran, C, or C++, Basilisk features a Domain Specific Language (DSL) called BasiliskC. For users familiar with Basilisk simulations, the installation process involves generating qcc, a transpiler (or preprocessor) provided by Basilisk that translates BasiliskC into standard C99 for compilation with gcc. This design ensures the versatility of Basilisk: as long as your machine has gcc, you can run Basilisk seamlessly. Additionally, a key component of Basilisk is its mesh management, which is deeply integrated with qcc. This allows for efficient iteration over multigrid and tree grid structures, freeing solver developers from tedious tasks like manual memory allocation and MPI compatibility, so they can focus on high-level solver development.

Based on our previous discussions, coherent documentation for Basilisk should include two main components. The first part consists of the header files, including the PDE solver (such as centered.h and poisson.h), which represent the physical core of the overall solver. The second part encompasses the low-level components (the preprocessor and mesh configuration), which embody the spirit of Basilisk.

Plan

Header File

Incompressible solver

  • [] centered solver

  • [] VOF multiphase solver

    • [] two-phase-levelset.h
      • [] redistance.h
    • [] two-phase-clsvof.h
      • [] tracer.h
    • [] two-phase.h
      • [] two-phase-generic.h
      • vof.h
        • [] fractions.h
        • [] geometry.h
    • [] iforce.h
  • [] solid embed boundary

    • [] embed.h and everything associated in other headfile
    • [] embed-tree.h



Compressible solver

  • [] compressible

Grid

  • [] grid/tree.h
  • [] grid/tree-common.h
  • [] grid/mempool.h
  • [] grid/memindex/range.h

Compiler

  • [] ast

Contact

My sandbox and feel free to email me: [email protected]

About

This is Basilisk Documentation written by Haochen Huang for beginners and advanced users.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages