modelingtoolkit
adapters.modelingtoolkit
Standalone ModelingToolkit.jl backend adapter for SimulationExperiment.
Pure MTK adapter using component? + mtkcompile + ODEProblem + solve. No dependency on NetworkDynamics.jl.
Key capability: symbolic round-trip. tvbo’s SymPy equations are rendered to MTK Julia code, MTK’s mtkcompile performs structural transformations (e.g. higher-order ODE lowering), and the resulting equations are extracted back into SymPy.
Classes
| Name | Description |
|---|---|
| ModelingToolkitAdapter | Adapter for running SimulationExperiment via pure ModelingToolkit.jl. |
ModelingToolkitAdapter
adapters.modelingtoolkit.ModelingToolkitAdapter(source=None)Adapter for running SimulationExperiment via pure ModelingToolkit.jl.
Uses component? syntax (MTK v11+), mtkcompile, ODEProblem, and solve.
Accepts Dynamics, SimulationExperiment, or no argument::
adapter = ModelingToolkitAdapter() # empty, set .experiment later
adapter = ModelingToolkitAdapter(dynamics) # wraps in minimal experiment
adapter = ModelingToolkitAdapter(exp) # full experiment
Methods
| Name | Description |
|---|---|
| lower | Lower higher-order ODEs via MTK’s mtkcompile. |
| render_code | Render Julia code using the standalone MTK template. |
| run | Run simulation using pure ModelingToolkit.jl. |
lower
adapters.modelingtoolkit.ModelingToolkitAdapter.lower(
source=None,
returns='auto',
**kwargs,
)Lower higher-order ODEs via MTK’s mtkcompile.
Performs a symbolic round-trip: tvbo → MTK Julia → mtkcompile → lowered first-order SymPy equations, optionally wrapped back into a tvbo Dynamics or SimulationExperiment.
Parameters
source : Dynamics | SimulationExperiment, optional The system to lower. Can also be set at init time. returns : str What to return:
- ``"sympy"`` — dict of SymPy equations, unknowns, parameters
- ``"dynamics"`` — tvbo ``Dynamics`` with lowered equations
- ``"experiment"`` — tvbo ``SimulationExperiment`` with lowered
dynamics
- ``"auto"`` (default) — same type as the input: ``Dynamics``
if given ``Dynamics``, ``SimulationExperiment`` if given an
experiment, ``"sympy"`` if empty.
Returns
dict | Dynamics | SimulationExperiment
render_code
adapters.modelingtoolkit.ModelingToolkitAdapter.render_code(**kwargs)Render Julia code using the standalone MTK template.
run
adapters.modelingtoolkit.ModelingToolkitAdapter.run(**kwargs)Run simulation using pure ModelingToolkit.jl.
Returns
ExperimentResult Simulation results with named dimensions and coordinates.