Co-simulation is an interface for simulating two complex system models of varying nature and complexity. When modeling complex systems containing subsystems, each subsystem can require a specialized software and simulation environment. Co-simulation enables exchange between various modeling environments in which a mother system and various subsystems constantly interact with each other by sharing and exchanging system-state data.