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:
- mainly written in Python and C++.
- a Python framework for users to resolve conservation-law problem.
SOLVCON project has not only the project SOLVCON, but also projects relate to the project SOLVCON. For example:
- devenv is the builder of SOLVCON toolchain.
- 1D Shock Tube Calculator is a educational tool and also a physics reference when implementing test cases and benchmark.
- modmesh is an experimental prototype of SOLVCON new core.
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:
- Study or problem-solving: are you coming for studying or looking for some interesting problem to resolve? By "studying" it means, for example, walking around to see how other projects implement a conservation-law framework.
- Engineering or science: are you coming for playing with more engineering tasks like programming, or more science exercises like math, physics, and equations?
If you already have answers for yourself, then check the following mapping. I will elaborate more details in the next section.
- Study and Engineering: Improve the toolchain e.g.
devenv
, CI, and test cases. - Problem-solving and Engineering: Core of SOLVCON, including Python wrapper and c++.
- Science and Study: Improve driving scripts of example. The other projects like
shocktube1dcalc
andnomesh
. - Science and Problem-solving: Create new driving scripts of simulation cases based on your interesting physic problem.
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.