physioblocks 1.0.1__tar.gz → 1.0.2__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.0.1 → physioblocks-1.0.2}/PKG-INFO +5 -2
- {physioblocks-1.0.1 → physioblocks-1.0.2}/README.md +4 -1
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/configuration/simulation.rst +7 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_2/create_simulation.rst +3 -3
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/__init__.py +1 -1
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/simulations/circulation_alone_forward_simulation.jsonc +1 -3
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/simulation/solvers.py +30 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_simulation/test_solvers.py +33 -1
- {physioblocks-1.0.1 → physioblocks-1.0.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/.github/ISSUE_TEMPLATE/documentation.md +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/.gitignore +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/.gitlab/issue_templates/Bug.md +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/.gitlab/issue_templates/Documentation.md +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/.gitlab/issue_templates/Feature.md +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/.gitlab-ci.yml +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/.gitignore +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/Makefile +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/make.bat +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/api_reference/base.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/api_reference/computing.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/api_reference/configuration.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/api_reference/description.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/api_reference/io.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/api_reference/registers.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/api_reference/simulation.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/api_reference/utils.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/api_reference.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/conf.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/index.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/installation.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/aliases/blocks.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/aliases/model_components.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/aliases/nets.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/aliases/simulation.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/aliases.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/blocks.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/configuration/functions.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/configuration/net.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/configuration.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/functions.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library/model_components.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/library.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/presentation.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/schemes/assembling_example_scheme.tex +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/schemes/circulation_net_scheme.tex +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/schemes/circulation_net_scheme_heart.tex +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/schemes/model_heart_circulation_0D.tex +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/schemes/simple_circulation_model.tex +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/schemes/simple_circulation_model_heart.tex +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/schemes/spherical_heart_net_scheme.tex +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_1/launch_simulation.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_1/launcher.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_1.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_2/aliases.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_2/create_net.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_2/overview.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_2.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_3/block_configuration.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_3/block_definition.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_3/block_test.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_3/overview.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_3/specific_installations.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_3.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide.rst +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/docker/latex/Dockerfile +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/docker/pyenv/Dockerfile +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/licenses/GPL-3.0-only.txt +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/licenses/LGPL-3.0-only.txt +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/base/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/base/operators.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/base/registers.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/computing/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/computing/assembling.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/computing/models.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/computing/quantities.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/aliases.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/base.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/computing/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/computing/quantities.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/constants.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/description/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/description/blocks.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/description/nets.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/functions.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/simulation/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/simulation/simulations.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/description/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/description/blocks.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/description/flux.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/description/nets.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/io/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/io/aliases.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/io/configuration.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/launcher/__main__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/launcher/configuration.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/launcher/configure/__main__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/launcher/constants.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/launcher/files.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/launcher/series.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/blocks/c_block.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/blocks/rc_block.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/blocks/rcr_block.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/blocks/spherical_cavity_block.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/blocks/valve_rl_block.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/flux/heart_flux_dof_couples.jsonc +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/model_components/active_law_macro_huxley_two_moments.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/model_components/rheology_fiber_additive.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/model_components/spherical_dynamics.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/model_components/velocity_law_hht.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/nets/circulation_alone_net.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/nets/spherical_heart_net.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/simulations/default_forward_simulation.jsonc +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/simulations/default_time.jsonc +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/simulations/newton_method_solver.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/simulations/spherical_heart_forward_simulation.jsonc +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/simulations/spherical_heart_with_respiration_forward_simulation.jsonc +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/blocks/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/blocks/capacitances.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/blocks/cavity.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/blocks/valves.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/functions/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/functions/base_operations.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/functions/first_order.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/functions/piecewise.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/functions/trigonometric.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/functions/watchers.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/model_components/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/model_components/active_law.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/model_components/dynamics.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/model_components/rheology.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/model_components/velocity_law.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/registers/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/registers/load_function_register.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/registers/save_function_register.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/registers/type_register.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/simulation/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/simulation/constants.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/simulation/functions.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/simulation/runtime.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/simulation/saved_quantities.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/simulation/setup.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/simulation/state.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/simulation/time_manager.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/utils/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/utils/dynamic_import_utils.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/utils/exceptions_utils.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/utils/gradient_test_utils.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/utils/math_utils.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/pyproject.toml +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/references/circulation_alone_sim.jsonc +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/references/spherical_heart_respiration_sim.jsonc +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/references/spherical_heart_sim.jsonc +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/ruff.toml +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/base/test_register.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/helpers/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/helpers/assertion_helpers.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/helpers/file_helpers.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_computing/test_assembling.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_computing/test_models.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_computing/test_quantities.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/test_definitions.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/test_generic_save_load.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_alias/test_alias.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_description/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_description/test_config_blocks.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_description/test_config_boundary_condition.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_description/test_config_nets.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_simulation/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_simulation/simulation_reference.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_simulation/test_config_simulation.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_simulation/test_config_solvers.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_simulation/test_config_time.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_simulation/test_functions.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_description/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_description/test_blocks.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_description/test_nets.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_description/test_relations.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_io/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_io/references/alt_config_file_path.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_io/references/commented_config_file_path.jsonc +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_io/references/configuration.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_io/test_aliases.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_io/test_configuration.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_blocks/test_capacitances.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_blocks/test_cavity.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_blocks/test_valves.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_functions/test_base_operations_functions.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_functions/test_first_order_functions.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_functions/test_piecewise_functions.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_functions/test_trigonometric_functions.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_functions/test_watch_functions.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_model_components/test_active_law.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_model_components/test_dynamics_block.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_model_components/test_rheology.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_library/tests_model_components/test_velocity_law_hht.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_references/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_references/circulation_alone/circulation_alone_sim_gradient_test.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_references/circulation_alone/ref_circulation_alone_sim.csv +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_references/conftest.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_references/io.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_references/spherical_heart/ref_spherical_heart_respiration_sim.csv +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_references/spherical_heart/ref_spherical_heart_sim.csv +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_references/spherical_heart/spherical_heart_sim_gradient_test.json +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_references/test_circulation_alone.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_references/test_spherical_heart.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_registers/test_load_register.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_registers/test_save_register.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_registers/test_type_register.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_simulation/__init__.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_simulation/test_runtime.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_simulation/test_setup.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_simulation/test_state.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_simulation/test_time_manager.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_utils/test_math_utils.py +0 -0
- {physioblocks-1.0.1 → physioblocks-1.0.2}/tox.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: physioblocks
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Dynamic: Author
|
|
5
5
|
Dynamic: Author-email
|
|
6
6
|
Dynamic: License
|
|
@@ -124,4 +124,7 @@ python -m physioblocks.launcher references/spherical_heart_sim.jsonc -v -t -s Qu
|
|
|
124
124
|
```
|
|
125
125
|
|
|
126
126
|
|
|
127
|
-
Results will be available in the `$LAUNCHER_FOLDER_PATH$/simulations/QuickStart` series folder
|
|
127
|
+
Results will be available in the `$LAUNCHER_FOLDER_PATH$/simulations/QuickStart` series folder:
|
|
128
|
+
* the csv file contains the simulation results.
|
|
129
|
+
* the html allows you to visualize the results.
|
|
130
|
+
* the log and json files are here for debug purposes.
|
|
@@ -76,4 +76,7 @@ python -m physioblocks.launcher references/spherical_heart_sim.jsonc -v -t -s Qu
|
|
|
76
76
|
```
|
|
77
77
|
|
|
78
78
|
|
|
79
|
-
Results will be available in the `$LAUNCHER_FOLDER_PATH$/simulations/QuickStart` series folder
|
|
79
|
+
Results will be available in the `$LAUNCHER_FOLDER_PATH$/simulations/QuickStart` series folder:
|
|
80
|
+
* the csv file contains the simulation results.
|
|
81
|
+
* the html allows you to visualize the results.
|
|
82
|
+
* the log and json files are here for debug purposes.
|
|
@@ -133,6 +133,13 @@ Solvers Configuration
|
|
|
133
133
|
|
|
134
134
|
Description of available configuration item to build :class:`~physioblocks.simulation.solvers.AbstractSolver` object from a configuration file.
|
|
135
135
|
|
|
136
|
+
|
|
137
|
+
Linear Solver
|
|
138
|
+
-------------
|
|
139
|
+
|
|
140
|
+
* **Class:** :class:`~physioblocks.simulation.solvers.LinearSolver`
|
|
141
|
+
* **Type name:** ``linear_solver``
|
|
142
|
+
|
|
136
143
|
Newton Solver
|
|
137
144
|
-------------
|
|
138
145
|
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_2/create_simulation.rst
RENAMED
|
@@ -89,8 +89,7 @@ Solver
|
|
|
89
89
|
|
|
90
90
|
This field define the solver implementation used to run a single simulation step.
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
Its ``type`` is found in the :ref:`configuration section <library_configuration_simulation_solvers>` of the library
|
|
92
|
+
The ``type`` parameters of available solver are found in the :ref:`configuration section <library_configuration_simulation_solvers>` of the library.
|
|
94
93
|
|
|
95
94
|
.. code:: json
|
|
96
95
|
|
|
@@ -111,6 +110,7 @@ In this case, we set two parameters to the solver:
|
|
|
111
110
|
Concerning our simple example the problem is **linear**, so a **Newton method is not adapted**.
|
|
112
111
|
Still, we should be able to solve the system in two iterations, so ``iteration_max`` is set to 2.
|
|
113
112
|
|
|
113
|
+
A better choice would have been the ``linear_solver``, but we wanted to show the Newton solver in the example because it will be useful for most nets.
|
|
114
114
|
|
|
115
115
|
Time
|
|
116
116
|
^^^^
|
|
@@ -135,7 +135,7 @@ It needs :
|
|
|
135
135
|
}
|
|
136
136
|
|
|
137
137
|
Here we set a 30 seconds simulation starting at 0.0.
|
|
138
|
-
The simulation gives the state each 1ms and can divide a time step in parts of minimum
|
|
138
|
+
The simulation gives the state each 1ms and can divide a time step in parts of minimum length 62.5us before considering it can not solve the global system for the step.
|
|
139
139
|
|
|
140
140
|
Net
|
|
141
141
|
^^^
|
|
@@ -114,6 +114,36 @@ class AbstractSolver(ABC):
|
|
|
114
114
|
"""
|
|
115
115
|
|
|
116
116
|
|
|
117
|
+
LINEAR_SOLVER = "linear_solver"
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
@register_type(LINEAR_SOLVER)
|
|
121
|
+
class LinearSolver(AbstractSolver):
|
|
122
|
+
"""
|
|
123
|
+
Implementation of the :class:`~.AbstractSolver` class for linear problems.
|
|
124
|
+
"""
|
|
125
|
+
|
|
126
|
+
def solve(
|
|
127
|
+
self,
|
|
128
|
+
state: State,
|
|
129
|
+
system: EqSystem,
|
|
130
|
+
magnitudes: dict[str, float] | None = None,
|
|
131
|
+
) -> Solution:
|
|
132
|
+
"""
|
|
133
|
+
Solve the equation system directly
|
|
134
|
+
|
|
135
|
+
:return: the solution
|
|
136
|
+
:rtype: Solution
|
|
137
|
+
"""
|
|
138
|
+
res = system.compute_residual()
|
|
139
|
+
grad = system.compute_gradient()
|
|
140
|
+
|
|
141
|
+
xn = np.linalg.solve(grad, res)
|
|
142
|
+
x = state.state_vector - xn
|
|
143
|
+
|
|
144
|
+
return Solution(x, True)
|
|
145
|
+
|
|
146
|
+
|
|
117
147
|
# Type id for the Newton Solver
|
|
118
148
|
NEWTON_SOLVER_TYPE_ID = "newton_solver"
|
|
119
149
|
|
|
@@ -28,9 +28,10 @@ from unittest.mock import Mock, patch
|
|
|
28
28
|
|
|
29
29
|
import numpy as np
|
|
30
30
|
import pytest
|
|
31
|
+
from numpy.linalg import LinAlgError
|
|
31
32
|
|
|
32
33
|
from physioblocks.computing.assembling import EqSystem
|
|
33
|
-
from physioblocks.simulation.solvers import AbstractSolver, NewtonSolver
|
|
34
|
+
from physioblocks.simulation.solvers import AbstractSolver, LinearSolver, NewtonSolver
|
|
34
35
|
from physioblocks.simulation.state import State
|
|
35
36
|
|
|
36
37
|
|
|
@@ -68,6 +69,12 @@ def mock_gradient():
|
|
|
68
69
|
)
|
|
69
70
|
|
|
70
71
|
|
|
72
|
+
def mock_singular_gradient():
|
|
73
|
+
return np.array(
|
|
74
|
+
[[0, 0], [0, 0]],
|
|
75
|
+
)
|
|
76
|
+
|
|
77
|
+
|
|
71
78
|
@pytest.fixture
|
|
72
79
|
def system() -> EqSystem:
|
|
73
80
|
return EqSystem(2)
|
|
@@ -94,6 +101,31 @@ class TestAbstractSolver:
|
|
|
94
101
|
assert solver_mag.tolerance == pytest.approx(1e-12)
|
|
95
102
|
|
|
96
103
|
|
|
104
|
+
class TestLinearSolver:
|
|
105
|
+
@patch.multiple(
|
|
106
|
+
EqSystem,
|
|
107
|
+
compute_residual=Mock(return_value=mock_residual_converge()),
|
|
108
|
+
compute_gradient=Mock(return_value=mock_gradient()),
|
|
109
|
+
)
|
|
110
|
+
def test_run(self, state, system):
|
|
111
|
+
solver = LinearSolver()
|
|
112
|
+
sol = solver.solve(state, system)
|
|
113
|
+
|
|
114
|
+
assert sol.converged is True
|
|
115
|
+
assert sol.x == pytest.approx([0, 0])
|
|
116
|
+
|
|
117
|
+
@patch.multiple(
|
|
118
|
+
EqSystem,
|
|
119
|
+
compute_residual=Mock(return_value=mock_residual_converge()),
|
|
120
|
+
compute_gradient=Mock(return_value=mock_singular_gradient()),
|
|
121
|
+
)
|
|
122
|
+
def test_singular_matrix(self, state, system):
|
|
123
|
+
solver = LinearSolver()
|
|
124
|
+
|
|
125
|
+
with pytest.raises(LinAlgError):
|
|
126
|
+
solver.solve(state, system)
|
|
127
|
+
|
|
128
|
+
|
|
97
129
|
class TestNewtonSolver:
|
|
98
130
|
@patch.multiple(
|
|
99
131
|
EqSystem,
|
|
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.0.1 → physioblocks-1.0.2}/doc/source/schemes/circulation_net_scheme_heart.tex
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/schemes/simple_circulation_model_heart.tex
RENAMED
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/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
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_3/block_configuration.rst
RENAMED
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/doc/source/user_guide/level_3/block_definition.rst
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/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.0.1 → physioblocks-1.0.2}/physioblocks/configuration/computing/quantities.py
RENAMED
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/configuration/description/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/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
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/aliases/blocks/rcr_block.json
RENAMED
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/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.0.1 → physioblocks-1.0.2}/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
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/physioblocks/library/model_components/active_law.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/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
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_description/test_config_blocks.py
RENAMED
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_description/test_config_nets.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_simulation/test_config_solvers.py
RENAMED
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_config/tests_simulation/test_config_time.py
RENAMED
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/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.0.1 → physioblocks-1.0.2}/tests/tests_io/references/alt_config_file_path.json
RENAMED
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/tests/tests_io/references/commented_config_file_path.jsonc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{physioblocks-1.0.1 → physioblocks-1.0.2}/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
|