libst sprint 

Project site:
https://github.com/yungyuc/turgon
Issue tracker:
https://github.com/yungyuc/turgon/issues
Chatroom (gitter):
https://gitter.im/yyc-turgon/community
Areas of interests:
Conservation laws
Host:
Yung-Yu Chen @yungyuc
Room:
201

Introduction 

Numerical simulation of partial differential equations is a powerful tool for studying complex problems. The simulation is too specialized to use general software, and we have to pursue custom code that takes a lot of time to develop. libst is such a custom code, but it attempts to employ the modern tool chain that allows customization without impacting runtime performance. The kernel uses modern C++, and provides Python interface for easy scripting. We would like to keep both flexibility and performance.

Another goal is to handle complex geometry. It is required for industry application. The challenge is to avoid ad hoc code. At the moment, libst has only one-dimensional grid. Meshes in multi-dimensional space will follow by porting from its predecessor SOLVCON.

The target users will be both academic and industry. It is open-source for productivity and frictionless utilization. It uses mainstream practices for build system, version control, unit testing, continuous integration, and other engineering infrastructure.

Objective 

The sprint will focus more on the (software) engineering. We will try to improve the following aspects of the code:

  • Release process and scripts.
  • Enable GitHub Actions for continuous integration (Travis CI is already enabled).
  • Add build instructions.
  • Add documentation structure.
  • One-dimensional grid.
  • Element abstraction for the space-time conservation element and solution element (CESE) method.
  • Develop validating unit-tests cases for the two model problems:
    • Linear wave
    • Inviscid Burgers' equation
  • Make a prototype to allow writing solvers in Python.

We are not limited to the above topics. New ideas are welcome.

Requirements 

Equipment:
Laptop running Linux or MacOS (with wifi connectivity)
Software:
Git, Cmake, Python, Pybind11, py.test
Good to know:
Conservation laws