Integration of ScimBa and Feel++ to streamline data exchange and combine machine-learning workflows with high-performance finite-element PDE solving.
- Feel++ installed on your host (e.g.
apt install libfeelpp-all-dev
on Ubuntu). - Python 3.9+ (uv can download and manage Python for you).
- uv (a drop-in replacement for
pip
,virtualenv
, and more):# via pip pip install --user uv # or via the official install script curl -LsSf https://astral.sh/uv/install.sh | sh
- Git
-
Clone the repository
git clone https://github.com/feelpp/feelpp-scimba.git cd feelpp-scimba
-
Create a virtual environment (with access to system-wide Feel++ packages)
uv venv --system-site-packages .venv
-
Activate the environment
source .venv/bin/activate
-
Install the Python package and its dependencies
uv pip install -e .
-
Install all dependencies including for testing
uv pip install -e .[test]
-
Run tests
pytest
If you prefer containerization, you can build and run our Dockerfile:
# Build
docker build -t feelpp_scimba:latest .
# Run interactively
docker run --rm -it feelpp_scimba:latest
Inside the container you’ll have Feel++, ScimBa, and all Python dependencies ready to go.
import sys
import feelpp.core as fppc
import feelpp.toolboxes.core as tb
from feelpp.scimba.Poisson import Poisson
# Initialize Feel++
sys.argv = ["feelpp_app"]
env = feelpp.Environment(
sys.argv,
opts=tb.toolboxes_options("coefficient-form-pdes", "cfpdes"),
config=fppc.localRepository("feelpp_cfpde")
)
# Solve a 2D Poisson problem
P = Poisson(dim=2)
P(
h=0.05,
order=1,
name="u",
rhs="8*pi*pi*sin(2*pi*x)*sin(2*pi*y)",
diff="{1,0,0,1}",
g="0",
shape="Rectangle",
plot=1,
solver="feelpp",
u_exact="sin(2*pi*x)*sin(2*pi*y)",
grad_u_exact="{2*pi*cos(2*pi*x)*sin(2*pi*y),2*pi*sin(2*pi*x)*cos(2*pi*y)}"
)
This project is under active development. Contributions and feedback are very welcome!
- Christophe Prud’homme — christophe.prudhomme@cemosis.fr
- Rayen Tlili — rayen.tlili@etu.unistra.fr
- Repository — https://github.com/feelpp/feelpp-scimba