API Reference
The basic object hierarchy of PathSim is shown in the diagramm below. The Simulation manages the system components (derivatives of Block and Event, Connection).
System Definition and Simulation
The following modules serve the system definition and simulation. In PathSim, systems are defined by instantiating blocks from the block library blocks and connecting them using Connection objects. PathSim also supports hierarchical modling through subsystems with the Subsystem class, which holds internal blocks and connections and behaves just like a normal block from the outside.
Simulation
- pathsim.simulation
SimulationSimulation.timeSimulation.graphSimulation.engineSimulation.loggerSimulation._needs_bufferingSimulation._blocks_dynSimulation.size()Simulation.plot()Simulation.save()Simulation.load()Simulation.to_dict()Simulation.from_dict()Simulation.add_block()Simulation.add_connection()Simulation.add_event()Simulation.reset()Simulation.linearize()Simulation.delinearize()Simulation.steadystate()Simulation.timestep_fixed_explicit()Simulation.timestep_fixed_implicit()Simulation.timestep_adaptive_explicit()Simulation.timestep_adaptive_implicit()Simulation.timestep()Simulation.step()Simulation.run()
Subsystem (hierarchical modeling)
- pathsim.subsystem
InterfaceSubsystemSubsystem.interfaceSubsystem.size()Subsystem.plot()Subsystem.reset()Subsystem.on()Subsystem.off()Subsystem.linearize()Subsystem.delinearize()Subsystem.to_dict()Subsystem.from_dict()Subsystem.get_events()Subsystem.inputsSubsystem.outputsSubsystem.sample()Subsystem.update()Subsystem.solve()Subsystem.step()Subsystem.set_solver()Subsystem.revert()Subsystem.buffer()
Connection
Block Library
- pathsim.blocks
- pathsim.blocks._block module
BlockBlock.inputsBlock.outputsBlock.engineBlock.eventsBlock._activeBlock.op_algBlock.op_dynBlock.size()Block.plot()Block.on()Block.off()Block.reset()Block.linearize()Block.delinearize()Block.get_events()Block.set_solver()Block.revert()Block.buffer()Block.sample()Block.get_all()Block.update()Block.solve()Block.step()
- pathsim.blocks.adder module
- pathsim.blocks.amplifier module
- pathsim.blocks.delay module
- pathsim.blocks.differentiator module
- pathsim.blocks.function module
- pathsim.blocks.integrator module
- pathsim.blocks.lti module
- pathsim.blocks.multiplier module
- pathsim.blocks.ode module
- pathsim.blocks.rng module
- pathsim.blocks.scope module
- pathsim.blocks.sources module
ConstantSourceTriangleWaveSourceSinusoidalSourceGaussianPulseSourceSinusoidalPhaseNoiseSourceSinusoidalPhaseNoiseSource.omegaSinusoidalPhaseNoiseSource.noise_1SinusoidalPhaseNoiseSource.noise_2SinusoidalPhaseNoiseSource.n_samplesSinusoidalPhaseNoiseSource.t_maxSinusoidalPhaseNoiseSource.set_solver()SinusoidalPhaseNoiseSource.reset()SinusoidalPhaseNoiseSource.update()SinusoidalPhaseNoiseSource.sample()SinusoidalPhaseNoiseSource.solve()SinusoidalPhaseNoiseSource.step()
ChirpPhaseNoiseSourceChirpSourcePulseSourcePulseClockSourceClockSquareWaveSourceStepSourceStep
- pathsim.blocks.switch module
- pathsim.blocks.spectrum module
- pathsim.blocks.wrapper module
- pathsim.blocks.ctrl module
- pathsim.blocks.noise module
- pathsim.blocks.filters module
- pathsim.blocks.fir module
- pathsim.blocks.converters module
- pathsim.blocks.samplehold module
- pathsim.blocks.comparator module
- pathsim.blocks._block module
ODE Solvers
The numerical ODE solvers, available in PathSim are structured like this:
Solvers
- pathsim.solvers
- pathsim.solvers._solver module
- pathsim.solvers._rungekutta module
ExplicitRungeKuttaDiagonallyImplicitRungeKuttaDiagonallyImplicitRungeKutta.nDiagonallyImplicitRungeKutta.mDiagonallyImplicitRungeKutta.sDiagonallyImplicitRungeKutta.betaDiagonallyImplicitRungeKutta.KsDiagonallyImplicitRungeKutta.BTDiagonallyImplicitRungeKutta.ADiagonallyImplicitRungeKutta.TRDiagonallyImplicitRungeKutta.error_controller()DiagonallyImplicitRungeKutta.solve()DiagonallyImplicitRungeKutta.step()
- pathsim.solvers.euler module
- pathsim.solvers.ssprk22 module
- pathsim.solvers.ssprk33 module
- pathsim.solvers.ssprk34 module
- pathsim.solvers.rk4 module
- pathsim.solvers.rkbs32 module
- pathsim.solvers.rkck54 module
- pathsim.solvers.rkdp54 module
- pathsim.solvers.rkdp87 module
- pathsim.solvers.rkf21 module
- pathsim.solvers.rkf45 module
- pathsim.solvers.rkf78 module
- pathsim.solvers.rkv65 module
- pathsim.solvers.bdf module
- pathsim.solvers.gear module
- pathsim.solvers.dirk2 module
- pathsim.solvers.dirk3 module
- pathsim.solvers.esdirk32 module
- pathsim.solvers.esdirk4 module
- pathsim.solvers.esdirk43 module
- pathsim.solvers.esdirk54 module
- pathsim.solvers.esdirk85 module
- pathsim.solvers.steadystate module
Optimizers and Automatic Differentiation
The optim module contains a range of nonlinear solvers / optimizers that are primarily used for the implicit update equation of implicit ODE solvers and for the steadystate solver. This module also includes the automatic differentiation framework.
Optim
- pathsim.optim
- pathsim.optim.anderson module
- pathsim.optim.value module
der()jac()var()autojac()add_funcs()ValueValue._idValue.valValue.gradValue.sigValue.realValue.imagValue.numeric()Value.array()Value.der()Value.jac()Value.var()Value.absoluteValue.angle()Value.arccosValue.arccoshValue.arcsinValue.arcsinhValue.arctanValue.arctanhValue.cbrtValue.conjugateValue.cosValue.coshValue.expValue.exp2Value.expm1Value.logValue.log10Value.log1pValue.log2Value.powerValue.signValue.sinValue.sinhValue.sqrtValue.squareValue.tanValue.tanh
- pathsim.optim.numerical module
- pathsim.optim.operator module
Utilities
Utility functions and classes.
Utils
- pathsim.utils