- Install docker and pull the svMultiphyiscs image from
docker pull simvascular/solver:latestMake two directories, one for svMultiPhysics(svfsi), one for svFSGe:
mkdir svFSGe && mkdir svMultiPhysicsStart a new svMultiphysics container by:
docker run -it --user $(id -u):$(id -g) \
-v ./svMultiPhysics:/svfsi \
-v ./svFSGe:/svFSGe \
simvascular/solver:latest /bin/bash- Inside the container, install
svFSIplusfrom this branch, to build svfsi, you need to run(inside docker, command line begins with #):
cd /svfsi
git init
git remote add origin https://github.com/Eleven7825/svMultiPhysics.git
git fetch origin FSGe
git checkout -b FSGe origin/FSGeAt the /svfsi directory, build it with
bash makeCommand.sh- Install required Python packages (inside the container):
# Option 1: Install from requirements.txt (recommended)
pip install -r /svFSGe/requirements.txt
# Option 2: Install individually
pip install numpy vtk matplotlib scipy xmltodict distro-
Still inside the container, you need to adapt paths in
/svFSGe/in_sim/partitioned_full.jsonto make sure they are correct -
Run the simulation:
cd /svFSGe
python3 ./fsg.py in_sim/partitioned_full.jsonFor convenience, use the provided setup script to automate Docker environment setup:
# From the svFSGe directory
./scripts/setup_docker.shThis script will:
- Create necessary directories
- Start Docker container with proper mounts
- Clone and build svFSIplus
- Install Python dependencies
- Provide an interactive shell ready to run simulations
GitHub Actions automatically tests FSGe on every pull request and branch push:
- Test configuration:
in_sim/partitioned_test.json(nmax=2 for faster testing) - Workflow:
.github/workflows/test-fsg.yml - Comparison: Validates convergence metrics against reference baseline
See test_reference/nmax_2/README.md for details on reference data.
cylinder.pygenerates structured FSI hex-meshes with configuration files inin_geofsg.pyruns partitioned FSGe coupling using svFSIplus within_simFSGe configuration filesin_svfsi_plussvFSIplus input filesin_petscPETSc linear solver settings
post.pygenerate line plots from FSGe resultssvfsi.pysets up, executes, and processes svFSIplus simulationsutilities.pyIQN-ILS filteringvtk_functions.pyuseful VTK functions for file IOscripts/utility scripts including:compare_results.py- CI test comparison scriptsetup_docker.sh- Automated Docker environment setup