Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
401 commits
Select commit Hold shift + click to select a range
e68a7eb
Comment out macos appleclang GH build
asmelko Oct 28, 2025
f49b846
Rename GH Action
asmelko Oct 28, 2025
1b665c8
Add MacOS gcc GH Actions CMake build
asmelko Oct 28, 2025
5c99875
Update gcc version
asmelko Oct 28, 2025
ea63c44
Remove macos deps steps
asmelko Oct 28, 2025
7d3223c
Add tests cmake GH action
asmelko Oct 28, 2025
54fc9e7
Fix tests action
asmelko Oct 28, 2025
be5b4bf
Better GH action name
asmelko Oct 28, 2025
7d10ed5
Fix correct MAXNODES for physiboss sample projects
asmelko Oct 31, 2025
6433914
Fix paths to work for windows too
asmelko Oct 31, 2025
f08e98f
Full paths to gh actions
asmelko Oct 31, 2025
0d398dd
Make exclusion of some tests better
asmelko Oct 31, 2025
228fef3
Fix paths
asmelko Oct 31, 2025
c8ef390
Normalize paths in testing python scripts
asmelko Oct 31, 2025
ced2118
Revert "Normalize paths in testing python scripts"
asmelko Oct 31, 2025
aa0c359
Add .exe for windows in Tests GH action
asmelko Oct 31, 2025
33ea67e
Add forgotten Release dir to Tests
asmelko Oct 31, 2025
40612ed
FIx path again
asmelko Oct 31, 2025
0dcc50b
Final path fix
asmelko Oct 31, 2025
6b00c98
Bump-up CMake minimal version as copy_directory_if_different requirement
asmelko Oct 31, 2025
ec2a46d
improved substrate contour plot
marcorusc Oct 31, 2025
077050f
General code cleaning, added function to print model for debug purpos…
marcorusc Nov 26, 2025
4ce593a
add warning message if reaction is not found
migp11 Nov 28, 2025
69f9b6c
adding the cancer_core_model
migp11 Nov 28, 2025
3cb22b8
adding notebook fore cancer core model
migp11 Nov 28, 2025
68addeb
update gitignore
migp11 Nov 28, 2025
192515f
Merge branch 'development' of github.com:PhysiCelldFBA/PhysiCelldFBA …
migp11 Nov 28, 2025
5d0911d
update intracellular.cpp
migp11 Nov 28, 2025
f68ac9e
removed printing in intracellular.cpp, added setPerturbation() in mod…
marcorusc Dec 3, 2025
bd78393
Updated windows dependencies urls
vincent-noel Dec 3, 2025
bb01f3e
add functions to resume state
rheiland Dec 10, 2025
42ce105
update
rheiland Dec 10, 2025
2c88a02
Merge pull request #398 from sysbio-curie/fix/windows_deps_urls
MathCancer Dec 10, 2025
3c16903
Merge pull request #374 from drbergman/fix-attack-no-detach
MathCancer Dec 10, 2025
01a65c7
Merge pull request #393 from drbergman/safer-substrate-colormap-read
MathCancer Dec 10, 2025
441b4c8
Merge pull request #384 from rheiland/cleanup-domain-edge-avoidance
MathCancer Dec 10, 2025
083db3e
Merge pull request #382 from rheiland/cleanup-update-cell-position
MathCancer Dec 10, 2025
27c5c53
Merge pull request #399 from rheiland/resume_sim
MathCancer Dec 10, 2025
b23e704
Merge pull request #383 from rheiland/cell-division-axis
MathCancer Dec 10, 2025
7a1764b
Refactor model handling in intracellular.cpp by removing unnecessary …
migp11 Dec 10, 2025
88bb6ba
Merge branch 'MathCancer:development' into development
marcorusc Dec 11, 2025
511ceea
Enhance dfba_config.yaml and dfba_configurator.py by adding detailed …
migp11 Dec 11, 2025
b53e064
added metabolic core model (Zielinski_2017) to Makefile
marcorusc Dec 11, 2025
c7dcab6
added error printing when getUpper/lower bound does not find the righ…
marcorusc Dec 11, 2025
47b332d
removed debug printing and corrected some typos
marcorusc Dec 11, 2025
ac8db1c
added metabolic core model (Zielinski 2017) to default Makefile
marcorusc Dec 11, 2025
0fda271
Updated config file for ecoli acetic switch with new parameters for r…
marcorusc Dec 11, 2025
e2ba231
Add cell volume management in dfba_configurator.py
migp11 Dec 11, 2025
3cc1926
Merge branch 'development' of github.com:PhysiCelldFBA/PhysiCelldFBA …
migp11 Dec 11, 2025
b099436
Remove unused cmake file
asmelko Dec 11, 2025
0f66fc5
Decrease minimal cmake version by substituting copy_directory_if_diff…
asmelko Dec 11, 2025
1e702e3
Add missing openmp flags to the remainder of targets
asmelko Dec 11, 2025
c64d359
working version for dfba_configurator
migp11 Dec 11, 2025
b88d368
update
rheiland Dec 12, 2025
a161bdc
Use signed integers in omp pragmas to make windows openmp not complain
asmelko Dec 15, 2025
068080f
warn about is_movable
rheiland Dec 15, 2025
ae4e78e
cleanup; delete confusion
rheiland Dec 15, 2025
045d0f6
updated dfba configurator to use physicell-settings package
marcorusc Dec 15, 2025
eca0d2d
updated sample project with script for nice plotting
marcorusc Dec 15, 2025
27e3413
fix bug resuming custom data
rheiland Dec 15, 2025
8361947
improved resume main.cpp
rheiland Dec 15, 2025
ba51cc0
updating MCF7 model from source
migp11 Dec 16, 2025
01eeb42
cleaning old files
migp11 Dec 16, 2025
ffacc43
fix rates and inconsitent blocks
migp11 Dec 16, 2025
b86846f
Merge branch 'development' of github.com:PhysiCelldFBA/PhysiCelldFBA …
migp11 Dec 16, 2025
d1ccce7
XML restructuring. move sbml_filename into settings block
migp11 Dec 16, 2025
6313439
Raise error message before exit if exchange reaction cant be found in…
migp11 Dec 16, 2025
52ffab7
comment custom variable storing
migp11 Dec 16, 2025
edf34e4
fix the use of custom variable not defined
migp11 Dec 16, 2025
fd1e337
Update FBA xml setting file to reflect XML restructuring (sbml_filena…
migp11 Dec 16, 2025
18f96ce
Merge pull request #4 from PhysiCelldFBA/hot-fixes
marcorusc Dec 16, 2025
d6ebcbc
Merge pull request #392 from asmelko/cmake
MathCancer Dec 17, 2025
c3e82f4
Now using macos15-intel instead of macos-13, using g++14
vincent-noel Dec 11, 2025
58d091a
Merge pull request #400 from rheiland/resume_sim
MathCancer Dec 17, 2025
b341ec0
update setup_tissue to use cell.csv
migp11 Dec 17, 2025
87f3346
Including PR#366 from Daniel
vincent-noel Dec 17, 2025
2354b24
Merge pull request #402 from vincent-noel/update/ci_macos
MathCancer Dec 17, 2025
ce727e8
Updated MaBoSS version
vincent-noel Dec 19, 2025
3dd843e
Detecting MSVC and downloading a specific version of libmaboss
vincent-noel Dec 19, 2025
865f25b
Updating include to reflect the new directory structure
vincent-noel Dec 19, 2025
899d593
Activating physiboss on msvc workflows
vincent-noel Dec 19, 2025
7231bb1
working xml setting for the cancer core model
migp11 Jan 6, 2026
7d71719
improving path solving in dfba_configurator
migp11 Jan 6, 2026
408d73c
adding a script to generate the yaml dfba config from a sbml model
migp11 Jan 6, 2026
b9a337e
updating oxygen and lactate bounds
migp11 Jan 6, 2026
8b5c5d9
adding csv with initial cells in an spheroid of different sizes
migp11 Jan 6, 2026
a1c44cd
merge
migp11 Jan 6, 2026
0a317e7
a dfba yaml example for cancer core model
migp11 Jan 6, 2026
a8fcb04
a notebook with a prototype of the yaml crater script
migp11 Jan 6, 2026
b2f79b6
Merge branch 'development' of github.com:PhysiCelldFBA/PhysiCelldFBA …
migp11 Jan 6, 2026
9bb3ec4
fix for new .zip bundles
rheiland Feb 8, 2026
0953f6c
fix header path
rheiland Feb 8, 2026
1b36f6f
Fix worms sample project
asmelko Feb 9, 2026
f5a7cef
Rectify test cases for worm
asmelko Feb 9, 2026
4fc426a
Add configurable resolution variables for JPEG and GIF generation
drbergman Feb 11, 2026
911bdd6
movies pad jpegs to make even dims
drbergman Feb 11, 2026
c0d9e4e
update header path
rheiland Feb 11, 2026
502f816
Update max_cell_interactive_distance_in_voxel during position update
heberlr Feb 16, 2026
337722c
Revert "Update max_cell_interactive_distance_in_voxel during position…
heberlr Feb 16, 2026
5d2d591
use manylinux
rheiland Feb 17, 2026
d7040aa
cleanup
rheiland Feb 17, 2026
2cfbc80
Update the if-query so that it spans all possible contact with cells …
elmbeech Feb 18, 2026
47a3768
Merge branch 'development' into fix-division-displacement
drbergman Feb 18, 2026
b6eceeb
fix whitespace
drbergman Feb 18, 2026
9443670
fix paths
rheiland Feb 19, 2026
32ca016
create /C symlink for headers
rheiland Feb 19, 2026
5bb4f5d
added new use case: 3D simulation of a columns of cancer cells, inclu…
marcorusc Feb 24, 2026
26004e4
adding diffusion steps and xml updates to cancer core model
migp11 Feb 26, 2026
e48900b
update cancer column model
migp11 Mar 1, 2026
62df771
fixing solver status checks and remove debug prints
migp11 Mar 12, 2026
bcc5817
update generate cell positions script
migp11 Mar 12, 2026
4c2aa15
adding otebooks and scripts for the cancer core model
migp11 Mar 12, 2026
85d441a
update exchange fluxes in custom variables
migp11 Mar 12, 2026
b801ddb
fix z-slide for SVG plotting
migp11 Mar 12, 2026
9125704
adding Zelinsky model data
migp11 Mar 12, 2026
35174f7
add the proper xml for the cancer core model
migp11 Mar 12, 2026
00dfb43
update gitignore
migp11 Mar 12, 2026
75a2168
tiny XML config (deprecated)
migp11 Mar 12, 2026
22dd5a3
Creating baterial-colony project
migp11 Mar 18, 2026
04a9e84
update Makefile to include bacterial colony model
migp11 Mar 18, 2026
34e6cc6
fix details in cancer.core model
migp11 Mar 18, 2026
8305cdd
sbatch script to run in slurm cluster
migp11 Mar 18, 2026
1367904
commenting debug prints in dfba model creation
migp11 Mar 18, 2026
77eb2b4
update script for creating cell positions bacterial colony
migp11 Mar 18, 2026
4ccbab7
updated ecoli acetic switch example: xml files now match the settings…
marcorusc Mar 20, 2026
5eef794
add contact_with_built_in variable and change the code accordingly.
elmbeech Mar 21, 2026
70aef96
update bacterial colony model
migp11 Apr 9, 2026
60553f4
scripts for bacterial colony model
migp11 Apr 9, 2026
8a6cd83
Merge branch 'development' of github.com:PhysiCelldFBA/PhysiCelldFBA …
migp11 Apr 9, 2026
bee98b3
"Added explicit deep copy to replace the shallow copy in the construc…
marcorusc Apr 10, 2026
e85b9c7
added function to update and restore the objective function and objec…
marcorusc Apr 10, 2026
b1e4969
Fixed missing/broken header defintions
marcorusc Apr 10, 2026
03c6d78
added new pointer function to dfba intracellular that allow the user …
marcorusc Apr 14, 2026
725cc30
added new use case for dfba: based on the ecoli model, it showcase th…
marcorusc Apr 14, 2026
28c6308
corrected new sample project intracellular with the right name in the…
marcorusc Apr 14, 2026
018d6a5
Add trim_cr utility function and apply it to CSV parsing in multiple …
drbergman May 18, 2026
aff4be5
improved use case of metabolic-driven motility with configuration fil…
marcorusc May 20, 2026
cb9b89b
corrected and updated notebook for analysis of the unit test. Correct…
marcorusc May 20, 2026
2b34f1f
Improved final plots for the unit test
marcorusc Jun 16, 2026
8ffcbb4
Updated crossfeeding model
othmya Jul 6, 2026
c710aa7
Update Makefile to include crossfeeding model
othmya Jul 6, 2026
171e256
fixed correct Makefile, custom cpp for crossfeeding
othmya Jul 6, 2026
202f096
Fixed crossfeeding custom CPP
othmya Jul 6, 2026
23a0d43
Removed non-used config files to clean up crossfeeding model
othmya Jul 6, 2026
51d5a37
Fixed crossfeeding config file
othmya Jul 6, 2026
99021ea
Updated unit test plot, harmonized both plots and changed axis. Updat…
othmya Jul 10, 2026
ae0cc04
Updated motility figure generation script
othmya Jul 10, 2026
a86de4b
Clean up crossfeeding config files
othmya Jul 15, 2026
609a50d
Removed PhysiCell settings backup. Added default PhysiCell settings i…
othmya Jul 16, 2026
0382852
Cleaned up crossfeeding config files
othmya Jul 16, 2026
32bfde3
Added minimal scripts to reproduce crossfeeding main plots
othmya Jul 16, 2026
e00b9ad
Merge pull request #8 from PhysiCelldFBA/crossfeeding_dev
marcorusc Jul 16, 2026
fafa24f
removed ecoli acetic switch test. Added mass conversion unit test.
marcorusc Jul 17, 2026
31c4dc8
Restored original order of container update: first advance secretion …
marcorusc Jul 21, 2026
5511934
Merge remote-tracking branch 'upstream/development' into sync/physice…
marcorusc Jul 22, 2026
2343787
Merge pull request #9 from PhysiCelldFBA/sync/physicell-development
marcorusc Jul 22, 2026
1a72c72
Updated acetic switch config diffusion params to comply with literatu…
othmya Jul 22, 2026
6fbca68
Merge branch 'development' of https://github.com/PhysiCelldFBA/PhysiC…
othmya Jul 22, 2026
4dad185
Updated acetic switch config diffusion params to comply with literatu…
othmya Jul 22, 2026
e19da28
Updated config and csv for motility example
othmya Jul 23, 2026
abc005b
Skip processing of blank lines in CSV input and ensure minimum column…
drbergman Jul 24, 2026
d711b79
New metabolic-driven-motility simulation with multiple sources
marcorusc Jul 27, 2026
e509d5b
Updated cancer core example config and script generation
othmya Jul 28, 2026
de5f218
small config fixes and updated scripts for cancer core metabolism model
othmya Jul 31, 2026
0493418
Make the attack link symmetric, following spring-attachment semantics
drbergman Aug 6, 2026
04c06f3
Fix rules engine treating behavior/signal synonyms as separate entries
heberlr Aug 6, 2026
7a81b97
Address review: attacked_by races, and restore the spring on resume
drbergman Aug 7, 2026
12720aa
Fix a typo in an adjacent comment
drbergman Aug 7, 2026
6c79881
Read pAttackTarget once in the effector-attack block
drbergman Aug 7, 2026
47692be
Generate header dependencies so header edits trigger a rebuild
drbergman Aug 7, 2026
9fbd031
Defer teardown out of the mechanics parallel-for
drbergman Aug 7, 2026
649dc13
Correct a comment the teardown deferral invalidated
drbergman Aug 8, 2026
b995db6
Take spring attachments under the lock before iterating them
drbergman Aug 9, 2026
455475f
Merge pull request #356 from drbergman/fix-phagocytosis-synonym
MathCancer Aug 14, 2026
08c8467
Merge pull request #367 from drbergman/fix-exit-on-error
MathCancer Aug 14, 2026
3a41215
Merge pull request #371 from drbergman/fix-copy-to-output-pathsep
MathCancer Aug 14, 2026
eae9b92
Merge pull request #387 from drbergman/fix-division-displacement
MathCancer Aug 14, 2026
9a6d289
Merge pull request #426 from drbergman/claude/makefile-header-deps
MathCancer Aug 14, 2026
ab52bac
Merge pull request #417 from drbergman/fix-parse-cr-lines-unix
MathCancer Aug 14, 2026
e005fd0
Merge pull request #407 from asmelko/worms-fix
MathCancer Aug 14, 2026
306b886
Merge pull request #379 from heberlr/dev-heber
MathCancer Aug 14, 2026
d1f6c44
Merge pull request #403 from vincent-noel/feat/cmake_maboss_update
MathCancer Aug 14, 2026
8f7a0fc
Allow non-movable cells to have neighbors list and calculate simple p…
heberlr Feb 17, 2026
eb28b06
Merge pull request #423 from heberlr/fix-rules-with-synonyms
drbergman Aug 14, 2026
4cd1719
Merge pull request #406 from rheiland/update_librr_setup
drbergman Aug 14, 2026
2e18e41
Merge pull request #363 from drbergman/protect-intracellular-updates
drbergman Aug 14, 2026
0dd5c77
Merge pull request #408 from drbergman/jpeg-res-update
drbergman Aug 14, 2026
f8f0a06
Merge pull request #421 from drbergman/fix/blank-cellscsv-lines
drbergman Aug 14, 2026
b68fe2d
Merge pull request #428 from drbergman/fix-spring-attachment-race-ups…
drbergman Aug 14, 2026
35f3ced
make phagocytosis and fusion thread safe
drbergman Aug 14, 2026
088f4fe
Merge pull request #411 from elmbeech/patch1142dev_signal_contact
drbergman Aug 14, 2026
27f6924
Merge branch 'development' into fix-update-intracellular-first-step
drbergman Aug 14, 2026
3ea3fb1
Merge branch 'development' into improve-librr-api
drbergman Aug 14, 2026
508bec5
cannot return out of omp critical section
drbergman Aug 14, 2026
08b8d60
Merge pull request #422 from drbergman/claude/physicell-spring-detach…
drbergman Aug 15, 2026
20f3f40
Merge pull request #364 from drbergman/fix-update-intracellular-first…
drbergman Aug 15, 2026
ec9c6b5
Merge pull request #362 from drbergman/improve-librr-api
drbergman Aug 15, 2026
39be5bd
Merge pull request #388 from drbergman/fix-dist-to-edge-edge-cases
drbergman Aug 15, 2026
6f08abd
check is_movable in add_potential function: avoid update velocity
heberlr May 8, 2026
cc596ef
Updated mechano test results
vincent-noel Aug 17, 2026
5e05779
Figure and config fixes
othmya Aug 19, 2026
c00f424
Initialize loop counter in intialize_hypothesis_rulesets
drbergman Aug 19, 2026
6b0aa2b
Compare neighbor type against diff_type, not the running counter
drbergman Aug 19, 2026
3360ebb
harmonizing XMls
othmya Aug 24, 2026
e81f443
Not checking mechano tests results anymore
vincent-noel Sep 15, 2026
167c817
Merge pull request #430 from vincent-noel/fix/heberlr/pr-neighbor-lis…
vincent-noel Sep 24, 2026
6f8fec7
Update max cell interactive distance in voxel during position update
heberlr Feb 16, 2026
2c9ef67
Refactor max cell interactive distance update to occur after voxel in…
heberlr Feb 16, 2026
15841f4
update max_cell_interactive_distance_in_voxel if cell changed voxel
heberlr Feb 16, 2026
be087a2
Updated worm and virus-macrophage test results
vincent-noel Sep 15, 2026
5a11815
Not checking virus-macrophage tests results anymore
vincent-noel Sep 15, 2026
4950735
Merge pull request #429 from vincent-noel/fix/heberlr/pr-bug-neighbors
vincent-noel Sep 24, 2026
ca1877e
Merge pull request #434 from drbergman/fix-interaction-sample-diff-type
drbergman Oct 2, 2026
49d7cc5
Merge pull request #433 from drbergman/fix-uninitialized-ruleset-loop…
drbergman Oct 2, 2026
b780351
Remove redundant per-solve bookkeeping from dFBAModel::optimize
migp11 Oct 9, 2026
f13357e
Fix silent custom_data corruption from undeclared names
migp11 Oct 8, 2026
3e65b8d
Merge hotfix/optimize-bookkeeping
migp11 Oct 9, 2026
7b00fc4
Add parsimonious FBA to dFBAModel
migp11 Oct 9, 2026
06d252f
Do not track dFBA test binaries or generated dumps
migp11 Oct 9, 2026
12e6856
Expose pFBA from configuration and wire it into dFBAIntracellular
migp11 Oct 9, 2026
fdc159e
Add a benchmark showing the LP is warm-started between timesteps
migp11 Oct 9, 2026
87210db
Track header dependencies so a header edit rebuilds its dependents
migp11 Oct 9, 2026
5a26dae
Merge hotfix/makefile-header-deps
migp11 Oct 9, 2026
17a2b2f
Merge development into feature/pfba
migp11 Oct 9, 2026
f5e2073
Run both pFBA stages inside optimize(), and fix two second-stage defects
migp11 Oct 9, 2026
74eabcc
Add the reviewer-response figures, and track the FVA analysis code
migp11 Oct 10, 2026
aa530d4
Add a failing test: uptake cap lets a voxel's substrate go negative
migp11 Oct 11, 2026
948c95f
Fix the unit conversion in the uptake cap (multiply -> divide by 1e15)
migp11 Oct 11, 2026
d496cc6
Share a voxel's substrate between the cells that draw on it
migp11 Oct 11, 2026
bad32d8
Merge branch 'development' into hot-fixes
migp11 Oct 13, 2026
64a5ecc
Merge pull request #6 from PhysiCelldFBA/hot-fixes
migp11 Oct 13, 2026
e22bcc5
Merge pull request #11 from PhysiCelldFBA/pr/dev-sync-perf-fixes
migp11 Oct 13, 2026
f1342ec
Merge pull request #12 from PhysiCelldFBA/hotfix/voxel-uptake-overdraw
migp11 Oct 13, 2026
1c35872
Merge development into feature/pfba
migp11 Oct 13, 2026
cd38c10
Remove the FVA analysis scripts and the reviewer-response notebook fr…
migp11 Oct 13, 2026
e9982d0
Fail loudly if an LP column no longer corresponds to its reaction
migp11 Oct 13, 2026
a359348
Fix fresh-checkout Make workflows and Windows test dependencies
marcorusc Oct 14, 2026
18bb942
Merge PhysiCell development through 49d7cc54
marcorusc Oct 14, 2026
56dc9b5
Remove obsolete CMake test matrix exclusion after upstream sync
marcorusc Oct 14, 2026
66b125b
Clean BACTERIAL-COLONY unused files and scripts
migp11 Oct 15, 2026
dccde49
Fix BACTERIAL-COLONY params
migp11 Oct 15, 2026
9d49392
Clean CANCER-CORE unused xml and csv files
migp11 Oct 15, 2026
09c058a
Merge LP column-order validation into development-based review branch
marcorusc Oct 16, 2026
b5f4510
Merge pFBA into development-based review branch
marcorusc Oct 16, 2026
e61df49
Merge pull request #14 from PhysiCelldFBA/pr/development-lp-column-or…
migp11 Oct 19, 2026
2bac7d6
Merge branch 'development' into pr/development-pfba
migp11 Oct 19, 2026
bf28fc9
Merge pull request #15 from PhysiCelldFBA/pr/development-pfba
migp11 Oct 19, 2026
ae138ea
Merge pull request #13 from PhysiCelldFBA/maintenance/sync-upstream-c…
migp11 Oct 19, 2026
e21f21b
Make the glucose source patches opt-in in the metabolic-driven-motili…
migp11 Oct 19, 2026
e39499b
Harmonise the metabolic-driven-motility configs: dt 0.001 min, bounda…
migp11 Oct 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
53 changes: 26 additions & 27 deletions .github/workflows/build_binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,18 +12,18 @@ jobs:
strategy:
matrix:
projects: [
{short_name: "physiboss-tutorial", project: "physiboss-tutorial", name: "PhysiBoSS tutorial", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
{short_name: "physiboss-tutorial-invasion", project: "physiboss-tutorial-invasion", name: "PhysiBoSS Cancer Invasion", binary: "invasion_model", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
{short_name: "physiboss-cell-lines", project: "physiboss-cell-lines-sample", name: "PhysiBoSS Cell Lines", binary: "PhysiBoSS_Cell_Lines", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
{short_name: "template_BM", project: "template_BM", name: "PhysiBoSS Template", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-11"},
{short_name: "physiboss-tutorial", project: "physiboss-tutorial", name: "PhysiBoSS tutorial", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-12"},
{short_name: "physiboss-tutorial-invasion", project: "physiboss-tutorial-invasion", name: "PhysiBoSS Cancer Invasion", binary: "invasion_model", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-12"},
{short_name: "physiboss-cell-lines", project: "physiboss-cell-lines-sample", name: "PhysiBoSS Cell Lines", binary: "PhysiBoSS_Cell_Lines", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-12"},
{short_name: "template_BM", project: "template_BM", name: "PhysiBoSS Template", binary: "project", extra_run: "make Compile_MaBoSS PHYSICELL_CPP=g++-12"},
{short_name: "template", project: "template", name: "PhysiCell Template", binary: "project", extra_run: ""},
{short_name: "rules", project: "rules-sample", name: "PhysiCell Rules", binary: "project", extra_run: ""},
{short_name: "physimess", project: "physimess-sample", name: "PhysiMeSS", binary: "project", extra_run: ""},
{short_name: "interaction", project: "interaction-sample", name: "PhysiCell Interaction", binary: "interaction_demo", extra_run: ""},
{short_name: "episode", project: "episode-sample", name: "PhysiCell Episode", binary: "project", extra_run: ""},
]

runs-on: ubuntu-latest
runs-on: ubuntu-22.04

steps:
- uses: actions/checkout@v4
Expand Down Expand Up @@ -127,17 +127,17 @@ jobs:
{short_name: "episode", project: "episode-sample", name: "PhysiCell Episode", binary: "project", extra_run: ""},
]

runs-on: macos-13
runs-on: macos-15-intel

steps:
- uses: actions/checkout@v4

- name: Install dependencies
run : |
if ! brew list gcc@13 &>/dev/null; then
brew install gcc@13
if ! brew list gcc@14 &>/dev/null; then
brew install gcc@14
else
echo "gcc@13 is already installed."
echo "gcc@14 is already installed."
fi

- name: Build ${{ matrix.projects.name }} project
Expand All @@ -146,15 +146,15 @@ jobs:
make ${{ matrix.projects.project }}
make clean
${{ matrix.projects.extra_run }}
make PHYSICELL_CPP=g++-13 static
cp ${{ matrix.projects.binary }} ${{ matrix.projects.binary }}_macos13
make PHYSICELL_CPP=g++-14 static
cp ${{ matrix.projects.binary }} ${{ matrix.projects.short_name }}_macos_intel

- name: Caching produced project binary
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/${{ matrix.projects.binary }}_macos13
key: ${{ runner.os }}-macos13-${{ github.run_id }}
${{ github.workspace }}/${{ matrix.projects.short_name }}_macos_intel
key: ${{ runner.os }}-macos-intel-${{ github.run_id }}

- name: Look at the generated binary
run: |
Expand Down Expand Up @@ -184,10 +184,10 @@ jobs:

- name: Install dependencies
run : |
if ! brew list gcc@13 &>/dev/null; then
brew install gcc@13
if ! brew list gcc@14 &>/dev/null; then
brew install gcc@14
else
echo "gcc@13 is already installed."
echo "gcc@14 is already installed."
fi

- name: Build ${{ matrix.projects.name }} project
Expand All @@ -196,15 +196,15 @@ jobs:
make ${{ matrix.projects.project }}
make clean
${{ matrix.projects.extra_run }}
make PHYSICELL_CPP=g++-13 static
cp ${{ matrix.projects.binary }} ${{ matrix.projects.binary }}_macosm1
make PHYSICELL_CPP=g++-14 static
cp ${{ matrix.projects.binary }} ${{ matrix.projects.short_name }}_macos_arm

- name: Caching produced project binary
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/${{ matrix.projects.binary }}_macosm1
key: ${{ runner.os }}-macosm1-${{ github.run_id }}
${{ github.workspace }}/${{ matrix.projects.short_name }}_macos_arm
key: ${{ runner.os }}-macos-arm-${{ github.run_id }}

- name: Look at the generated binary
run: |
Expand All @@ -227,7 +227,7 @@ jobs:
{short_name: "episode", project: "episode-sample", name: "PhysiCell Episode", binary: "project", extra_run: ""},
]

runs-on: macos-13
runs-on: macos-15-intel
needs: [macos_step0a, macos_step0b]

steps:
Expand All @@ -237,20 +237,19 @@ jobs:
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/${{ matrix.projects.binary }}_macosm1
key: ${{ runner.os }}-macosm1-${{ github.run_id }}
${{ github.workspace }}/${{ matrix.projects.short_name }}_macos_arm
key: ${{ runner.os }}-macos-arm-${{ github.run_id }}

- name: Caching produced project binary
uses: actions/cache@v4
with:
path: |
${{ github.workspace }}/${{ matrix.projects.binary }}_macos13
key: ${{ runner.os }}-macos13-${{ github.run_id }}
${{ github.workspace }}/${{ matrix.projects.short_name }}_macos_intel
key: ${{ runner.os }}-macos-intel-${{ github.run_id }}

- name: Creating universal binary
run: |
lipo -create -output ${{ matrix.projects.binary }} ${{ matrix.projects.binary }}_macos13 ${{ matrix.projects.binary }}_macosm1

lipo -create -output ${{ matrix.projects.binary }} ${{ matrix.projects.short_name }}_macos_arm ${{ matrix.projects.short_name }}_macos_intel
- name: Checking universal binary
run: |
lipo -archs ${{ matrix.projects.binary }}
Expand Down
77 changes: 77 additions & 0 deletions .github/workflows/build_binaries_cmake.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# This starter workflow is for a CMake project running on multiple platforms. There is a different starter workflow if you just want a single platform.
# See: https://github.com/actions/starter-workflows/blob/main/ci/cmake-single-platform.yml
name: Build binaries CMake

on:
push:
pull_request:
release:
types: [published]

jobs:
build:
runs-on: ${{ matrix.os }}

strategy:
# Set fail-fast to false to ensure that feedback is delivered for all matrix combinations. Consider changing this to true when your workflow is stable.
fail-fast: false

# Set up a matrix to run the following 3 configurations:
# 1. <Windows, Release, latest MSVC compiler toolchain on the default runner image, default generator>
# 2. <Linux, Release, latest GCC compiler toolchain on the default runner image, default generator>
# 3. <Linux, Release, latest Clang compiler toolchain on the default runner image, default generator>
#
# To add more build types (Release, Debug, RelWithDebInfo, etc.) customize the build_type list.
matrix:
include:
- os: windows-latest
c_compiler: cl
cpp_compiler: cl
build_physiboss: "ON"
- os: ubuntu-latest
c_compiler: gcc
cpp_compiler: g++
build_physiboss: "ON"
- os: ubuntu-latest
c_compiler: clang
cpp_compiler: clang++
build_physiboss: "ON"
- os: macos-latest
c_compiler: gcc-15
cpp_compiler: g++-15
build_physiboss: "ON"
# - os: macos-latest
# c_compiler: cc
# cpp_compiler: c++
# build_physiboss: "ON"

steps:
- uses: actions/checkout@v4

- name: Set reusable strings
# Turn repeated input strings (such as the build output directory) into step outputs. These step outputs can be used throughout the workflow file.
id: strings
shell: bash
run: |
echo "build-output-dir=${{ github.workspace }}/build" >> "$GITHUB_OUTPUT"

- name: Install dependencies (Linux)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libomp-dev

- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
run: >
cmake -B ${{ steps.strings.outputs.build-output-dir }}
-DCMAKE_CXX_COMPILER=${{ matrix.cpp_compiler }}
-DCMAKE_C_COMPILER=${{ matrix.c_compiler }}
-DCMAKE_BUILD_TYPE=Release
-DPHYSICELL_BUILD_PHYSIBOSS=${{ matrix.build_physiboss }}
-S ${{ github.workspace }}

- name: Build
# Build your program with the given configuration. Note that --config is needed because the default Windows generator is a multi-config generator (Visual Studio generator).
run: cmake --build ${{ steps.strings.outputs.build-output-dir }} --config Release
18 changes: 13 additions & 5 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ jobs:
matrix:
os: [
{name: "Ubuntu", os: "ubuntu-latest", shell: "bash", compiler: "g++"},
{name: "MacOS 13", os: "macos-13", shell: "bash", compiler: "g++-12"},
{name: "MacOS 14 (M1)", os: "macos-14", shell: "bash", compiler: "g++-13"},
{name: "MacOS 15", os: "macos-15-intel", shell: "bash", compiler: "g++-14"},
{name: "MacOS 14 (M1)", os: "macos-14", shell: "bash", compiler: "g++-14"},
{name: "Windows", os: "windows-latest", shell: "msys2", compiler: "g++"},
]
projects: [
Expand All @@ -24,14 +24,15 @@ jobs:
{project: "physimess-sample", name: "PhysiMeSS Sample", binary: "project", config: "config/Fibre_Degradation/mymodel_matrix_degradation.xml", max_time: 120, output_folder: ""},
{project: "physiboss-tutorial", name: "PhysiBoSS Tutorial", binary: "project", config: "config/cell_cycle/PhysiCell_settings.xml", max_time: 300, output_folder: "output"},
{project: "worm-sample", name: "PhysiCell worm", binary: "worm", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: "output"},
{project: "virus-macrophage-sample", name: "Virus Macrophage", binary: "virus-sample", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: "output"},
{project: "mechano-sample", name: "PhysiCell Mechano", binary: "project", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: "output"},
{project: "virus-macrophage-sample", name: "Virus Macrophage", binary: "virus-sample", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: ""},
{project: "mechano-sample", name: "PhysiCell Mechano", binary: "project", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: ""},
{project: "cancer-biorobots-sample", name: "PhysiCell Cancer Biorobots", binary: "cancer_biorobots", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: ""},
{project: "biorobots-sample", name: "PhysiCell Biorobots", binary: "biorobots", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: ""},
{project: "celltypes3-sample", name: "PhysiCell Celltypes3", binary: "celltypes3", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: ""},
{project: "custom-division-sample", name: "PhysiCell custom division", binary: "project", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: ""},
{project: "interaction-sample", name: "PhysiCell interactions", binary: "interaction_demo", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: ""},
{project: "pred-prey-farmer", name: "PhysiCell prey predator", binary: "pred_prey", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: ""},
{project: "dfba_unit_test", name: "PhysiCelldFBA Unit Test", binary: "dfba-unit-test", config: "config/Unit_test_mass_conversion.xml", max_time: 20, output_folder: ""},
{project: "rules-sample", name: "PhysiCell rules sample", binary: "rules_sample", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: ""},
{project: "asymmetric-division-sample", name: "PhysiCell asymmetric division", binary: "project", config: "config/PhysiCell_settings.xml", max_time: 120, output_folder: ""},
{project: "episode-sample", name: "PhysiCell Episode", binary: "project", max_time: 120, config: "config/PhysiCell_settings.xml", output_folder: ""},
Expand All @@ -48,11 +49,18 @@ jobs:
steps:
- uses: actions/checkout@v4

- if: matrix.os.name == 'Ubuntu'
run: sudo apt-get update && sudo apt-get install -y liblapack-dev libbz2-dev

- if: runner.os == 'macOS'
run: brew install lapack bzip2


- if: matrix.os.name == 'Windows'
uses: msys2/setup-msys2@v2
with:
update: true
install: mingw-w64-x86_64-binutils mingw-w64-x86_64-gcc mingw-w64-x86_64-headers-git mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-libwinpthread-git mingw-w64-x86_64-lapack mingw-w64-x86_64-openblas mingw-w64-x86_64-libxml2 mingw-w64-x86_64-bzip2 mingw-w64-x86_64-python mingw-w64-x86_64-python-zstandard mingw-w64-x86_64-python-cffi make bison flex mingw-w64-x86_64-ca-certificates mingw-w64-x86_64-diffutils
install: mingw-w64-x86_64-binutils mingw-w64-x86_64-gcc mingw-w64-x86_64-headers-git mingw-w64-x86_64-gcc-libs mingw-w64-x86_64-libwinpthread-git mingw-w64-x86_64-lapack mingw-w64-x86_64-openblas mingw-w64-x86_64-libxml2 mingw-w64-x86_64-bzip2 mingw-w64-x86_64-python mingw-w64-x86_64-python-zstandard mingw-w64-x86_64-python-cffi make bison flex mingw-w64-x86_64-ca-certificates diffutils

- name: Build ${{ matrix.projects.name }} project
run: |
Expand Down
Loading