pathsim 0.25.1__tar.gz → 0.27.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pathsim-0.25.1 → pathsim-0.27.0}/PKG-INFO +2 -2
- {pathsim-0.25.1 → pathsim-0.27.0}/pyproject.toml +1 -1
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/_version.py +3 -3
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/dae.py +153 -23
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/graph.py +15 -11
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim.egg-info/PKG-INFO +2 -2
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim.egg-info/SOURCES.txt +0 -97
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim.egg-info/scm_file_list.json +0 -97
- pathsim-0.27.0/src/pathsim.egg-info/scm_version.json +8 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_dae.py +135 -6
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/test_simulation.py +72 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_graph.py +67 -0
- pathsim-0.25.1/docs/.readthedocs.yaml +0 -25
- pathsim-0.25.1/docs/Makefile +0 -20
- pathsim-0.25.1/docs/requirements.txt +0 -16
- pathsim-0.25.1/docs/source/_ext/github_issues.py +0 -107
- pathsim-0.25.1/docs/source/_static/custom.css +0 -200
- pathsim-0.25.1/docs/source/_static/redirect.js +0 -8
- pathsim-0.25.1/docs/source/api.rst +0 -137
- pathsim-0.25.1/docs/source/conf.py +0 -156
- pathsim-0.25.1/docs/source/contributing.rst +0 -25
- pathsim-0.25.1/docs/source/examples.rst +0 -336
- pathsim-0.25.1/docs/source/figures/pathsim_object_hierarchy_g.png +0 -0
- pathsim-0.25.1/docs/source/figures/pathsim_solver_hierarchy_g.png +0 -0
- pathsim-0.25.1/docs/source/figures/sin_cos_blockdiagram_g.png +0 -0
- pathsim-0.25.1/docs/source/figures/system_g.png +0 -0
- pathsim-0.25.1/docs/source/index.rst +0 -180
- pathsim-0.25.1/docs/source/modules/pathsim.blocks._block.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.adder.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.amplifier.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.comparator.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.converters.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.counter.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.ctrl.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.delay.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.differentiator.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.discrete.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.dynsys.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.filters.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.fmu.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.function.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.integrator.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.kalman.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.lti.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.math.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.multiplier.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.noise.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.ode.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.relay.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.rf.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.rng.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.rst +0 -309
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.scope.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.sources.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.spectrum.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.switch.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.table.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.blocks.wrapper.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.connection.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.events._event.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.events.condition.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.events.rst +0 -55
- pathsim-0.25.1/docs/source/modules/pathsim.events.schedule.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.events.zerocrossing.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.optim.anderson.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.optim.booster.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.optim.numerical.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.optim.operator.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.optim.rst +0 -44
- pathsim-0.25.1/docs/source/modules/pathsim.simulation.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers._rungekutta.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers._solver.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.bdf.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.dirk2.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.dirk3.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.esdirk32.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.esdirk4.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.esdirk43.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.esdirk54.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.esdirk85.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.euler.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.gear.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.rk4.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.rkbs32.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.rkck54.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.rkdp54.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.rkdp87.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.rkf21.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.rkf45.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.rkf78.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.rkv65.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.rst +0 -232
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.ssprk22.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.ssprk33.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.ssprk34.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.solvers.steadystate.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.subsystem.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.utils.adaptivebuffer.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.utils.analysis.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.utils.gilbert.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.utils.logger.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.utils.portreference.rst +0 -9
- pathsim-0.25.1/docs/source/modules/pathsim.utils.progresstracker.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.utils.realtimeplotter.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.utils.register.rst +0 -7
- pathsim-0.25.1/docs/source/modules/pathsim.utils.rst +0 -73
- pathsim-0.25.1/docs/source/quickstart.ipynb +0 -168
- pathsim-0.25.1/docs/source/roadmap.rst +0 -10
- pathsim-0.25.1/docs/source/roadmap_generated.rst +0 -228
- pathsim-0.25.1/src/pathsim.egg-info/scm_version.json +0 -8
- {pathsim-0.25.1 → pathsim-0.27.0}/.codecov.yml +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/.github/FUNDING.yml +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/.github/pull_request_template.md +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/.github/workflows/pypi_deployment.yml +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/.github/workflows/tests_codecov.yml +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/.github/workflows/urlchecker.yml +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/.gitignore +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/CITATION.cff +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/CONTRIBUTING.md +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/LICENSE.txt +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/README.md +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/conftest.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/abs_braking.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/algebraic_loop.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/billards.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/bouncing_ball.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/bouncing_pendulum.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/cascade_controller.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/checkpoints.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/chemical_reactor.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/coupled_oscillators.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/data/BouncingBall_ME.fmu +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/data/CoupledClutches_CS_linux64.fmu +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/data/CoupledClutches_CS_win64.fmu +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/data/Dahlquist.fmu +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/data/VanDerPol_ME.fmu +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/dcmotor_control.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/delta_sigma_adc.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/diode_circuit.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/elastic_pendulum.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/algebraicloop_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/billard_circle_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/bouncing_ball_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/bouncing_ball_both_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/bouncing_ball_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/bouncing_ball_result_events_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/bouncing_ball_result_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/bouncing_ball_result_timesteps_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/bouncing_pendulum_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/cascade_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/coupled_oscillators_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/coupled_oscillators_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/delta_sigma_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/diode_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/elastic_pendulum_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/fmcw_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/fmcw_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/harmonic_oscillator_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/harmonic_oscillator_result_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/kalman_filter_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/linear_feedback_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/linear_feedback_result_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/linear_feedback_result_sensitivity_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/miller_frequency_divider_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/nonlinear_noisy_amplifier_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/ode_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/pendulum_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/pid_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/sar_adc_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/stick_slip_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/stick_slip_blockdiagram_slip_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/stick_slip_blockdiagram_stick_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/stick_slip_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/thermostat_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/vanderpol_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/vanderpol_result_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/vanderpol_subsystem_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/vanderpol_subsystem_lvl1_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/vanderpol_subsystem_lvl2_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/vanderpol_subsystem_lvl3_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/figures_g/volterralotka_blockdiagram_g.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/ode_blockdiagram_2.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/stick_slip_blockdiagram_slip.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/figures/stick_slip_blockdiagram_stick.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/fmcw_radar.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/fmu_cosimulation.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/fmu_model_exchange_bouncing_ball.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/fmu_model_exchange_vanderpol.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/harmonic_oscillator.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/kalman_filter.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/linear_feedback.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/lorenz_attractor.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/nested_subsystems.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/noisy_amplifier.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/pendulum.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/pid_controller.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/poincare_maps.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/rf_network_oneport.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/sar_adc.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/spectrum_analysis.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/stick_slip.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/switched_bouncing_ball.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/thermostat.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/transfer_function.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/examples/vanderpol.ipynb +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/logos/pathsim_icon.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/logos/pathsim_logo.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/logos/pathsim_simplistic_logo.png +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/docs/source/pathsim_docs.mplstyle +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_abs_braking.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_adc.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_algebraicchain.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_algebraicloop.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_cascade.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_dcmotor.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_deltasigma.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_derivative.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_diode.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_dualslope.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_elastic_pendulum.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_feedback.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_filters.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_harmonic_oscillator.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_kalman_filter.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_nested_subsystems.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_noise.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_pendulum.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_phasenoise.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_pid.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_pid_antiwindup.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_pid_vs_discretePID.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_radar.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_reactor.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_sar.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_solar.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_solver_hotswap.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_spectrum.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_spectrum_rf_oneport.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_steadystate.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_stickslip.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_transferfunction.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/example_vanderpol_subsystem.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_event/example_billards_sphere.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_event/example_bouncing_pendulum.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_event/example_bouncingball.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_event/example_bouncingball_friction.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_event/example_bouncingball_switched.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_event/example_integrator_reset.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_event/example_pulse.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_event/example_stickslip_event.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_event/example_thermostat.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_event/example_volterralotka_event.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_bonhoeffer_vanderpol.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_brusselator.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_chemical.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_duffing.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_fairen_velarde.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_fitzhughnagumo.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_flame.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_glycolysis.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_lorenz.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_morse.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_robertson.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_roessler.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_thomas_cyclic.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_vanderpol.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/examples/examples_odes/example_volterralotka.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/git +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/setup.cfg +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/_constants.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/README.md +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/_block.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/adder.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/amplifier.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/bvp.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/comparator.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/constraint.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/converters.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/counter.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/ctrl.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/delay.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/differentiator.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/discrete.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/divider.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/dynsys.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/filters.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/fmu.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/function.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/integrator.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/kalman.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/logic.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/lti.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/math.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/multiplier.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/noise.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/ode.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/relay.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/rf.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/rng.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/scope.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/sources.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/spectrum.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/switch.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/table.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/blocks/wrapper.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/connection.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/events/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/events/_event.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/events/condition.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/events/schedule.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/events/zerocrossing.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/exceptions.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/optim/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/optim/anderson.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/optim/booster.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/optim/linearization.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/optim/newton.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/optim/numerical.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/optim/operator.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/simulation.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/README.md +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/_rungekutta.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/_solver.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/bdf.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/dirk2.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/dirk3.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/esdirk32.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/esdirk4.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/esdirk43.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/esdirk54.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/esdirk85.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/euler.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/gear.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/rk4.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/rkbs32.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/rkck54.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/rkdp54.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/rkdp87.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/rkf21.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/rkf45.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/rkf78.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/rkv65.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/ssprk22.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/ssprk33.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/ssprk34.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/solvers/steadystate.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/subsystem.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/adaptivebuffer.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/analysis.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/deprecation.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/diagnostics.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/fmuwrapper.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/gilbert.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/logger.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/mutable.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/portreference.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/progresstracker.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/realtimeplotter.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim/utils/register.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim.egg-info/dependency_links.txt +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim.egg-info/requires.txt +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/src/pathsim.egg-info/top_level.txt +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/README.md +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/CoupledClutches_CS.fmu +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/conftest.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_algebraic_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_bouncingball_friction_event_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_bouncingball_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_brusselator_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_cosim_fmu_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_counter_comparator_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_dynamical_system_ivp.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_fitzhughnagumo_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_harmonic_oscillator_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_linear_feedback_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_logic_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_lorenz_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_me_analytical.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_model_exchange_fmu_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_pid_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_relay_thermostat_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_rescale_delay_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_robertson_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_roessler_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_signal_processing_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_steadystate_transient_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_switch_lti_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_vanderpol_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/evals/test_volterralotka_system.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/_embedding.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/rf/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/rf/ring_slot.s2p +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/rf/ring_slot_meas.s1p +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/rf/test_rf.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_adder.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_amplifier.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_block.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_bvp.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_comparator.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_constraint.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_converters.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_counter.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_ctrl.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_delay.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_differentiator.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_discrete.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_divider.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_dynsys.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_filters.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_fmu.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_function.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_integrator.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_kalman.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_logic.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_lti.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_math.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_multiplier.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_noise.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_ode.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_relay.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_rng.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_scope.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_sources.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_spectrum.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_switch.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_table.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/blocks/test_wrapper.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/events/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/events/test_condition.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/events/test_event.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/events/test_schedule.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/events/test_zerocrossing.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/optim/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/optim/test_anderson.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/optim/test_linearization.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/optim/test_newton.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/optim/test_numerical.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/optim/test_operator.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/_referenceproblems.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_bdf.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_dirk2.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_dirk3.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_esdirk32.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_esdirk4.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_esdirk43.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_esdirk54.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_esdirk85.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_euler.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_gear.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_rfk21.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_rk4.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_rkbs32.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_rkck54.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_rkdp54.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_rkdp87.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_rkf45.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_rkf78.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_rkv65.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_solver.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_ssprk22.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_ssprk33.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_ssprk34.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/solvers/test_steadystate.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/test_auto_initial_step.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/test_checkpoint.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/test_connection.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/test_diagnostics.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/test_simulation_pss.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/test_subsystem.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/__init__.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_adaptivebuffer.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_analysis.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_fmuwrapper.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_gilbert.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_logger.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_mutable.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_portreference.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_progresstracker.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_realtimeplotter.py +0 -0
- {pathsim-0.25.1 → pathsim-0.27.0}/tests/pathsim/utils/test_register.py +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pathsim
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.27.0
|
|
4
4
|
Summary: A differentiable block based hybrid system simulation framework.
|
|
5
5
|
Author-email: Milan Rother <milan.rother@gmx.de>
|
|
6
6
|
License: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/pathsim/pathsim
|
|
8
|
-
Project-URL: documentation, https://pathsim.
|
|
8
|
+
Project-URL: documentation, https://docs.pathsim.org
|
|
9
9
|
Keywords: simulation,differentiable,hybrid systems
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -28,7 +28,7 @@ test = ["pytest", "pytest-cov", "pytest-xdist", "FMPy", "scikit-rf"]
|
|
|
28
28
|
|
|
29
29
|
[project.urls]
|
|
30
30
|
Homepage = "https://github.com/pathsim/pathsim"
|
|
31
|
-
documentation = "https://pathsim.
|
|
31
|
+
documentation = "https://docs.pathsim.org"
|
|
32
32
|
|
|
33
33
|
[tool.pytest.ini_options]
|
|
34
34
|
addopts = "-m 'not slow'"
|
|
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
|
|
|
18
18
|
commit_id: str | None
|
|
19
19
|
__commit_id__: str | None
|
|
20
20
|
|
|
21
|
-
__version__ = version = '0.
|
|
22
|
-
__version_tuple__ = version_tuple = (0,
|
|
21
|
+
__version__ = version = '0.27.0'
|
|
22
|
+
__version_tuple__ = version_tuple = (0, 27, 0)
|
|
23
23
|
|
|
24
|
-
__commit_id__ = commit_id = '
|
|
24
|
+
__commit_id__ = commit_id = 'g2cbb2f919'
|
|
@@ -16,6 +16,8 @@ from ._block import Block
|
|
|
16
16
|
from ..optim.operator import DynamicOperator
|
|
17
17
|
from ..optim.anderson import NewtonAnderson, solve_root
|
|
18
18
|
|
|
19
|
+
from .._constants import SOL_TOLERANCE_FPI
|
|
20
|
+
|
|
19
21
|
|
|
20
22
|
# BLOCKS ================================================================================
|
|
21
23
|
|
|
@@ -54,10 +56,22 @@ class SemiExplicitDAE(Block):
|
|
|
54
56
|
Note
|
|
55
57
|
----
|
|
56
58
|
The reduced Jacobian :math:`\\partial \\dot{x} / \\partial x` handed to
|
|
57
|
-
implicit solvers
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
implicit solvers follows from the implicit function theorem,
|
|
60
|
+
|
|
61
|
+
.. math::
|
|
62
|
+
|
|
63
|
+
\\frac{\\partial \\dot{x}}{\\partial x}
|
|
64
|
+
= \\frac{\\partial f_\\mathrm{dyn}}{\\partial x}
|
|
65
|
+
- \\frac{\\partial f_\\mathrm{dyn}}{\\partial z}
|
|
66
|
+
\\left(\\frac{\\partial f_\\mathrm{alg}}{\\partial z}\\right)^{-1}
|
|
67
|
+
\\frac{\\partial f_\\mathrm{alg}}{\\partial x}
|
|
68
|
+
|
|
69
|
+
It is used analytically when `jac_z`, `jac_dyn_x`, `jac_dyn_z` and
|
|
70
|
+
`jac_alg_x` are all supplied, otherwise it is approximated by central
|
|
71
|
+
finite differences through the eliminated constraint, which requires one
|
|
72
|
+
constraint solve per differential state and becomes expensive for large
|
|
73
|
+
systems. An analytical `jac_z` alone accelerates the inner constraint
|
|
74
|
+
solve.
|
|
61
75
|
|
|
62
76
|
Example
|
|
63
77
|
-------
|
|
@@ -99,6 +113,19 @@ class SemiExplicitDAE(Block):
|
|
|
99
113
|
optional analytical jacobian of `func_alg` with respect to `z` with
|
|
100
114
|
signature `jac_z(x, z, u, t)`, central finite differences are used if
|
|
101
115
|
`None`
|
|
116
|
+
jac_dyn_x : callable, None
|
|
117
|
+
optional analytical jacobian of `func_dyn` with respect to `x` with
|
|
118
|
+
signature `jac_dyn_x(x, z, u, t)`, used for the reduced jacobian
|
|
119
|
+
jac_dyn_z : callable, None
|
|
120
|
+
optional analytical jacobian of `func_dyn` with respect to `z` with
|
|
121
|
+
signature `jac_dyn_z(x, z, u, t)`, used for the reduced jacobian
|
|
122
|
+
jac_alg_x : callable, None
|
|
123
|
+
optional analytical jacobian of `func_alg` with respect to `x` with
|
|
124
|
+
signature `jac_alg_x(x, z, u, t)`, used for the reduced jacobian
|
|
125
|
+
tolerance : float
|
|
126
|
+
convergence tolerance on the residual norm of the algebraic constraint
|
|
127
|
+
solve, loosen it for ill-conditioned constraints whose residual cannot
|
|
128
|
+
reach the default due to roundoff
|
|
102
129
|
|
|
103
130
|
Attributes
|
|
104
131
|
----------
|
|
@@ -117,7 +144,11 @@ class SemiExplicitDAE(Block):
|
|
|
117
144
|
func_alg=lambda x, z, u, t: z,
|
|
118
145
|
initial_value=0.0,
|
|
119
146
|
z0=0.0,
|
|
120
|
-
jac_z=None
|
|
147
|
+
jac_z=None,
|
|
148
|
+
jac_dyn_x=None,
|
|
149
|
+
jac_dyn_z=None,
|
|
150
|
+
jac_alg_x=None,
|
|
151
|
+
tolerance=SOL_TOLERANCE_FPI
|
|
121
152
|
):
|
|
122
153
|
|
|
123
154
|
super().__init__()
|
|
@@ -126,9 +157,17 @@ class SemiExplicitDAE(Block):
|
|
|
126
157
|
self.func_dyn = func_dyn
|
|
127
158
|
self.func_alg = func_alg
|
|
128
159
|
|
|
160
|
+
#convergence tolerance of the algebraic constraint solve
|
|
161
|
+
self.tolerance = tolerance
|
|
162
|
+
|
|
129
163
|
#optional analytical jacobian of the constraint w.r.t. z
|
|
130
164
|
self.jac_z = jac_z
|
|
131
165
|
|
|
166
|
+
#optional analytical jacobians for the reduced jacobian
|
|
167
|
+
self.jac_dyn_x = jac_dyn_x
|
|
168
|
+
self.jac_dyn_z = jac_dyn_z
|
|
169
|
+
self.jac_alg_x = jac_alg_x
|
|
170
|
+
|
|
132
171
|
#initial condition of the differential states (drives the engine)
|
|
133
172
|
self.initial_value = np.atleast_1d(initial_value).astype(float)
|
|
134
173
|
|
|
@@ -140,8 +179,12 @@ class SemiExplicitDAE(Block):
|
|
|
140
179
|
self.opt = NewtonAnderson()
|
|
141
180
|
|
|
142
181
|
#dynamic operator for the reduced right hand side, mirrors the ODE block
|
|
143
|
-
#and supplies the engine Jacobian through 'op_dyn.jac_x'
|
|
144
|
-
|
|
182
|
+
#and supplies the engine Jacobian through 'op_dyn.jac_x'; the reduced
|
|
183
|
+
#Jacobian is analytic (implicit function theorem) when all jacobians
|
|
184
|
+
#are given, otherwise the operator falls back to finite differences
|
|
185
|
+
_all_jacs = (jac_z, jac_dyn_x, jac_dyn_z, jac_alg_x)
|
|
186
|
+
_jac_x = self._reduced_jac if all(j is not None for j in _all_jacs) else None
|
|
187
|
+
self.op_dyn = DynamicOperator(func=self._rhs, jac_x=_jac_x)
|
|
145
188
|
|
|
146
189
|
#pre-size the output register to the stacked state [x, z]
|
|
147
190
|
self.outputs.update_from_array(
|
|
@@ -188,7 +231,7 @@ class SemiExplicitDAE(Block):
|
|
|
188
231
|
"""
|
|
189
232
|
_func = lambda z: self.func_alg(x, z, u, t)
|
|
190
233
|
_jac = None if self.jac_z is None else (lambda z: self.jac_z(x, z, u, t))
|
|
191
|
-
z, _, _ = solve_root(self.opt, _func, self._z, _jac)
|
|
234
|
+
z, _, _ = solve_root(self.opt, _func, self._z, _jac, tolerance=self.tolerance)
|
|
192
235
|
return z
|
|
193
236
|
|
|
194
237
|
|
|
@@ -213,6 +256,33 @@ class SemiExplicitDAE(Block):
|
|
|
213
256
|
return self.func_dyn(x, self._solve_z(x, u, t), u, t)
|
|
214
257
|
|
|
215
258
|
|
|
259
|
+
def _reduced_jac(self, x, u, t):
|
|
260
|
+
"""Analytical reduced Jacobian from the implicit function theorem,
|
|
261
|
+
:math:`f_x - f_z (g_z)^{-1} g_x` with the dynamic part `f` and the
|
|
262
|
+
algebraic constraint `g`.
|
|
263
|
+
|
|
264
|
+
Parameters
|
|
265
|
+
----------
|
|
266
|
+
x : array[float]
|
|
267
|
+
current differential states
|
|
268
|
+
u : array[float]
|
|
269
|
+
current block input
|
|
270
|
+
t : float
|
|
271
|
+
evaluation time
|
|
272
|
+
|
|
273
|
+
Returns
|
|
274
|
+
-------
|
|
275
|
+
J : array[array[float]]
|
|
276
|
+
reduced jacobian of the differential states
|
|
277
|
+
"""
|
|
278
|
+
z = self._solve_z(x, u, t)
|
|
279
|
+
fx = np.atleast_2d(self.jac_dyn_x(x, z, u, t))
|
|
280
|
+
fz = np.atleast_2d(self.jac_dyn_z(x, z, u, t))
|
|
281
|
+
gx = np.atleast_2d(self.jac_alg_x(x, z, u, t))
|
|
282
|
+
gz = np.atleast_2d(self.jac_z(x, z, u, t))
|
|
283
|
+
return fx - fz @ np.linalg.solve(gz, gx)
|
|
284
|
+
|
|
285
|
+
|
|
216
286
|
def update(self, t):
|
|
217
287
|
"""Eliminate the algebraic states for the current input and expose the
|
|
218
288
|
stacked state [x, z] at the output.
|
|
@@ -354,6 +424,10 @@ class MassMatrixDAE(Block):
|
|
|
354
424
|
jac : callable, None
|
|
355
425
|
optional analytical jacobian of `func` with respect to `x` with
|
|
356
426
|
signature `jac(x, u, t)`, central finite differences are used if `None`
|
|
427
|
+
tolerance : float
|
|
428
|
+
convergence tolerance on the residual norm of the algebraic constraint
|
|
429
|
+
solve, loosen it for ill-conditioned constraints whose residual cannot
|
|
430
|
+
reach the default due to roundoff
|
|
357
431
|
|
|
358
432
|
Attributes
|
|
359
433
|
----------
|
|
@@ -367,13 +441,24 @@ class MassMatrixDAE(Block):
|
|
|
367
441
|
internal Newton-Anderson optimizer for the algebraic constraints
|
|
368
442
|
"""
|
|
369
443
|
|
|
370
|
-
def __init__(
|
|
444
|
+
def __init__(
|
|
445
|
+
self,
|
|
446
|
+
func=lambda x, u, t: -x,
|
|
447
|
+
mass=1.0,
|
|
448
|
+
initial_value=0.0,
|
|
449
|
+
jac=None,
|
|
450
|
+
tolerance=SOL_TOLERANCE_FPI
|
|
451
|
+
):
|
|
452
|
+
|
|
371
453
|
super().__init__()
|
|
372
454
|
|
|
373
455
|
#right hand side and optional analytical jacobian
|
|
374
456
|
self.func = func
|
|
375
457
|
self.jac = jac
|
|
376
458
|
|
|
459
|
+
#convergence tolerance of the algebraic constraint solve
|
|
460
|
+
self.tolerance = tolerance
|
|
461
|
+
|
|
377
462
|
#constant mass matrix
|
|
378
463
|
M = np.atleast_2d(np.asarray(mass, dtype=float))
|
|
379
464
|
n = M.shape[0]
|
|
@@ -389,20 +474,54 @@ class MassMatrixDAE(Block):
|
|
|
389
474
|
)
|
|
390
475
|
self._x0 = x0
|
|
391
476
|
|
|
392
|
-
#partition into differential (nonzero
|
|
393
|
-
|
|
394
|
-
self._d = np.flatnonzero(
|
|
395
|
-
self._a = np.flatnonzero(~
|
|
477
|
+
#partition into differential (nonzero column) and algebraic (zero column) states
|
|
478
|
+
_nonzero_column = np.any(M != 0.0, axis=0)
|
|
479
|
+
self._d = np.flatnonzero(_nonzero_column)
|
|
480
|
+
self._a = np.flatnonzero(~_nonzero_column)
|
|
481
|
+
|
|
482
|
+
#partition into differential (nonzero row) and algebraic (zero row) equations
|
|
483
|
+
_non_zero_rows = np.any(M != 0.0, axis=1)
|
|
484
|
+
self._d_equations = np.flatnonzero(_non_zero_rows)
|
|
485
|
+
self._a_equations = np.flatnonzero(~_non_zero_rows)
|
|
396
486
|
|
|
397
487
|
#index-1 form: differential rows must not weight algebraic derivatives
|
|
398
|
-
if self._a.size and np.any(M[np.ix_(self.
|
|
488
|
+
if self._a.size and np.any(M[np.ix_(self._d_equations, self._a)] != 0.0):
|
|
399
489
|
raise ValueError(
|
|
400
490
|
"mass matrix is not in index-1 form: differential rows couple "
|
|
401
491
|
"to the derivatives of algebraic states"
|
|
402
492
|
)
|
|
403
493
|
|
|
404
|
-
#
|
|
405
|
-
|
|
494
|
+
#factorise the constant differential mass block when it is square; use
|
|
495
|
+
#the pseudoinverse for rectangular reduced systems so underdetermined
|
|
496
|
+
#differential blocks still admit a minimum-norm solution.
|
|
497
|
+
self._d_mass = M[np.ix_(self._d_equations, self._d)]
|
|
498
|
+
if self._d_mass.shape[0] == self._d_mass.shape[1]:
|
|
499
|
+
self._lu = lu_factor(self._d_mass)
|
|
500
|
+
self._solve_mass_rhs = lambda rhs: lu_solve(self._lu, rhs)
|
|
501
|
+
self._solve_mass_matrix = lambda mat: lu_solve(self._lu, mat)
|
|
502
|
+
else:
|
|
503
|
+
# Use SVD once and apply the pseudoinverse implicitly for stability
|
|
504
|
+
# and to avoid forming a dense pseudoinverse matrix.
|
|
505
|
+
U, s, Vt = np.linalg.svd(self._d_mass, full_matrices=False)
|
|
506
|
+
eps = np.finfo(float).eps
|
|
507
|
+
tol = max(self._d_mass.shape) * (s.max() if s.size else 0.0) * eps
|
|
508
|
+
s_inv = np.array([1.0/si if si > tol else 0.0 for si in s])
|
|
509
|
+
|
|
510
|
+
# store factors (optional) and set solver callables
|
|
511
|
+
self._svd_U = U
|
|
512
|
+
self._svd_s_inv = s_inv
|
|
513
|
+
self._svd_Vt = Vt
|
|
514
|
+
|
|
515
|
+
def _solve_mass_rhs(rhs):
|
|
516
|
+
# rhs can be vector or matrix; apply V * S_inv * (U.T @ rhs)
|
|
517
|
+
return (Vt.T * s_inv) @ (U.T @ rhs)
|
|
518
|
+
|
|
519
|
+
def _solve_mass_matrix(mat):
|
|
520
|
+
# mat: matrix of columns to be solved
|
|
521
|
+
return (Vt.T * s_inv) @ (U.T @ mat)
|
|
522
|
+
|
|
523
|
+
self._solve_mass_rhs = _solve_mass_rhs
|
|
524
|
+
self._solve_mass_matrix = _solve_mass_matrix
|
|
406
525
|
|
|
407
526
|
#the engine integrates only the differential states
|
|
408
527
|
self.initial_value = x0[self._d]
|
|
@@ -418,7 +537,9 @@ class MassMatrixDAE(Block):
|
|
|
418
537
|
#when 'jac' is given, otherwise the operator falls back to finite differences
|
|
419
538
|
_jac_x = None
|
|
420
539
|
if self._a.size == 0 and jac is not None:
|
|
421
|
-
_jac_x
|
|
540
|
+
def _jac_x(x, u, t):
|
|
541
|
+
J = np.atleast_2d(jac(x, u, t))[np.ix_(self._d_equations, self._d)]
|
|
542
|
+
return self._solve_mass_matrix(J)
|
|
422
543
|
self.op_dyn = DynamicOperator(func=self._rhs, jac_x=_jac_x)
|
|
423
544
|
|
|
424
545
|
#pre-size the output register to the full state
|
|
@@ -496,7 +617,7 @@ class MassMatrixDAE(Block):
|
|
|
496
617
|
x[self._d], x[self._a] = x_d, xa
|
|
497
618
|
return np.atleast_2d(self.jac(x, u, t))[np.ix_(self._a, self._a)]
|
|
498
619
|
|
|
499
|
-
xa, _, _ = solve_root(self.opt, _res, self._xa, _jac)
|
|
620
|
+
xa, _, _ = solve_root(self.opt, _res, self._xa, _jac, tolerance=self.tolerance)
|
|
500
621
|
return xa
|
|
501
622
|
|
|
502
623
|
|
|
@@ -524,7 +645,7 @@ class MassMatrixDAE(Block):
|
|
|
524
645
|
xa = self._solve_xa(x_d, u, t)
|
|
525
646
|
x = np.empty(self.mass.shape[0])
|
|
526
647
|
x[self._d], x[self._a] = x_d, xa
|
|
527
|
-
return
|
|
648
|
+
return self._solve_mass_rhs(self.func(x, u, t)[self._d_equations])
|
|
528
649
|
|
|
529
650
|
|
|
530
651
|
def update(self, t):
|
|
@@ -561,7 +682,8 @@ class MassMatrixDAE(Block):
|
|
|
561
682
|
|
|
562
683
|
#commit the warm-start at the current state, then linearize around it
|
|
563
684
|
self._xa = self._solve_xa(x_d, u, t)
|
|
564
|
-
f =
|
|
685
|
+
f = self._solve_mass_rhs(self.func(self._full(x_d), u, t)[self._d_equations])
|
|
686
|
+
|
|
565
687
|
J = self.op_dyn.jac_x(x_d, u, t)
|
|
566
688
|
|
|
567
689
|
return self.engine.solve(f, J, dt)
|
|
@@ -588,7 +710,7 @@ class MassMatrixDAE(Block):
|
|
|
588
710
|
"""
|
|
589
711
|
x_d, u = self.engine.state, self.inputs.to_array()
|
|
590
712
|
self._xa = self._solve_xa(x_d, u, t)
|
|
591
|
-
f =
|
|
713
|
+
f = self._solve_mass_rhs(self.func(self._full(x_d), u, t)[self._d_equations])
|
|
592
714
|
return self.engine.step(f, dt)
|
|
593
715
|
|
|
594
716
|
|
|
@@ -666,6 +788,10 @@ class FullyImplicitDAE(Block):
|
|
|
666
788
|
signature `jac_xdot(x, xdot, u, t)`, accelerates the inner solve and is
|
|
667
789
|
used for the reduced jacobian, central finite differences are used if
|
|
668
790
|
`None`
|
|
791
|
+
tolerance : float
|
|
792
|
+
convergence tolerance on the residual norm of the state derivative
|
|
793
|
+
solve, loosen it for ill-conditioned residuals that cannot reach the
|
|
794
|
+
default due to roundoff
|
|
669
795
|
|
|
670
796
|
Attributes
|
|
671
797
|
----------
|
|
@@ -682,7 +808,8 @@ class FullyImplicitDAE(Block):
|
|
|
682
808
|
func=lambda x, xdot, u, t: xdot + x,
|
|
683
809
|
initial_value=0.0,
|
|
684
810
|
jac_x=None,
|
|
685
|
-
jac_xdot=None
|
|
811
|
+
jac_xdot=None,
|
|
812
|
+
tolerance=SOL_TOLERANCE_FPI
|
|
686
813
|
):
|
|
687
814
|
|
|
688
815
|
super().__init__()
|
|
@@ -692,6 +819,9 @@ class FullyImplicitDAE(Block):
|
|
|
692
819
|
self.jac_x = jac_x
|
|
693
820
|
self.jac_xdot = jac_xdot
|
|
694
821
|
|
|
822
|
+
#convergence tolerance of the state derivative solve
|
|
823
|
+
self.tolerance = tolerance
|
|
824
|
+
|
|
695
825
|
#initial condition of the state (drives the engine)
|
|
696
826
|
self.initial_value = np.atleast_1d(initial_value).astype(float)
|
|
697
827
|
|
|
@@ -746,7 +876,7 @@ class FullyImplicitDAE(Block):
|
|
|
746
876
|
_res = lambda xd: self.func(x, xd, u, t)
|
|
747
877
|
_jac = None if self.jac_xdot is None \
|
|
748
878
|
else (lambda xd: self.jac_xdot(x, xd, u, t))
|
|
749
|
-
xdot, _, _ = solve_root(self.opt, _res, self._xdot, _jac)
|
|
879
|
+
xdot, _, _ = solve_root(self.opt, _res, self._xdot, _jac, tolerance=self.tolerance)
|
|
750
880
|
return xdot
|
|
751
881
|
|
|
752
882
|
|
|
@@ -331,19 +331,22 @@ class Graph:
|
|
|
331
331
|
"""Optimized loop processing with minimal overhead.
|
|
332
332
|
|
|
333
333
|
Finds strongly connected components (SCCs) within the loop blocks, determines
|
|
334
|
-
entry points for each SCC, and performs BFS to assign local depths.
|
|
334
|
+
entry points for each SCC, and performs BFS to assign local depths. Includes
|
|
335
|
+
acyclic descendants in dependency order alongside cycles. Identifies
|
|
335
336
|
loop-closing connections (back edges) that need special handling.
|
|
336
337
|
|
|
337
338
|
Parameters
|
|
338
339
|
----------
|
|
339
340
|
blocks_loop : set
|
|
340
|
-
set of blocks that are part of algebraic loops
|
|
341
|
+
set of blocks that are part of or depend on algebraic loops
|
|
341
342
|
"""
|
|
342
343
|
if not blocks_loop:
|
|
343
344
|
return
|
|
344
345
|
|
|
345
|
-
#
|
|
346
|
-
|
|
346
|
+
# Tarjan emits downstream components before their upstream dependencies.
|
|
347
|
+
# Reverse that order so each component receives updated upstream outputs
|
|
348
|
+
# before it is evaluated in the same loop-solver iteration.
|
|
349
|
+
sccs = reversed(self._find_strongly_connected_components(blocks_loop))
|
|
347
350
|
|
|
348
351
|
current_depth = 0
|
|
349
352
|
|
|
@@ -433,7 +436,7 @@ class Graph:
|
|
|
433
436
|
def _find_strongly_connected_components(self, blocks):
|
|
434
437
|
"""Iterative Tarjan's algorithm using cleaner state machine.
|
|
435
438
|
|
|
436
|
-
Finds strongly connected components
|
|
439
|
+
Finds all strongly connected components within the given blocks using
|
|
437
440
|
an iterative implementation of Tarjan's algorithm. Avoids recursion limits
|
|
438
441
|
that can occur with deep graphs.
|
|
439
442
|
|
|
@@ -445,7 +448,7 @@ class Graph:
|
|
|
445
448
|
Returns
|
|
446
449
|
-------
|
|
447
450
|
list
|
|
448
|
-
list of SCCs
|
|
451
|
+
list of SCCs in reverse topological order, including acyclic singletons
|
|
449
452
|
"""
|
|
450
453
|
if not blocks:
|
|
451
454
|
return []
|
|
@@ -508,11 +511,12 @@ class Graph:
|
|
|
508
511
|
if w == node:
|
|
509
512
|
break
|
|
510
513
|
|
|
511
|
-
#
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
514
|
+
# A block downstream of a loop can form a singleton SCC
|
|
515
|
+
# without being part of a cycle. Its loop dependency keeps
|
|
516
|
+
# it out of the ordinary DAG schedule, so discarding it here
|
|
517
|
+
# would leave it unevaluated. Keep it in the loop schedule;
|
|
518
|
+
# only actual cycle-closing connections receive acceleration.
|
|
519
|
+
result.append(scc)
|
|
516
520
|
|
|
517
521
|
# Update parent's lowlink if there is a parent
|
|
518
522
|
if work_stack:
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pathsim
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.27.0
|
|
4
4
|
Summary: A differentiable block based hybrid system simulation framework.
|
|
5
5
|
Author-email: Milan Rother <milan.rother@gmx.de>
|
|
6
6
|
License: MIT
|
|
7
7
|
Project-URL: Homepage, https://github.com/pathsim/pathsim
|
|
8
|
-
Project-URL: documentation, https://pathsim.
|
|
8
|
+
Project-URL: documentation, https://docs.pathsim.org
|
|
9
9
|
Keywords: simulation,differentiable,hybrid systems
|
|
10
10
|
Classifier: Programming Language :: Python :: 3
|
|
11
11
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -12,21 +12,7 @@ pyproject.toml
|
|
|
12
12
|
.github/workflows/pypi_deployment.yml
|
|
13
13
|
.github/workflows/tests_codecov.yml
|
|
14
14
|
.github/workflows/urlchecker.yml
|
|
15
|
-
docs/.readthedocs.yaml
|
|
16
|
-
docs/Makefile
|
|
17
|
-
docs/requirements.txt
|
|
18
|
-
docs/source/api.rst
|
|
19
|
-
docs/source/conf.py
|
|
20
|
-
docs/source/contributing.rst
|
|
21
|
-
docs/source/examples.rst
|
|
22
|
-
docs/source/index.rst
|
|
23
15
|
docs/source/pathsim_docs.mplstyle
|
|
24
|
-
docs/source/quickstart.ipynb
|
|
25
|
-
docs/source/roadmap.rst
|
|
26
|
-
docs/source/roadmap_generated.rst
|
|
27
|
-
docs/source/_ext/github_issues.py
|
|
28
|
-
docs/source/_static/custom.css
|
|
29
|
-
docs/source/_static/redirect.js
|
|
30
16
|
docs/source/examples/abs_braking.ipynb
|
|
31
17
|
docs/source/examples/algebraic_loop.ipynb
|
|
32
18
|
docs/source/examples/billards.ipynb
|
|
@@ -110,92 +96,9 @@ docs/source/examples/figures/figures_g/vanderpol_subsystem_lvl1_g.png
|
|
|
110
96
|
docs/source/examples/figures/figures_g/vanderpol_subsystem_lvl2_g.png
|
|
111
97
|
docs/source/examples/figures/figures_g/vanderpol_subsystem_lvl3_g.png
|
|
112
98
|
docs/source/examples/figures/figures_g/volterralotka_blockdiagram_g.png
|
|
113
|
-
docs/source/figures/pathsim_object_hierarchy_g.png
|
|
114
|
-
docs/source/figures/pathsim_solver_hierarchy_g.png
|
|
115
|
-
docs/source/figures/sin_cos_blockdiagram_g.png
|
|
116
|
-
docs/source/figures/system_g.png
|
|
117
99
|
docs/source/logos/pathsim_icon.png
|
|
118
100
|
docs/source/logos/pathsim_logo.png
|
|
119
101
|
docs/source/logos/pathsim_simplistic_logo.png
|
|
120
|
-
docs/source/modules/pathsim.blocks._block.rst
|
|
121
|
-
docs/source/modules/pathsim.blocks.adder.rst
|
|
122
|
-
docs/source/modules/pathsim.blocks.amplifier.rst
|
|
123
|
-
docs/source/modules/pathsim.blocks.comparator.rst
|
|
124
|
-
docs/source/modules/pathsim.blocks.converters.rst
|
|
125
|
-
docs/source/modules/pathsim.blocks.counter.rst
|
|
126
|
-
docs/source/modules/pathsim.blocks.ctrl.rst
|
|
127
|
-
docs/source/modules/pathsim.blocks.delay.rst
|
|
128
|
-
docs/source/modules/pathsim.blocks.differentiator.rst
|
|
129
|
-
docs/source/modules/pathsim.blocks.discrete.rst
|
|
130
|
-
docs/source/modules/pathsim.blocks.dynsys.rst
|
|
131
|
-
docs/source/modules/pathsim.blocks.filters.rst
|
|
132
|
-
docs/source/modules/pathsim.blocks.fmu.rst
|
|
133
|
-
docs/source/modules/pathsim.blocks.function.rst
|
|
134
|
-
docs/source/modules/pathsim.blocks.integrator.rst
|
|
135
|
-
docs/source/modules/pathsim.blocks.kalman.rst
|
|
136
|
-
docs/source/modules/pathsim.blocks.lti.rst
|
|
137
|
-
docs/source/modules/pathsim.blocks.math.rst
|
|
138
|
-
docs/source/modules/pathsim.blocks.multiplier.rst
|
|
139
|
-
docs/source/modules/pathsim.blocks.noise.rst
|
|
140
|
-
docs/source/modules/pathsim.blocks.ode.rst
|
|
141
|
-
docs/source/modules/pathsim.blocks.relay.rst
|
|
142
|
-
docs/source/modules/pathsim.blocks.rf.rst
|
|
143
|
-
docs/source/modules/pathsim.blocks.rng.rst
|
|
144
|
-
docs/source/modules/pathsim.blocks.rst
|
|
145
|
-
docs/source/modules/pathsim.blocks.scope.rst
|
|
146
|
-
docs/source/modules/pathsim.blocks.sources.rst
|
|
147
|
-
docs/source/modules/pathsim.blocks.spectrum.rst
|
|
148
|
-
docs/source/modules/pathsim.blocks.switch.rst
|
|
149
|
-
docs/source/modules/pathsim.blocks.table.rst
|
|
150
|
-
docs/source/modules/pathsim.blocks.wrapper.rst
|
|
151
|
-
docs/source/modules/pathsim.connection.rst
|
|
152
|
-
docs/source/modules/pathsim.events._event.rst
|
|
153
|
-
docs/source/modules/pathsim.events.condition.rst
|
|
154
|
-
docs/source/modules/pathsim.events.rst
|
|
155
|
-
docs/source/modules/pathsim.events.schedule.rst
|
|
156
|
-
docs/source/modules/pathsim.events.zerocrossing.rst
|
|
157
|
-
docs/source/modules/pathsim.optim.anderson.rst
|
|
158
|
-
docs/source/modules/pathsim.optim.booster.rst
|
|
159
|
-
docs/source/modules/pathsim.optim.numerical.rst
|
|
160
|
-
docs/source/modules/pathsim.optim.operator.rst
|
|
161
|
-
docs/source/modules/pathsim.optim.rst
|
|
162
|
-
docs/source/modules/pathsim.simulation.rst
|
|
163
|
-
docs/source/modules/pathsim.solvers._rungekutta.rst
|
|
164
|
-
docs/source/modules/pathsim.solvers._solver.rst
|
|
165
|
-
docs/source/modules/pathsim.solvers.bdf.rst
|
|
166
|
-
docs/source/modules/pathsim.solvers.dirk2.rst
|
|
167
|
-
docs/source/modules/pathsim.solvers.dirk3.rst
|
|
168
|
-
docs/source/modules/pathsim.solvers.esdirk32.rst
|
|
169
|
-
docs/source/modules/pathsim.solvers.esdirk4.rst
|
|
170
|
-
docs/source/modules/pathsim.solvers.esdirk43.rst
|
|
171
|
-
docs/source/modules/pathsim.solvers.esdirk54.rst
|
|
172
|
-
docs/source/modules/pathsim.solvers.esdirk85.rst
|
|
173
|
-
docs/source/modules/pathsim.solvers.euler.rst
|
|
174
|
-
docs/source/modules/pathsim.solvers.gear.rst
|
|
175
|
-
docs/source/modules/pathsim.solvers.rk4.rst
|
|
176
|
-
docs/source/modules/pathsim.solvers.rkbs32.rst
|
|
177
|
-
docs/source/modules/pathsim.solvers.rkck54.rst
|
|
178
|
-
docs/source/modules/pathsim.solvers.rkdp54.rst
|
|
179
|
-
docs/source/modules/pathsim.solvers.rkdp87.rst
|
|
180
|
-
docs/source/modules/pathsim.solvers.rkf21.rst
|
|
181
|
-
docs/source/modules/pathsim.solvers.rkf45.rst
|
|
182
|
-
docs/source/modules/pathsim.solvers.rkf78.rst
|
|
183
|
-
docs/source/modules/pathsim.solvers.rkv65.rst
|
|
184
|
-
docs/source/modules/pathsim.solvers.rst
|
|
185
|
-
docs/source/modules/pathsim.solvers.ssprk22.rst
|
|
186
|
-
docs/source/modules/pathsim.solvers.ssprk33.rst
|
|
187
|
-
docs/source/modules/pathsim.solvers.ssprk34.rst
|
|
188
|
-
docs/source/modules/pathsim.solvers.steadystate.rst
|
|
189
|
-
docs/source/modules/pathsim.subsystem.rst
|
|
190
|
-
docs/source/modules/pathsim.utils.adaptivebuffer.rst
|
|
191
|
-
docs/source/modules/pathsim.utils.analysis.rst
|
|
192
|
-
docs/source/modules/pathsim.utils.gilbert.rst
|
|
193
|
-
docs/source/modules/pathsim.utils.logger.rst
|
|
194
|
-
docs/source/modules/pathsim.utils.portreference.rst
|
|
195
|
-
docs/source/modules/pathsim.utils.progresstracker.rst
|
|
196
|
-
docs/source/modules/pathsim.utils.realtimeplotter.rst
|
|
197
|
-
docs/source/modules/pathsim.utils.register.rst
|
|
198
|
-
docs/source/modules/pathsim.utils.rst
|
|
199
102
|
examples/example_abs_braking.py
|
|
200
103
|
examples/example_adc.py
|
|
201
104
|
examples/example_algebraicchain.py
|
|
@@ -12,16 +12,6 @@
|
|
|
12
12
|
"LICENSE.txt",
|
|
13
13
|
"README.md",
|
|
14
14
|
"conftest.py",
|
|
15
|
-
"docs/.readthedocs.yaml",
|
|
16
|
-
"docs/Makefile",
|
|
17
|
-
"docs/requirements.txt",
|
|
18
|
-
"docs/source/_ext/github_issues.py",
|
|
19
|
-
"docs/source/_static/custom.css",
|
|
20
|
-
"docs/source/_static/redirect.js",
|
|
21
|
-
"docs/source/api.rst",
|
|
22
|
-
"docs/source/conf.py",
|
|
23
|
-
"docs/source/contributing.rst",
|
|
24
|
-
"docs/source/examples.rst",
|
|
25
15
|
"docs/source/examples/abs_braking.ipynb",
|
|
26
16
|
"docs/source/examples/algebraic_loop.ipynb",
|
|
27
17
|
"docs/source/examples/billards.ipynb",
|
|
@@ -105,97 +95,10 @@
|
|
|
105
95
|
"docs/source/examples/thermostat.ipynb",
|
|
106
96
|
"docs/source/examples/transfer_function.ipynb",
|
|
107
97
|
"docs/source/examples/vanderpol.ipynb",
|
|
108
|
-
"docs/source/figures/pathsim_object_hierarchy_g.png",
|
|
109
|
-
"docs/source/figures/pathsim_solver_hierarchy_g.png",
|
|
110
|
-
"docs/source/figures/sin_cos_blockdiagram_g.png",
|
|
111
|
-
"docs/source/figures/system_g.png",
|
|
112
|
-
"docs/source/index.rst",
|
|
113
98
|
"docs/source/logos/pathsim_icon.png",
|
|
114
99
|
"docs/source/logos/pathsim_logo.png",
|
|
115
100
|
"docs/source/logos/pathsim_simplistic_logo.png",
|
|
116
|
-
"docs/source/modules/pathsim.blocks._block.rst",
|
|
117
|
-
"docs/source/modules/pathsim.blocks.adder.rst",
|
|
118
|
-
"docs/source/modules/pathsim.blocks.amplifier.rst",
|
|
119
|
-
"docs/source/modules/pathsim.blocks.comparator.rst",
|
|
120
|
-
"docs/source/modules/pathsim.blocks.converters.rst",
|
|
121
|
-
"docs/source/modules/pathsim.blocks.counter.rst",
|
|
122
|
-
"docs/source/modules/pathsim.blocks.ctrl.rst",
|
|
123
|
-
"docs/source/modules/pathsim.blocks.delay.rst",
|
|
124
|
-
"docs/source/modules/pathsim.blocks.differentiator.rst",
|
|
125
|
-
"docs/source/modules/pathsim.blocks.discrete.rst",
|
|
126
|
-
"docs/source/modules/pathsim.blocks.dynsys.rst",
|
|
127
|
-
"docs/source/modules/pathsim.blocks.filters.rst",
|
|
128
|
-
"docs/source/modules/pathsim.blocks.fmu.rst",
|
|
129
|
-
"docs/source/modules/pathsim.blocks.function.rst",
|
|
130
|
-
"docs/source/modules/pathsim.blocks.integrator.rst",
|
|
131
|
-
"docs/source/modules/pathsim.blocks.kalman.rst",
|
|
132
|
-
"docs/source/modules/pathsim.blocks.lti.rst",
|
|
133
|
-
"docs/source/modules/pathsim.blocks.math.rst",
|
|
134
|
-
"docs/source/modules/pathsim.blocks.multiplier.rst",
|
|
135
|
-
"docs/source/modules/pathsim.blocks.noise.rst",
|
|
136
|
-
"docs/source/modules/pathsim.blocks.ode.rst",
|
|
137
|
-
"docs/source/modules/pathsim.blocks.relay.rst",
|
|
138
|
-
"docs/source/modules/pathsim.blocks.rf.rst",
|
|
139
|
-
"docs/source/modules/pathsim.blocks.rng.rst",
|
|
140
|
-
"docs/source/modules/pathsim.blocks.rst",
|
|
141
|
-
"docs/source/modules/pathsim.blocks.scope.rst",
|
|
142
|
-
"docs/source/modules/pathsim.blocks.sources.rst",
|
|
143
|
-
"docs/source/modules/pathsim.blocks.spectrum.rst",
|
|
144
|
-
"docs/source/modules/pathsim.blocks.switch.rst",
|
|
145
|
-
"docs/source/modules/pathsim.blocks.table.rst",
|
|
146
|
-
"docs/source/modules/pathsim.blocks.wrapper.rst",
|
|
147
|
-
"docs/source/modules/pathsim.connection.rst",
|
|
148
|
-
"docs/source/modules/pathsim.events._event.rst",
|
|
149
|
-
"docs/source/modules/pathsim.events.condition.rst",
|
|
150
|
-
"docs/source/modules/pathsim.events.rst",
|
|
151
|
-
"docs/source/modules/pathsim.events.schedule.rst",
|
|
152
|
-
"docs/source/modules/pathsim.events.zerocrossing.rst",
|
|
153
|
-
"docs/source/modules/pathsim.optim.anderson.rst",
|
|
154
|
-
"docs/source/modules/pathsim.optim.booster.rst",
|
|
155
|
-
"docs/source/modules/pathsim.optim.numerical.rst",
|
|
156
|
-
"docs/source/modules/pathsim.optim.operator.rst",
|
|
157
|
-
"docs/source/modules/pathsim.optim.rst",
|
|
158
|
-
"docs/source/modules/pathsim.simulation.rst",
|
|
159
|
-
"docs/source/modules/pathsim.solvers._rungekutta.rst",
|
|
160
|
-
"docs/source/modules/pathsim.solvers._solver.rst",
|
|
161
|
-
"docs/source/modules/pathsim.solvers.bdf.rst",
|
|
162
|
-
"docs/source/modules/pathsim.solvers.dirk2.rst",
|
|
163
|
-
"docs/source/modules/pathsim.solvers.dirk3.rst",
|
|
164
|
-
"docs/source/modules/pathsim.solvers.esdirk32.rst",
|
|
165
|
-
"docs/source/modules/pathsim.solvers.esdirk4.rst",
|
|
166
|
-
"docs/source/modules/pathsim.solvers.esdirk43.rst",
|
|
167
|
-
"docs/source/modules/pathsim.solvers.esdirk54.rst",
|
|
168
|
-
"docs/source/modules/pathsim.solvers.esdirk85.rst",
|
|
169
|
-
"docs/source/modules/pathsim.solvers.euler.rst",
|
|
170
|
-
"docs/source/modules/pathsim.solvers.gear.rst",
|
|
171
|
-
"docs/source/modules/pathsim.solvers.rk4.rst",
|
|
172
|
-
"docs/source/modules/pathsim.solvers.rkbs32.rst",
|
|
173
|
-
"docs/source/modules/pathsim.solvers.rkck54.rst",
|
|
174
|
-
"docs/source/modules/pathsim.solvers.rkdp54.rst",
|
|
175
|
-
"docs/source/modules/pathsim.solvers.rkdp87.rst",
|
|
176
|
-
"docs/source/modules/pathsim.solvers.rkf21.rst",
|
|
177
|
-
"docs/source/modules/pathsim.solvers.rkf45.rst",
|
|
178
|
-
"docs/source/modules/pathsim.solvers.rkf78.rst",
|
|
179
|
-
"docs/source/modules/pathsim.solvers.rkv65.rst",
|
|
180
|
-
"docs/source/modules/pathsim.solvers.rst",
|
|
181
|
-
"docs/source/modules/pathsim.solvers.ssprk22.rst",
|
|
182
|
-
"docs/source/modules/pathsim.solvers.ssprk33.rst",
|
|
183
|
-
"docs/source/modules/pathsim.solvers.ssprk34.rst",
|
|
184
|
-
"docs/source/modules/pathsim.solvers.steadystate.rst",
|
|
185
|
-
"docs/source/modules/pathsim.subsystem.rst",
|
|
186
|
-
"docs/source/modules/pathsim.utils.adaptivebuffer.rst",
|
|
187
|
-
"docs/source/modules/pathsim.utils.analysis.rst",
|
|
188
|
-
"docs/source/modules/pathsim.utils.gilbert.rst",
|
|
189
|
-
"docs/source/modules/pathsim.utils.logger.rst",
|
|
190
|
-
"docs/source/modules/pathsim.utils.portreference.rst",
|
|
191
|
-
"docs/source/modules/pathsim.utils.progresstracker.rst",
|
|
192
|
-
"docs/source/modules/pathsim.utils.realtimeplotter.rst",
|
|
193
|
-
"docs/source/modules/pathsim.utils.register.rst",
|
|
194
|
-
"docs/source/modules/pathsim.utils.rst",
|
|
195
101
|
"docs/source/pathsim_docs.mplstyle",
|
|
196
|
-
"docs/source/quickstart.ipynb",
|
|
197
|
-
"docs/source/roadmap.rst",
|
|
198
|
-
"docs/source/roadmap_generated.rst",
|
|
199
102
|
"examples/example_abs_braking.py",
|
|
200
103
|
"examples/example_adc.py",
|
|
201
104
|
"examples/example_algebraicchain.py",
|