Modeling and simulation
General modeling and simulation packages in Julia.
Organizations¶
Resources¶
- Workshop for
ModelingToolkit.jl
: A Youtube video for JuliaCon 2021. - SciML/SciMLTutorials.jl : Tutorials for doing scientific machine learning (SciML) and high-performance differential equation solving with open source software.
Loading model files¶
- LCSB-BioCore/SBML.jl : Julia interface to the Systems Biology Markup Language (SBML) library.
- SciML/CellMLToolkit.jl : a Julia library that connects
CellML
models to the Scientific Julia ecosystem. - SciML/ReactionNetworkImporters.jl : Loading BioNetGen
.net
file. - SciML/SBMLToolkit.jl : importing models specified in the Systems Biology Markup Language (SBML) into the Julia SciML ecosystem.
- Electa-Git/FMIExchange.jl : load Model Exchange Functional Mock-up Units (FMUs) and simulate them using the
DifferentialEquations.jl
package.
Symbolic Computation¶
Wikipedia: Symbolic Computation
- chakravala/Reduce.jl : Symbolic parser generator for Julia language expressions using REDUCE algebra term rewriter.
- jlapeyre/Symata.jl : language for symbolic mathematics.
- JuliaPy/SymPy.jl : Julia interface to SymPy via
PyCall.jl
. - jverzani/SymPyPythonCall.jl : Julia interface to SymPy via
PythonCall.jl
. - JuliaSymbolics/Symbolics.jl : A fast and modern CAS for a fast and modern language.
- MilesCranmer/SymbolicRegression.jl : Distributed High-Performance symbolic regression in Julia.
- symengine/SymEngine.jl : Julia wrappers of symengine/symengine.
Data structures¶
See also data-structures.
- jonniedie/ComponentArrays.jl : Arrays with arbitrarily nested named components.
- SciML/LabelledArrays.jl : Arrays with a label for each element.
- SciML/RecursiveArrayTools.jl : Tools for easily handling nestings array objects like arrays of arrays.
Differential equations¶
Wikipedia: Differential equations
- bradcarman/ModelingToolkitDesigner.jl : A helper tool for visualizing and editing a
ModelingToolkit.jl
system connections. - cadCAD-org/CadCAD.jl : Complex Adaptive Dynamics Computer Aided Design (CadCAD) is a language for encoding Generalized Dynamical Systems (GDS) as computer programs. The Julia implementation is based on its Python counterpart.
- CedarEDA/DAECompiler.jl : the core compiler engine of the Cedar EDA platform. It provides a domain-agnostic framework for high-performance simulation of Differential Algebraic Equations (DAEs). JuliaCon 2024 video
- jangevaare/Pathogen.jl : Utilities to simulate and perform inference of disease dynamics.
- JuliaApproximation/SingularIntegralEquations.jl : An experimental Julia package for solving singular integral equations.
- JuliaComputing/ModelingToolkitSampledData.jl : A standard library with discrete-time components for ModelingToolkit. It requires
JuliaSimCompiler.jl
, a proprietary product. JuliaCon 2024 video - JuliaDynamics/ConcurrentSim.jl : A discrete event process oriented simulation framework written in Julia.
- JuliaHolomorphic/RiemannHilbert.jl : A Julia package for solving a Riemann–Hilbert problem, a certain type of boundary value problem.
- JuliaTurkuDataScience/FdeSolver.jl : A Julia package for the numerical solution of fractional differential equations (FDEs) as well as systems of equations.
- ModiaSim/Modia.jl : Modia is a Julia package for modeling and simulation of multidomain engineering systems described by differential equations, algebraic equations, and (space-discretized) partial differential equations.
- nathanaelbosch/ProbNumDiffEq.jl : Probabilistic Numerical Differential Equation solvers via Bayesian filtering and smoothing. JuliaCon 2024 video
- QuantumBFS/QuDiffEq.jl : Quantum Algorithms for solving differential equations
- SciML/Catalyst.jl : Domain-specific language (DSL) for chemical reaction networks.
- SciML/DataDrivenDiffEq.jl : Data driven modeling and automated discovery of dynamical systems.
- SciML/DifferentialEquations.jl : High-performance solvers of differential equations.
- SciML/ModelingToolkit.jl : A modeling framework for automatically parallelized scientific machine learning (SciML) in Julia.
- SciML/SciMLSensitivity.jl : A component of the DiffEq ecosystem for sensitivity analysis.
- SciML/Sundials.jl : A Julia package that interfaces to the Sundials library and includes a nonlinear solver (KINSOL), ODE's (CVODE), and DAE's (IDA).
Partial Differential Equations¶
- Wikipedia: Finite difference method
- Wikipedia: Finite element method
-
PtFEM/PtFEM.jl : Book "Programming the Finite Element Method" by I M Smith, D V Griffiths and L Margetts.
- CliMA/ClimaCore.jl : Tools for building spatial discretization. JuliaCon 2021 video
- cvdlab/LinearAlgebraicRepresentation.jl : Official Julia implementation of LAR, the Linear Algebraic Representation for Solid Modeling. LAR is a general representation scheme for geometric and topological modeling.
- FourierFlows/FourierFlows.jl : Tools for building fast, hackable, pseudospectral partial differential equation solvers on periodic domains.
- gridap/Gridap.jl : Grid-based approximation of PDEs with finite element (FE) discretization.
- j-fu/VoronoiFVM.jl : Solution of nonlinear multiphysics partial differential equation systems using the Voronoi finite volume method.
- JuliaFEM/FEMBasis.jl : Package contains interpolation routines for standard finite element function spaces.
- JuliaFEM/JuliaFEM.jl : Finite Element method solver.
- JuliaParallel/PETSc.jl : A Julia interface for PETSc.
- JuliaSmoothOptimizers/Krylov.jl : A Julia Basket of Hand-Picked Krylov Methods.
- lcw/Heptapus.jl : The roofline function is a translation of the roofline code, Accelerated finite element flow solvers.
- omlins/ParallelStencil.jl : writing high-level code for parallel high-performance stencil computations that can be deployed on both GPUs and CPUs.
- PetrKryslUCSD/FinEtools.jl :
FinEtools
is a package for basic operations on finite element meshes: Construction, modification, selection, and evaluation of quantities defined on a mesh. - SciML/MethodOfLines.jl : Automatic Finite Difference PDE solving with Julia.
- trixi-framework/Trixi.jl : Adaptive high-order numerical simulations of hyperbolic PDEs in Julia. JuliaCon 2021 video
Universal Differential Equations¶
- Jack-H-Buckner/UniversalDiffEq.jl : builds Universal Differential Equations (UDEs) to learn nonlinear dynamics from time series data.
- SciML/DiffEqFlux.jl : Combining DifferentialEquations.jl and Flux.jl as its building blocks to support research in Scientific Machine Learning, specifically neural differential equations and universal differential equations.
- SciML/NeuralOperators.jl : Learning the solution operator for partial differential equations in pure Julia.
- SciML/NeuralPDE.jl : Physics-Informed Neural Networks (PINN) and Deep BSDE Solvers of Differential Equations.
Stochastic algorithms¶
Wikipedia: Stochastic simulation algorithms (SSA) are also included in the DifferentialEquations
ecosystem.
- alanderos91/BioSimulator.jl : A stochastic simulation framework in Julia.
- SciML/StochasticDiffEq.jl : Solvers for stochastic differential equations in the SciML ecosystem.
- sdwfrost/Gillespie.jl : Stochastic Gillespie-type simulations using Julia.
Difference Equations¶
Encyclopedia of Mathematic: Difference equation
- JuliaDynamics/DynamicalSystems.jl : Julia software library for the exploration of chaos and nonlinear dynamics.
Agent-based models¶
- JuliaDynamics/Agents.jl : Agent-based modeling framework in Julia.
- JuliaDynamics/DynamicalBilliards.jl : An easy-to-use, modular and extendable Julia package for Dynamical Billiard systems in two dimensions.
- s-fuerst/Vahana.jl : A framework (not only) for large-scale agent-based models.
Network modeling¶
- mehalter/Petri.jl : Petri net modeling framework.
- PIK-ICoNe/NetworkDynamics.jl : A package for working with dynamical systems on complex network, providing an interface between
Graphs.jl
andDifferentialEquations.jl
.
Utilities¶
- bifurcationkit/BifurcationKit.jl : Bifurcation Analysis in Julia.
- JinraeKim/SimulationLogger.jl : providing convenient logging tools for
DifferentialEquations.jl
. - jonniedie/SimulationLogs.jl : Signal logging and scoping for
DifferentialEquations.jl
simulations. - JuliaDynamics/DrWatson.jl : dealing with simulations and simulation parameters.
- SciML/DataInterpolations.jl : Data interpolation and smoothing functions.
- SciML/SciMLBenchmarks.jl : Benchmarks for scientific machine learning (SciML) software and differential equation solvers. Benchmark results
Parameter estimation¶
- MarcusGalea/PhysicsInformedRegression.jl : solving inverse problems (parameter estimation) using physics informed regression. It requires well-defined derivatives. JuliaCon 2024 video
- SciML/DiffEqParamEstim.jl : a package for simplified parameter estimation with
DifferentialEquations.jl
. - SciML/SciMLSensitivity.jl : sensitivity analysis and parameter estimation.
Others¶
- madsjulia/Mads.jl : MADS, Model Analysis & Decision Support.
- ThummeTo/FMI.jl : integrating the Functional Mock-Up Interface.
- OpenModelica/OMJulia.jl : Julia scripting OpenModelica interface.