Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
464 commits
Select commit Hold shift + click to select a range
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
b0d810b
Merge pull request #16 from PhysiCelldFBA/hot-fixes
migp11 Oct 19, 2026
a534c32
Use a byte vector for the intracellular update flags (std::vector<boo…
migp11 Oct 22, 2026
f250500
Serialise the per-voxel update in Basic_Agent::simulate_secretion_and…
migp11 Oct 22, 2026
05fb7fe
Add a multi-thread update-order case to the dfba_unit_test voxel-shar…
migp11 Oct 22, 2026
c9ad9f6
Add a voxel-size and time-step test and a conservation ledger to dfba…
migp11 Oct 26, 2026
a2519f0
Merge pull request #19 from PhysiCelldFBA/fix/parallel-race-conditions
migp11 Oct 26, 2026
940ac50
Merge pull request #18 from PhysiCelldFBA/test/dfba-unit-dxdt
migp11 Oct 27, 2026
f6fa489
Read the dFBA secondary objective from inside growth_model (old posit…
migp11 Oct 27, 2026
c98609d
Merge pull request #21 from PhysiCelldFBA/refactor/secondary-objectiv…
migp11 Oct 27, 2026
0e75e12
Add README for bacterial_colony sample project
othmya Oct 19, 2026
1e03a20
Add README for cancer_core_metabolism sample project
othmya Oct 19, 2026
89c80ef
Add README for cancer_metabolism sample project
othmya Oct 19, 2026
4baa3b5
Add README for dfba_unit_test sample project
othmya Oct 19, 2026
bf75eba
Add README for ecoli_acetic_switch sample project
othmya Oct 19, 2026
36405cd
Add README for metabolic_driven_motility sample project
othmya Oct 19, 2026
cb086da
Add README for crossfeeding sample project
othmya Oct 19, 2026
2f3e93b
Rename cancer_metabolism sample project to human_template (template p…
othmya Oct 19, 2026
1a9d498
Remove unused files from bacterial_colony sample project
othmya Oct 19, 2026
efb414b
Remove unused files from ecoli_acetic_switch sample project
othmya Oct 19, 2026
a1140e6
Remove unused files from cancer_core_metabolism sample project
othmya Oct 19, 2026
3e5d6cd
Remove unused files from dfba_unit_test sample project
othmya Oct 19, 2026
126051f
Remove unused file from human_template sample project
othmya Oct 19, 2026
9d85d21
Remove unused yaml configs from crossfeeding sample project
othmya Oct 19, 2026
5151dd5
Update bacterial_colony README after removing dfba_config.yaml
othmya Oct 19, 2026
c0b53ad
Update ecoli_acetic_switch README after removing dfba_config.yaml
othmya Oct 19, 2026
ed00689
Update cancer_core_metabolism README after cleanup
othmya Oct 19, 2026
2ebd46c
Update human_template README after removing iSIM.xml
othmya Oct 19, 2026
ae4218f
Update crossfeeding README after removing unused yaml configs
othmya Oct 19, 2026
4af8a88
Reorganize dfba_unit_test: voxel_sharing_test subfolder, remove unuse…
othmya Oct 19, 2026
4552724
Clean up ecoli_acetic_switch sample project
othmya Oct 19, 2026
5cc5363
Remove hardcoded personal-path fallback from the ecoli_acetic_switch …
othmya Oct 19, 2026
9400042
Clean up bacterial_colony sample project
othmya Oct 21, 2026
d04dace
Clean up cancer_core_metabolism sample project
othmya Oct 21, 2026
e85b26e
Reorder dfba_unit_test README: Build & run before Contents, add missi…
othmya Oct 21, 2026
d904e73
Reorder ecoli_acetic_switch README: Build & run before Contents, add …
othmya Oct 21, 2026
90fd985
Reorder bacterial_colony README: Build & run before Contents
othmya Oct 21, 2026
26f6687
Clean up crossfeeding sample project
othmya Oct 21, 2026
a4ae16f
Clean up metabolic_driven_motility sample project
othmya Oct 23, 2026
0ab4622
Add figure reproducibility sections to fba sample project READMEs
othmya Oct 23, 2026
e5ce87c
Rename cancer_metabolism sample project to human_template
othmya Oct 23, 2026
85f57fe
Sync root Makefile and CMakeLists with human_template sample project
othmya Oct 23, 2026
f03654d
Move dFBA utility scripts from beta to addons/dFBA/utils
othmya Oct 27, 2026
4528ce9
Document dfba_configurator limitations in addons/dFBA/utils/README.md
othmya Oct 27, 2026
2e79c93
Update ecoli_acetic_switch configuration to the final XMLs and add a …
othmya Oct 27, 2026
d867c59
Update bacterial_colony configuration to the final XML and add its dF…
othmya Oct 27, 2026
f3c55dc
Enable SVG snapshots for the ecoli_acetic_switch scenarios
othmya Oct 27, 2026
5e2efd0
Update cancer_core_metabolism configuration to the final XMLs and add…
othmya Oct 27, 2026
ab76f69
Update crossfeeding configuration to the final XML and regenerate its…
othmya Oct 27, 2026
8049a20
Reduce metabolic_driven_motility to the two Figure 7 scenarios and ad…
othmya Oct 27, 2026
1980043
Remove superseded addon dFBA YAML examples
othmya Oct 27, 2026
7da6482
Ignore all simulation output folders
othmya Oct 27, 2026
1de69b4
Add the dFBA YAML definition for the dfba_unit_test mass-conversion s…
othmya Oct 27, 2026
93a89d9
Use 2 um voxels and 0.001 min time steps in the dfba_unit_test defaul…
othmya Oct 27, 2026
8c84fc0
Point the dx-dt and update-order generators at the reorganised dfba_u…
othmya Oct 27, 2026
cebc429
Document the update-order and voxel-size/time-step tests in the dfba_…
othmya Oct 27, 2026
fe44615
Move the pFBA secondary objective of ecoli_acetic_switch inside growt…
othmya Oct 27, 2026
0a9765c
Add config/Unit_test_mass_conversion.xml, a copy of the dfba_unit_tes…
othmya Oct 28, 2026
20734aa
Merge pull request #24 from PhysiCelldFBA/cleanup/fba-sample-projects…
migp11 Oct 28, 2026
fa39c98
ecoli_acetic_switch: homogenize exchange-flux custom_data under R_EX_…
Oct 28, 2026
0c8a487
dfba_unit_test: homogenize exchange-flux custom_data under R_EX_* ids
Oct 28, 2026
01fb46d
human_template: homogenize exchange-flux custom_data under R_EX_* ids
Oct 28, 2026
363d8b7
metabolic_driven_motility: homogenize exchange-flux custom_data under…
Oct 28, 2026
8fbd2c3
crossfeeding: merge per-species dispatch, homogenize under bare R_EX_…
Oct 28, 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