SysSimX Documentation#

Python 3.11+ MIT License

SysSimX is a free and open-source Python library for system simulation. It allows you to build hybrid and heterogenous system models by connecting system component models from different environments, including:

Note

SysSimX targets researchers and engineers who need to couple multi-physics models across simulation environments, especially in mechanical, electrical, and biomechanical systems.

Start Here#

Quick Example#

from syssimx import System, Connection
from syssimx.components import FMUComponent

# Create and configure components
pendulum = FMUComponent("Pendulum", fmu_path="Pendulum.fmu")
controller = FMUComponent("PID", fmu_path="Controller.fmu")

# Build system with connections
system = System(name="ControlledPendulum")
system.add_component(pendulum)
system.add_component(controller)
system.add_connection(Connection(
    src_comp="Pendulum", src_port="angle",
    dst_comp="PID", dst_port="measurement"
))

# Run simulation
system.initialize(t0=0.0)
system.run(t0=0.0, tf=10.0, dt=0.001)

Key Features#

Graph-Based Execution

Automatic dependency analysis with direct feedthrough and algebraic loop detection. Components are executed in topologically sorted order.

Algebraic Loop Handling

Detection and iterative solving using the Interface Jacobian-based Co-Simulation Algorithm (IJCSA).

Hybrid Co-Simulation

Event detection via zero-crossing indicators with bisection-based time localization and superdense time semantics.

Multiple Master Algorithms

Choose from Jacobi (parallel), Gauss-Seidel (sequential), or Hybrid (event-driven) algorithms.

Multi-Tool Integration

Seamlessly connect FMUs, OpenSim models, and NGSolve FEM models in a single system.

Multi-Model Switching

Dynamically switch between multiple models of the same component during simulation.

Unit-Aware Connections

Automatic unit conversion between ports using Pint.

Extensible Components

Implement custom components in Python or wrap external tools and FMUs.

Contents#

Indices and Tables#