SymPDE is a symbolic calculus library for partial differential equations and variational forms. It can be used to have similar capabilities as the fenics project, by extending and writing your own printing functions.
An example of use can be found in psydac or gelato.
We always recommend working in a Python virtual environment. To create a new one we recommend the venv package:
python3 -m venv <ENV-PATH>
where <ENV-PATH>
is the location to create the virtual environment.
(A new directory will be created at the required location.)
In order to activate the environment from a new terminal session just run the command
source <ENV-PATH>/bin/activate
Make sure that the preferred virtual environment is activated. Then simply run
pip3 install sympde
This will download the correct version of SymPDE from PyPI and install it in the virtual environment.
First, clone the repository with Git to download the source files, and change the current directory:
git clone https://github.com/pyccel/sympde.git cd sympde
To check out a specific branch/tag/commit named <TAG>
, just use git checkout <TAG>
.
Static mode
To install the source files in the virtual environment just run:
python3 -m pip install .
Further changes to the cloned directory are not reflected in the installed package. This is why we call it a static installation.
Editable mode
In order to make changes to the library, and see these changes when the package is imported, SymPDE should be installed in editable mode:
python3 -m pip install --editable .
Because many important features of SymPDE are only tested in Psydac, new PRs should also be tested against the test suite of Psydac.
This can be done by opening a PR in Psydac, where the only change consists of installing the corresponding branch of SymPDE.
To achieve this, one just needs to modify the line corresponding to sympde
in the pyproject.yaml
file.
For instance, to test a new SymPDE branch called my_feature
, one should write
# Our packages from PyPi
'sympde @ https://github.com/pyccel/sympde/archive/refs/heads/my_feature.zip',
Similarly, to test an unreleased version of SymPDE called v0.18.4-trunk
, one should write
# Our packages from PyPi
'sympde @ https://github.com/pyccel/sympde/archive/refs/tags/v0.18.4-trunk.zip',
Do not forget the comma at the end of the line, as this is an item in a list.
Also, pay attention to the words head
and tags
in the path: the former is used for Git branches, the latter is used for Git tags (which may or may not correspond to GitHub releases).