physioblocks 1.1.0__tar.gz → 1.1.1__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.
- {physioblocks-1.1.0 → physioblocks-1.1.1}/PKG-INFO +2 -1
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/__init__.py +1 -1
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/__main__.py +10 -6
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/runtime.py +70 -64
- {physioblocks-1.1.0 → physioblocks-1.1.1}/pyproject.toml +2 -1
- {physioblocks-1.1.0 → physioblocks-1.1.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/.gitignore +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/.gitlab/issue_templates/Bug.md +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/.gitlab/issue_templates/Documentation.md +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/.gitlab/issue_templates/Feature.md +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/.gitlab-ci.yml +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/README.md +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/.gitignore +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/Makefile +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/make.bat +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/base.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/computing.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/configuration.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/description.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/io.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/registers.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/simulation.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference/utils.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/api_reference.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/conf.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/index.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/installation.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/aliases/blocks.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/aliases/model_components.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/aliases/nets.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/aliases/simulation.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/aliases.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/blocks.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/configuration/functions.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/configuration/net.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/configuration/simulation.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/configuration.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/functions.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library/model_components.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/library.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/presentation.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/assembling_example_scheme.tex +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/circulation_net_scheme.tex +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/circulation_net_scheme_heart.tex +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/model_heart_circulation_0D.tex +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/simple_circulation_model.tex +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/simple_circulation_model_heart.tex +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/spherical_heart_net_scheme.tex +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_1/launch_simulation.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_1/launcher.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_1.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2/aliases.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2/create_net.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2/create_simulation.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2/overview.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/block_configuration.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/block_definition.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/block_test.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/overview.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/specific_installations.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide.rst +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/docker/latex/Dockerfile +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/docker/pyenv/Dockerfile +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/licenses/GPL-3.0-only.txt +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/licenses/LGPL-3.0-only.txt +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/base/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/base/operators.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/base/registers.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/computing/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/computing/assembling.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/computing/models.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/computing/quantities.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/aliases.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/base.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/computing/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/computing/quantities.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/constants.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/description/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/description/blocks.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/description/nets.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/functions.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/simulation/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/simulation/simulations.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/description/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/description/blocks.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/description/flux.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/description/nets.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/io/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/io/aliases.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/io/configuration.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/configuration.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/configure/__main__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/constants.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/files.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/launcher/series.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/c_block.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/rc_block.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/rcr_block.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/spherical_cavity_block.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/valve_rl_block.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/flux/heart_flux_dof_couples.jsonc +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/model_components/active_law_macro_huxley_two_moments.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/model_components/rheology_fiber_additive.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/model_components/spherical_dynamics.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/model_components/velocity_law_hht.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/nets/circulation_alone_net.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/nets/spherical_heart_net.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/circulation_alone_forward_simulation.jsonc +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/default_forward_simulation.jsonc +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/default_time.jsonc +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/newton_method_solver.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/spherical_heart_forward_simulation.jsonc +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/simulations/spherical_heart_with_respiration_forward_simulation.jsonc +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/blocks/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/blocks/capacitances.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/blocks/cavity.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/blocks/valves.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/base_operations.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/first_order.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/piecewise.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/trigonometric.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/functions/watchers.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/active_law.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/dynamics.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/rheology.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/velocity_law.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/registers/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/registers/load_function_register.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/registers/save_function_register.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/registers/type_register.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/constants.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/functions.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/saved_quantities.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/setup.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/solvers.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/state.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/simulation/time_manager.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/utils/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/utils/dynamic_import_utils.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/utils/exceptions_utils.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/utils/gradient_test_utils.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/utils/math_utils.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/references/circulation_alone_sim.jsonc +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/references/spherical_heart_respiration_sim.jsonc +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/references/spherical_heart_sim.jsonc +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/ruff.toml +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/base/test_register.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/helpers/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/helpers/assertion_helpers.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/helpers/file_helpers.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_computing/test_assembling.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_computing/test_models.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_computing/test_quantities.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/test_definitions.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/test_generic_save_load.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_alias/test_alias.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_description/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_description/test_config_blocks.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_description/test_config_boundary_condition.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_description/test_config_nets.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/simulation_reference.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_config_simulation.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_config_solvers.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_config_time.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_functions.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_description/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_description/test_blocks.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_description/test_nets.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_description/test_relations.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/references/alt_config_file_path.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/references/commented_config_file_path.jsonc +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/references/configuration.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/test_aliases.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/test_configuration.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_blocks/test_capacitances.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_blocks/test_cavity.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_blocks/test_valves.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_functions/test_base_operations_functions.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_functions/test_first_order_functions.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_functions/test_piecewise_functions.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_functions/test_trigonometric_functions.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_functions/test_watch_functions.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_model_components/test_active_law.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_model_components/test_dynamics_block.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_model_components/test_rheology.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_model_components/test_velocity_law_hht.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/circulation_alone/circulation_alone_sim_gradient_test.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/circulation_alone/ref_circulation_alone_sim.csv +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/conftest.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/io.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/spherical_heart/ref_spherical_heart_respiration_sim.csv +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/spherical_heart/ref_spherical_heart_sim.csv +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/spherical_heart/spherical_heart_sim_gradient_test.json +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/test_circulation_alone.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_references/test_spherical_heart.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_registers/test_load_register.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_registers/test_save_register.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_registers/test_type_register.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/__init__.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/test_runtime.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/test_setup.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/test_solvers.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/test_state.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_simulation/test_time_manager.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_utils/test_math_utils.py +0 -0
- {physioblocks-1.1.0 → physioblocks-1.1.1}/tox.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: physioblocks
|
|
3
|
-
Version: 1.1.
|
|
3
|
+
Version: 1.1.1
|
|
4
4
|
Dynamic: Author
|
|
5
5
|
Dynamic: Author-email
|
|
6
6
|
Dynamic: License
|
|
@@ -31,6 +31,7 @@ Requires-Dist: pandas
|
|
|
31
31
|
Requires-Dist: plotly
|
|
32
32
|
Requires-Dist: pyarrow
|
|
33
33
|
Requires-Dist: regex
|
|
34
|
+
Requires-Dist: rich
|
|
34
35
|
Requires-Dist: scipy
|
|
35
36
|
Provides-Extra: doc
|
|
36
37
|
Requires-Dist: sphinx; extra == 'doc'
|
|
@@ -37,6 +37,7 @@ from pathlib import Path
|
|
|
37
37
|
from typing import Any
|
|
38
38
|
|
|
39
39
|
import pandas as pd
|
|
40
|
+
from rich.logging import RichHandler
|
|
40
41
|
|
|
41
42
|
import physioblocks.utils.exceptions_utils as exception_utils
|
|
42
43
|
from physioblocks.configuration import Configuration, load, unwrap_aliases
|
|
@@ -64,8 +65,9 @@ from physioblocks.simulation import AbstractSimulation, SimulationError
|
|
|
64
65
|
.. note:: When deleting a serie from the launcher folder, or a specific simulation from
|
|
65
66
|
a serie, the launchers logs are updated the next time any simulation is launched.
|
|
66
67
|
"""
|
|
68
|
+
FILE_LOG_FORMATTER = logging.Formatter(logging.BASIC_FORMAT)
|
|
69
|
+
RICH_LOG_FORMATTER = logging.Formatter("%(message)s", "[%X]")
|
|
67
70
|
|
|
68
|
-
SIMULATION_LOG_FORMATER = logging.Formatter(logging.BASIC_FORMAT)
|
|
69
71
|
_root_logger = logging.getLogger()
|
|
70
72
|
_root_logger.setLevel(logging.DEBUG)
|
|
71
73
|
|
|
@@ -90,8 +92,10 @@ def run_simulation(config: Configuration) -> pd.DataFrame:
|
|
|
90
92
|
return pd.DataFrame(results)
|
|
91
93
|
|
|
92
94
|
|
|
93
|
-
def add_log_handler(
|
|
94
|
-
handler.
|
|
95
|
+
def add_log_handler(
|
|
96
|
+
handler: logging.Handler, level: str | int, formatter: logging.Formatter
|
|
97
|
+
) -> None:
|
|
98
|
+
handler.setFormatter(formatter)
|
|
95
99
|
handler.setLevel(level)
|
|
96
100
|
_root_logger.addHandler(handler)
|
|
97
101
|
|
|
@@ -132,7 +136,7 @@ def main(
|
|
|
132
136
|
# configure the simulation log file (always in DEBUG)
|
|
133
137
|
log_file_path = sim_folder / str.join(".", [sim_info.reference, "log"])
|
|
134
138
|
file_handler = logging.FileHandler(log_file_path)
|
|
135
|
-
add_log_handler(file_handler, logging.DEBUG)
|
|
139
|
+
add_log_handler(file_handler, logging.DEBUG, FILE_LOG_FORMATTER)
|
|
136
140
|
|
|
137
141
|
# log the current simulation infos
|
|
138
142
|
_root_logger.info(str(sim_info))
|
|
@@ -260,8 +264,8 @@ if __name__ == "__main__":
|
|
|
260
264
|
|
|
261
265
|
# setup logger when verbose
|
|
262
266
|
if args.verbose is True:
|
|
263
|
-
stdout_handler = logging.StreamHandler(sys.stdout)
|
|
264
|
-
add_log_handler(
|
|
267
|
+
# stdout_handler = logging.StreamHandler(sys.stdout)
|
|
268
|
+
add_log_handler(RichHandler(), args.log_level, RICH_LOG_FORMATTER)
|
|
265
269
|
|
|
266
270
|
# create paths from arguments
|
|
267
271
|
root_folder_path = Path(args.launcher_directory).absolute()
|
|
@@ -37,6 +37,7 @@ from typing import Any, TypeAlias
|
|
|
37
37
|
|
|
38
38
|
import numpy as np
|
|
39
39
|
from numpy.typing import NDArray
|
|
40
|
+
from rich.progress import Progress
|
|
40
41
|
|
|
41
42
|
from physioblocks.computing.assembling import EqSystem
|
|
42
43
|
from physioblocks.computing.models import ModelComponent
|
|
@@ -359,77 +360,82 @@ class ForwardSimulation(AbstractSimulation):
|
|
|
359
360
|
"""
|
|
360
361
|
# initialize the simulation and save the initial results
|
|
361
362
|
results = self._initialize()
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
363
|
+
progress_step_update = (
|
|
364
|
+
100.0 * self.time_manager.step_size / self.time_manager.duration
|
|
365
|
+
)
|
|
366
|
+
with Progress() as progress:
|
|
367
|
+
try:
|
|
368
|
+
sim_task = progress.add_task("Simulation in progress...")
|
|
369
|
+
while self.time_manager.ended is False:
|
|
370
|
+
next_step = self.time_manager.time.new
|
|
371
|
+
|
|
372
|
+
self._update_time()
|
|
373
|
+
|
|
374
|
+
while (
|
|
375
|
+
np.abs(next_step - self.time_manager.time.current)
|
|
376
|
+
> self.time_manager.min_step
|
|
377
|
+
):
|
|
378
|
+
self.state.reset_state_vector()
|
|
379
|
+
|
|
380
|
+
sol = self.solver.solve(self.state, self.eq_system)
|
|
381
|
+
|
|
382
|
+
if sol.converged is False:
|
|
383
|
+
inter_time = 0.5 * self.time_manager.current_step_size
|
|
384
|
+
if inter_time < self.time_manager.min_step:
|
|
385
|
+
raise ConvergenceError(
|
|
386
|
+
str.format(
|
|
387
|
+
"The solver did not converge at {0}s for "
|
|
388
|
+
"minimal time step {1}",
|
|
389
|
+
self.time_manager.time.current,
|
|
390
|
+
self.time_manager.min_step,
|
|
391
|
+
)
|
|
386
392
|
)
|
|
387
|
-
)
|
|
388
393
|
|
|
389
|
-
|
|
390
|
-
self.time_manager.time.update(
|
|
391
|
-
self.time_manager.time.current
|
|
392
|
-
+ self.time_manager.current_step_size
|
|
393
|
-
)
|
|
394
|
-
else:
|
|
395
|
-
self.state.set_state_vector(sol.x)
|
|
396
|
-
|
|
397
|
-
self.time_manager.update_time()
|
|
398
|
-
if (
|
|
399
|
-
np.abs(next_step - self.time_manager.time.current)
|
|
400
|
-
>= self.time_manager.min_step
|
|
401
|
-
):
|
|
402
|
-
self.time_manager.current_step_size = (
|
|
403
|
-
next_step - self.time_manager.time.current
|
|
404
|
-
)
|
|
405
|
-
self.time_manager.time.update(next_step)
|
|
406
|
-
else:
|
|
407
|
-
self.time_manager.time.initialize(next_step)
|
|
408
|
-
self.time_manager.current_step_size = (
|
|
409
|
-
self.time_manager.step_size
|
|
410
|
-
)
|
|
394
|
+
self.time_manager.current_step_size = inter_time
|
|
411
395
|
self.time_manager.time.update(
|
|
412
396
|
self.time_manager.time.current
|
|
413
397
|
+ self.time_manager.current_step_size
|
|
414
398
|
)
|
|
399
|
+
else:
|
|
400
|
+
self.state.set_state_vector(sol.x)
|
|
401
|
+
|
|
402
|
+
self.time_manager.update_time()
|
|
403
|
+
if (
|
|
404
|
+
np.abs(next_step - self.time_manager.time.current)
|
|
405
|
+
>= self.time_manager.min_step
|
|
406
|
+
):
|
|
407
|
+
self.time_manager.current_step_size = (
|
|
408
|
+
next_step - self.time_manager.time.current
|
|
409
|
+
)
|
|
410
|
+
self.time_manager.time.update(next_step)
|
|
411
|
+
else:
|
|
412
|
+
progress.update(sim_task, advance=progress_step_update)
|
|
413
|
+
self.time_manager.time.initialize(next_step)
|
|
414
|
+
self.time_manager.current_step_size = (
|
|
415
|
+
self.time_manager.step_size
|
|
416
|
+
)
|
|
417
|
+
self.time_manager.time.update(
|
|
418
|
+
self.time_manager.time.current
|
|
419
|
+
+ self.time_manager.current_step_size
|
|
420
|
+
)
|
|
415
421
|
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
422
|
+
self.state.set_state_vector(sol.x)
|
|
423
|
+
results.append(self._get_current_result())
|
|
424
|
+
except Exception as exception:
|
|
425
|
+
log_exception(
|
|
426
|
+
_logger,
|
|
427
|
+
type(exception),
|
|
428
|
+
exception,
|
|
429
|
+
exception.__traceback__,
|
|
430
|
+
logging.DEBUG,
|
|
431
|
+
)
|
|
432
|
+
raise SimulationError(
|
|
433
|
+
str.format(
|
|
434
|
+
"An error caused the simulation to stop prematurely",
|
|
435
|
+
intermediate_results=results,
|
|
436
|
+
),
|
|
437
|
+
results,
|
|
438
|
+
) from exception
|
|
433
439
|
|
|
434
440
|
self._finalize()
|
|
435
441
|
return results
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/circulation_net_scheme_heart.tex
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/schemes/simple_circulation_model_heart.tex
RENAMED
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_1/launch_simulation.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_2/create_simulation.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/block_configuration.rst
RENAMED
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/block_definition.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/doc/source/user_guide/level_3/specific_installations.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/computing/quantities.py
RENAMED
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/description/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/configuration/simulation/simulations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/rcr_block.json
RENAMED
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/blocks/valve_rl_block.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/aliases/nets/spherical_heart_net.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/active_law.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/physioblocks/library/model_components/velocity_law.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_description/test_config_blocks.py
RENAMED
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_description/test_config_nets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_config_solvers.py
RENAMED
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_config_time.py
RENAMED
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_config/tests_simulation/test_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/references/alt_config_file_path.json
RENAMED
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_io/references/commented_config_file_path.jsonc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.1.0 → physioblocks-1.1.1}/tests/tests_library/tests_blocks/test_capacitances.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|