fullflow 3.0.0__tar.gz → 4.0.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.
Files changed (124) hide show
  1. {fullflow-3.0.0 → fullflow-4.0.0}/CHANGELOG.md +14 -0
  2. {fullflow-3.0.0 → fullflow-4.0.0}/PKG-INFO +669 -11
  3. {fullflow-3.0.0 → fullflow-4.0.0}/README.md +667 -8
  4. fullflow-4.0.0/examples/linearization/1steady_state.py +61 -0
  5. fullflow-4.0.0/examples/linearization/2transient.py +128 -0
  6. fullflow-4.0.0/examples/linearization/3steady_state_sweep.py +106 -0
  7. {fullflow-3.0.0 → fullflow-4.0.0}/pyproject.toml +3 -12
  8. {fullflow-3.0.0 → fullflow-4.0.0}/pyproject.toml.orig +3 -12
  9. fullflow-4.0.0/src/fullflow/Solvers/LINEARIZATION.md +235 -0
  10. fullflow-4.0.0/src/fullflow/Solvers/__init__.py +6 -0
  11. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/equations.py +1 -0
  12. fullflow-4.0.0/src/fullflow/Solvers/linearization/__init__.py +5 -0
  13. fullflow-4.0.0/src/fullflow/Solvers/linearization/checkpoints.py +190 -0
  14. fullflow-4.0.0/src/fullflow/Solvers/linearization/diagnostics.py +117 -0
  15. fullflow-4.0.0/src/fullflow/Solvers/linearization/operating_point.py +283 -0
  16. fullflow-4.0.0/src/fullflow/Solvers/linearization/results.py +80 -0
  17. fullflow-4.0.0/src/fullflow/Solvers/linearization/solver.py +348 -0
  18. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/steady_state/__init__.py +1 -1
  19. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/steady_state/evaluation.py +2 -0
  20. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/steady_state/models.py +1 -0
  21. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/steady_state/runtime.py +15 -0
  22. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/steady_state/solver.py +69 -0
  23. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/steady_state/statistics.py +19 -0
  24. fullflow-4.0.0/src/fullflow/Solvers/transient/__init__.py +5 -0
  25. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/transient/diagnostics.py +7 -0
  26. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/transient/evaluation.py +3 -0
  27. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/transient/models.py +7 -0
  28. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/transient/newton.py +2 -0
  29. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/transient/operations.py +8 -0
  30. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/transient/runtime.py +20 -0
  31. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/transient/solver.py +36 -0
  32. fullflow-4.0.0/src/fullflow/System/Components/Actuators.py +86 -0
  33. fullflow-4.0.0/src/fullflow/System/Components/Controllers.py +123 -0
  34. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/__init__.py +1 -1
  35. fullflow-3.0.0/src/fullflow/Solvers/__init__.py +0 -9
  36. fullflow-3.0.0/src/fullflow/Solvers/transient/__init__.py +0 -7
  37. fullflow-3.0.0/src/fullflow/System/Components/Actuators.py +0 -157
  38. fullflow-3.0.0/src/fullflow/System/Components/Controllers.py +0 -270
  39. fullflow-3.0.0/tests/test_imports.py +0 -6
  40. {fullflow-3.0.0 → fullflow-4.0.0}/LICENSE +0 -0
  41. {fullflow-3.0.0 → fullflow-4.0.0}/THIRD_PARTY_LICENSES.md +0 -0
  42. {fullflow-3.0.0 → fullflow-4.0.0}/docs/system_reference.md +0 -0
  43. {fullflow-3.0.0 → fullflow-4.0.0}/examples/general/0state_basics.py +0 -0
  44. {fullflow-3.0.0 → fullflow-4.0.0}/examples/general/1state_bounds_tracking.py +0 -0
  45. {fullflow-3.0.0 → fullflow-4.0.0}/examples/general/2balance_basic.py +0 -0
  46. {fullflow-3.0.0 → fullflow-4.0.0}/examples/general/3balance_multiple.py +0 -0
  47. {fullflow-3.0.0 → fullflow-4.0.0}/examples/general/4composition_mixer.py +0 -0
  48. {fullflow-3.0.0 → fullflow-4.0.0}/examples/general/5composition_splitter.py +0 -0
  49. {fullflow-3.0.0 → fullflow-4.0.0}/examples/general/6lookup_function.py +0 -0
  50. {fullflow-3.0.0 → fullflow-4.0.0}/examples/general/7lookup_class_chaining.py +0 -0
  51. {fullflow-3.0.0 → fullflow-4.0.0}/examples/general/8map_manual.py +0 -0
  52. {fullflow-3.0.0 → fullflow-4.0.0}/examples/general/9map_hdf5.py +0 -0
  53. {fullflow-3.0.0 → fullflow-4.0.0}/examples/steady_state/0function_lookup.py +0 -0
  54. {fullflow-3.0.0 → fullflow-4.0.0}/examples/steady_state/1simple_pipe.py +0 -0
  55. {fullflow-3.0.0 → fullflow-4.0.0}/examples/steady_state/2compressible_flow.py +0 -0
  56. {fullflow-3.0.0 → fullflow-4.0.0}/examples/steady_state/3custom_component.py +0 -0
  57. {fullflow-3.0.0 → fullflow-4.0.0}/examples/steady_state/4cavitating_venturi.py +0 -0
  58. {fullflow-3.0.0 → fullflow-4.0.0}/examples/steady_state/5heat_exchanger.py +0 -0
  59. {fullflow-3.0.0 → fullflow-4.0.0}/examples/steady_state/6flow_splitter.py +0 -0
  60. {fullflow-3.0.0 → fullflow-4.0.0}/examples/steady_state/7flow_mixer.py +0 -0
  61. {fullflow-3.0.0 → fullflow-4.0.0}/examples/steady_state/8turbopump.py +0 -0
  62. {fullflow-3.0.0 → fullflow-4.0.0}/examples/steady_state/9equilibrium_nozzle.py +0 -0
  63. {fullflow-3.0.0 → fullflow-4.0.0}/examples/testing/1test_data_anchoring.py +0 -0
  64. {fullflow-3.0.0 → fullflow-4.0.0}/examples/testing/2sensor_events.py +0 -0
  65. {fullflow-3.0.0 → fullflow-4.0.0}/examples/testing/3sequences_and_commands.py +0 -0
  66. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/10custom_component.py +0 -0
  67. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/11heat_transfer.py +0 -0
  68. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/12heat_exchanger.py +0 -0
  69. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/13force_steady_heat_transfer.py +0 -0
  70. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/14force_steady_fluid.py +0 -0
  71. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/15piston_cylinder.py +0 -0
  72. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/16balloon.py +0 -0
  73. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/17relief_valve.py +0 -0
  74. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/18combustion_nozzle.py +0 -0
  75. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/19cavitating_venturi.py +0 -0
  76. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/1simple_pipe.py +0 -0
  77. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/20gas_turbine.py +0 -0
  78. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/21heatsink_tca.py +0 -0
  79. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/22water_hammer.py +0 -0
  80. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/23pid_throttle.py +0 -0
  81. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/24sudden_valve_opening.py +0 -0
  82. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/25engine_startup.py +0 -0
  83. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/2node_inertia.py +0 -0
  84. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/3shock_tube.py +0 -0
  85. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/4copv_blowdown.py +0 -0
  86. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/5bang_bang_control.py +0 -0
  87. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/6pump_transient.py +0 -0
  88. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/7flow_mixer.py +0 -0
  89. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/8flow_splitter.py +0 -0
  90. {fullflow-3.0.0 → fullflow-4.0.0}/examples/transient/9model_options.py +0 -0
  91. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Exceptions.py +0 -0
  92. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Exports/EXPORTS.md +0 -0
  93. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Exports/HDF5.py +0 -0
  94. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Exports/__init__.py +0 -0
  95. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/STEADY_STATE_SOLVER.md +0 -0
  96. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/TRANSIENT_SOLVER.md +0 -0
  97. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/balance_filtering.py +0 -0
  98. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/steady_state/diagnostics.py +0 -0
  99. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/steady_state/operations.py +0 -0
  100. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/steady_state/results.py +0 -0
  101. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/steady_state/settings.py +0 -0
  102. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/transient/results.py +0 -0
  103. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/Solvers/transient/settings.py +0 -0
  104. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Balance.py +0 -0
  105. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Component.py +0 -0
  106. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/Composition.py +0 -0
  107. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/CompressibleFlow.py +0 -0
  108. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/ConvectionCoefficients.py +0 -0
  109. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/FrictionFactors.py +0 -0
  110. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/GeneralFlow.py +0 -0
  111. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/HeatTransfer.py +0 -0
  112. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/Lookup.py +0 -0
  113. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/Maps.py +0 -0
  114. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/Nodes.py +0 -0
  115. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/RocketPerformance.py +0 -0
  116. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/Sensor.py +0 -0
  117. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/Sequence.py +0 -0
  118. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/Turbomachinery.py +0 -0
  119. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Components/__init__.py +0 -0
  120. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Model.py +0 -0
  121. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/Network.py +0 -0
  122. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/SYSTEM.md +0 -0
  123. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/State.py +0 -0
  124. {fullflow-3.0.0 → fullflow-4.0.0}/src/fullflow/System/__init__.py +0 -0
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## 4.0.0
4
+
5
+ FullFlow 4.0.0 adds local linearization of coupled nonlinear network models for sensitivity analysis and control-system development.
6
+
7
+ ### Linearization
8
+
9
+ * Added `SteadyState.linearize()` and `Transient.linearize()` as native solver methods, without import-time class modification.
10
+ * Added continuous-time state-space linearization in physical conserved-state coordinates, returning `A`, `B`, `C`, and `D`, baseline vectors, variable labels, and operating-point metadata.
11
+
12
+ ### Limitations
13
+
14
+ * Models are local, continuous-time, and valid only within a fixed operating mode.
15
+ * The implementation does not include event-time sensitivities, automatic state-space simulation, model reduction, or universal protection against side effects in arbitrary custom components.
16
+
3
17
  ## 3.0.0
4
18
 
5
19
  FullFlow 3.0.0 focuses on solver performance, transient robustness, consistent