BondGraphs.jl is a Julia implementation of the bond graph framework, built upon existing packages ModelingToolkit.jl, Graphs.jl, and Catalyst.jl. This package constructs a symbolic graph model of a physical system, which can then be converted into a system of differential equations.
For tutorials and code demonstrations in Jupyter Notebooks, see BondGraphsTutorials.
using Pkg; Pkg.add("BondGraphs")
using BondGraphs
Bond graphs are an energy-based modelling framework that describe the rate of energy flow moving through system components. By construction, bond graph models enforce physical and thermodynamic constraints, guaranteeing compatibility with other physical models. This framework has been applied to mechanical, electrical, chemical, and biological systems, and is even capable of modelling complex multi-physics systems.
Joshua Forrest, Vijay Rajagopal, Michael P H Stumpf, Michael Pan, BondGraphs.jl: composable energy-based modelling in systems biology, Bioinformatics, Volume 39, Issue 10, October 2023, btad578, https://doi.org/10.1093/bioinformatics/btad578