How to Participate SOLVCON Development

What is SOLVCON?

SOLVCON is a collection of conservation-law solvers that use the space-time Conservation Element and Solution Element (CESE) method. It is also:

SOLVCON project has not only the project SOLVCON, but also projects relate to the project SOLVCON. For example:

How-To: Get Yourself Ready to Develop SOLVCON

You may use devenv to build everything SOLVCON needs. Invoke commands simply:

git clone https://github.com/solvcon/devenv ~/devenv
source ~/devenv/scripts/init
devenv add prime
devenv use prime
devenv launch solvcon

You may use the same tool devenv to get yourself ready for the other sub projects of SOLVCON.

Figure Out What You Can Do in a One-Day Development Sprint With 2 Questions

If there is only one-day for you to involve this project from scratch, and you don't have any idea regarding any specific topic or task to do yet, here are some questions to help you guide yourself to pick up a right task or problem for you:

If you already have answers for yourself, then check the following mapping. I will elaborate more details in the next section.

Improve Toolchain devenv, CI and Test Cases

devenv is our main toolchain. See its pending issues. Feel free to pick up any issues you are interested.

Both CI of devenv and SOLVCON turnaround time is long as well. It will be great if we can reduce the iteration time. CI platform of devenv and CI platform of SOLVCON are both Github Action.

SOLVCON has been migrated to Python 3.8 in 2021. A big and unresolved blocker of the 3.8 migration is the numpy compatibility issue. We are currently using a workaround for it by pinning the specific numpy version. It will be great if devenv could build each package with both the latest codebase and a specific version working properly with SOLVCON. For example, implement more test cases like Package Built by devenv.

Core of Solvcon, Including Python Wrapper and C++

pybind11 is what SOLVCON uses for its computational core. Play with pybind11 if you are interested in the development of the core. You may want to play the corresponding Python wrapper of the core.

Improve Driving Scripts

Here are examples of SOLVCON. There are some sandbox examples need to be developed and verified. 3D shock tube is a good start. It has been developed but not fully verified yet. See this issue for more details.

Create New Driving Scripts of Simulation Cases

If you already know how to use the driving script like 3D shock tube, you may want to create new driving scripts if you know more physic and conservation-law problems that are not included in our examples and [sandbox examples]((https://github.com/solvcon/solvcon/blob/master/sandbox/).

Keep In Touch!

If you are interested in further discussion and implementation, you are more than welcome to join the sciwork community.