fullflow 2.0.0__tar.gz → 2.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.
Files changed (116) hide show
  1. {fullflow-2.0.0 → fullflow-2.0.2}/CHANGELOG.md +44 -0
  2. fullflow-2.0.2/PKG-INFO +1942 -0
  3. fullflow-2.0.2/README.md +1898 -0
  4. {fullflow-2.0.0 → fullflow-2.0.2}/examples/testing/1test_data_anchoring.py +5 -6
  5. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/17relief_valve.py +22 -40
  6. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/5bang_bang_control.py +43 -41
  7. fullflow-2.0.2/pyproject.toml +101 -0
  8. fullflow-2.0.0/pyproject.toml → fullflow-2.0.2/pyproject.toml.orig +2 -2
  9. fullflow-2.0.2/src/fullflow/System/Components/Controllers.py +559 -0
  10. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/Sensor.py +5 -4
  11. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/__init__.py +1 -1
  12. {fullflow-2.0.0 → fullflow-2.0.2}/tests/test_imports.py +3 -1
  13. fullflow-2.0.0/CITATION.cff +0 -19
  14. fullflow-2.0.0/CODE_OF_CONDUCT.md +0 -34
  15. fullflow-2.0.0/CONTRIBUTING.md +0 -22
  16. fullflow-2.0.0/PKG-INFO +0 -690
  17. fullflow-2.0.0/README.md +0 -646
  18. fullflow-2.0.0/SECURITY.md +0 -22
  19. fullflow-2.0.0/src/fullflow/System/Components/Controllers.py +0 -220
  20. {fullflow-2.0.0 → fullflow-2.0.2}/LICENSE +0 -0
  21. {fullflow-2.0.0 → fullflow-2.0.2}/THIRD_PARTY_LICENSES.md +0 -0
  22. {fullflow-2.0.0 → fullflow-2.0.2}/docs/system_reference.md +0 -0
  23. {fullflow-2.0.0 → fullflow-2.0.2}/examples/general/0state_basics.py +0 -0
  24. {fullflow-2.0.0 → fullflow-2.0.2}/examples/general/1state_bounds_tracking.py +0 -0
  25. {fullflow-2.0.0 → fullflow-2.0.2}/examples/general/2balance_basic.py +0 -0
  26. {fullflow-2.0.0 → fullflow-2.0.2}/examples/general/3balance_multiple.py +0 -0
  27. {fullflow-2.0.0 → fullflow-2.0.2}/examples/general/4composition_mixer.py +0 -0
  28. {fullflow-2.0.0 → fullflow-2.0.2}/examples/general/5composition_splitter.py +0 -0
  29. {fullflow-2.0.0 → fullflow-2.0.2}/examples/general/6lookup_function.py +0 -0
  30. {fullflow-2.0.0 → fullflow-2.0.2}/examples/general/7lookup_class_chaining.py +0 -0
  31. {fullflow-2.0.0 → fullflow-2.0.2}/examples/general/8map_manual.py +0 -0
  32. {fullflow-2.0.0 → fullflow-2.0.2}/examples/general/9map_hdf5.py +0 -0
  33. {fullflow-2.0.0 → fullflow-2.0.2}/examples/steady_state/0function_lookup.py +0 -0
  34. {fullflow-2.0.0 → fullflow-2.0.2}/examples/steady_state/1simple_pipe.py +0 -0
  35. {fullflow-2.0.0 → fullflow-2.0.2}/examples/steady_state/2compressible_flow.py +0 -0
  36. {fullflow-2.0.0 → fullflow-2.0.2}/examples/steady_state/3custom_component.py +0 -0
  37. {fullflow-2.0.0 → fullflow-2.0.2}/examples/steady_state/4cavitating_venturi.py +0 -0
  38. {fullflow-2.0.0 → fullflow-2.0.2}/examples/steady_state/5heat_exchanger.py +0 -0
  39. {fullflow-2.0.0 → fullflow-2.0.2}/examples/steady_state/6flow_splitter.py +0 -0
  40. {fullflow-2.0.0 → fullflow-2.0.2}/examples/steady_state/7flow_mixer.py +0 -0
  41. {fullflow-2.0.0 → fullflow-2.0.2}/examples/steady_state/8turbopump.py +0 -0
  42. {fullflow-2.0.0 → fullflow-2.0.2}/examples/steady_state/9equilibrium_nozzle.py +0 -0
  43. {fullflow-2.0.0 → fullflow-2.0.2}/examples/testing/2sensor_events.py +0 -0
  44. {fullflow-2.0.0 → fullflow-2.0.2}/examples/testing/3sequences_and_commands.py +0 -0
  45. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/10custom_component.py +0 -0
  46. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/11heat_transfer.py +0 -0
  47. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/12heat_exchanger.py +0 -0
  48. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/13force_steady_heat_transfer.py +0 -0
  49. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/14force_steady_fluid.py +0 -0
  50. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/15piston_cylinder.py +0 -0
  51. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/16balloon.py +0 -0
  52. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/18combustion_nozzle.py +0 -0
  53. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/19cavitating_venturi.py +0 -0
  54. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/1simple_pipe.py +0 -0
  55. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/20gas_turbine.py +0 -0
  56. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/21heatsink_tca.py +0 -0
  57. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/22water_hammer.py +0 -0
  58. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/23pid_throttle.py +0 -0
  59. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/24sudden_valve_opening.py +0 -0
  60. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/25engine_startup.py +0 -0
  61. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/2node_inertia.py +0 -0
  62. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/3shock_tube.py +0 -0
  63. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/4copv_blowdown.py +0 -0
  64. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/6pump_transient.py +0 -0
  65. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/7flow_mixer.py +0 -0
  66. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/8flow_splitter.py +0 -0
  67. {fullflow-2.0.0 → fullflow-2.0.2}/examples/transient/9model_options.py +0 -0
  68. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Exceptions.py +0 -0
  69. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Exports/EXPORTS.md +0 -0
  70. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Exports/HDF5.py +0 -0
  71. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Exports/__init__.py +0 -0
  72. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/STEADY_STATE_SOLVER.md +0 -0
  73. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/TRANSIENT_SOLVER.md +0 -0
  74. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/__init__.py +0 -0
  75. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/balance_filtering.py +0 -0
  76. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/equations.py +0 -0
  77. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/steady_state/__init__.py +0 -0
  78. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/steady_state/diagnostics.py +0 -0
  79. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/steady_state/evaluation.py +0 -0
  80. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/steady_state/models.py +0 -0
  81. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/steady_state/operations.py +0 -0
  82. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/steady_state/results.py +0 -0
  83. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/steady_state/runtime.py +0 -0
  84. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/steady_state/settings.py +0 -0
  85. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/steady_state/solver.py +0 -0
  86. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/steady_state/statistics.py +0 -0
  87. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/transient/__init__.py +0 -0
  88. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/transient/diagnostics.py +0 -0
  89. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/transient/evaluation.py +0 -0
  90. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/transient/models.py +0 -0
  91. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/transient/operations.py +0 -0
  92. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/transient/results.py +0 -0
  93. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/transient/runtime.py +0 -0
  94. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/transient/settings.py +0 -0
  95. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/Solvers/transient/solver.py +0 -0
  96. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Balance.py +0 -0
  97. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Component.py +0 -0
  98. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/Actuators.py +0 -0
  99. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/Composition.py +0 -0
  100. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/CompressibleFlow.py +0 -0
  101. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/ConvectionCoefficients.py +0 -0
  102. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/FrictionFactors.py +0 -0
  103. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/GeneralFlow.py +0 -0
  104. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/HeatTransfer.py +0 -0
  105. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/Lookup.py +0 -0
  106. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/Maps.py +0 -0
  107. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/Nodes.py +0 -0
  108. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/RocketPerformance.py +0 -0
  109. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/Sequence.py +0 -0
  110. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/Turbomachinery.py +0 -0
  111. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Components/__init__.py +0 -0
  112. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Model.py +0 -0
  113. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/Network.py +0 -0
  114. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/SYSTEM.md +0 -0
  115. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/State.py +0 -0
  116. {fullflow-2.0.0 → fullflow-2.0.2}/src/fullflow/System/__init__.py +0 -0
@@ -1,5 +1,49 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.0.2
4
+
5
+ * Updated the FullPlot dependency to `fullplot>=0.1.1`.
6
+ * Updated Sensor missing-data documentation to match current `extend` behavior.
7
+ * Updated the test-data anchoring example to use shared `TimeAxis.window(...)` windowing.
8
+
9
+ ## 2.0.1
10
+
11
+ ### PID controller
12
+
13
+ * Reworked PID integral action as a normal public FullFlow dynamic State instead
14
+ of advancing controller history inside repeated nonlinear residual evaluations.
15
+ * Added ``integral_error`` and ``integral_error_dot`` as the PID dynamic pair so
16
+ the implicit transient solver integrates accumulated error with the rest of the
17
+ network.
18
+ * Changed derivative history to use the previous accepted ``error`` and network
19
+ time through the public ``State.previous`` interface.
20
+ * Made transient takeover bumpless whether ``trim`` is omitted or supplied.
21
+ The initialized command now defines the first PID output in both cases.
22
+ * Kept ``trim`` as a live feed-forward contribution after startup, so later trim
23
+ changes still move the requested command immediately.
24
+ * Improved conditional-integration anti-windup so it considers the direction of
25
+ the integral contribution and supports either sign of integral gain.
26
+ * Added public controller diagnostics for proportional, integral, derivative,
27
+ raw command, saturation status, and startup command bias.
28
+ * Added clear validation for reversed command limits and derived, non-writable
29
+ command States.
30
+ * Kept the PID transient-only so steady-state solves preserve the user-established
31
+ plant command and the controller takes over when transient integration begins.
32
+ * Did not add or remove PID constructor arguments.
33
+
34
+ ### Sequence examples
35
+
36
+ * Replaced hidden mutable closure state in the bang-bang tank main-valve example
37
+ with an accepted-timestep Sensor-triggered command for the one-time opening
38
+ event.
39
+ * Updated bang-bang and relief-valve hysteresis examples to retain their previous
40
+ accepted command through explicit State inputs rather than hidden Python
41
+ closure variables.
42
+ * Preserved repeated relief-valve open/close/reopen behavior within one transient
43
+ simulation.
44
+ * Added comments explaining when to use a one-time Sensor command versus
45
+ repeatable State-based hysteresis.
46
+
3
47
  ## 2.0.0
4
48
 
5
49
  FullFlow 2.0.0 is a publish-ready public release focused on packaging readiness,