fullflow 0.1.2__tar.gz → 2.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.
- fullflow-2.0.0/CHANGELOG.md +199 -0
- fullflow-2.0.0/CITATION.cff +19 -0
- fullflow-2.0.0/CODE_OF_CONDUCT.md +34 -0
- fullflow-2.0.0/CONTRIBUTING.md +22 -0
- fullflow-2.0.0/LICENSE +674 -0
- fullflow-2.0.0/PKG-INFO +690 -0
- fullflow-2.0.0/README.md +646 -0
- fullflow-2.0.0/SECURITY.md +22 -0
- fullflow-2.0.0/THIRD_PARTY_LICENSES.md +103 -0
- fullflow-2.0.0/docs/system_reference.md +1946 -0
- fullflow-2.0.0/examples/general/0state_basics.py +108 -0
- fullflow-2.0.0/examples/general/1state_bounds_tracking.py +76 -0
- fullflow-2.0.0/examples/general/2balance_basic.py +49 -0
- fullflow-2.0.0/examples/general/3balance_multiple.py +55 -0
- fullflow-2.0.0/examples/general/4composition_mixer.py +57 -0
- fullflow-2.0.0/examples/general/5composition_splitter.py +57 -0
- fullflow-2.0.0/examples/general/6lookup_function.py +64 -0
- fullflow-2.0.0/examples/general/7lookup_class_chaining.py +71 -0
- fullflow-2.0.0/examples/general/8map_manual.py +50 -0
- fullflow-2.0.0/examples/general/9map_hdf5.py +92 -0
- fullflow-2.0.0/examples/steady_state/0function_lookup.py +149 -0
- fullflow-2.0.0/examples/steady_state/1simple_pipe.py +151 -0
- fullflow-2.0.0/examples/steady_state/2compressible_flow.py +229 -0
- fullflow-2.0.0/examples/steady_state/3custom_component.py +534 -0
- fullflow-2.0.0/examples/steady_state/4cavitating_venturi.py +511 -0
- fullflow-2.0.0/examples/steady_state/5heat_exchanger.py +983 -0
- fullflow-2.0.0/examples/steady_state/6flow_splitter.py +386 -0
- fullflow-2.0.0/examples/steady_state/7flow_mixer.py +221 -0
- fullflow-2.0.0/examples/steady_state/8turbopump.py +587 -0
- fullflow-2.0.0/examples/steady_state/9equilibrium_nozzle.py +739 -0
- fullflow-2.0.0/examples/testing/1test_data_anchoring.py +305 -0
- fullflow-2.0.0/examples/testing/2sensor_events.py +143 -0
- fullflow-2.0.0/examples/testing/3sequences_and_commands.py +242 -0
- fullflow-2.0.0/examples/transient/10custom_component.py +166 -0
- fullflow-2.0.0/examples/transient/11heat_transfer.py +211 -0
- fullflow-2.0.0/examples/transient/12heat_exchanger.py +1113 -0
- fullflow-2.0.0/examples/transient/13force_steady_heat_transfer.py +185 -0
- fullflow-2.0.0/examples/transient/14force_steady_fluid.py +246 -0
- fullflow-2.0.0/examples/transient/15piston_cylinder.py +160 -0
- fullflow-2.0.0/examples/transient/16balloon.py +173 -0
- fullflow-2.0.0/examples/transient/17relief_valve.py +225 -0
- fullflow-2.0.0/examples/transient/18combustion_nozzle.py +345 -0
- fullflow-2.0.0/examples/transient/19cavitating_venturi.py +703 -0
- fullflow-2.0.0/examples/transient/1simple_pipe.py +147 -0
- fullflow-2.0.0/examples/transient/20gas_turbine.py +625 -0
- fullflow-2.0.0/examples/transient/21heatsink_tca.py +1027 -0
- fullflow-2.0.0/examples/transient/22water_hammer.py +614 -0
- fullflow-2.0.0/examples/transient/23pid_throttle.py +885 -0
- fullflow-2.0.0/examples/transient/24sudden_valve_opening.py +701 -0
- fullflow-2.0.0/examples/transient/25engine_startup.py +1381 -0
- fullflow-2.0.0/examples/transient/2node_inertia.py +297 -0
- fullflow-2.0.0/examples/transient/3shock_tube.py +236 -0
- fullflow-2.0.0/examples/transient/4copv_blowdown.py +162 -0
- fullflow-2.0.0/examples/transient/5bang_bang_control.py +506 -0
- fullflow-2.0.0/examples/transient/6pump_transient.py +483 -0
- fullflow-2.0.0/examples/transient/7flow_mixer.py +496 -0
- fullflow-2.0.0/examples/transient/8flow_splitter.py +598 -0
- fullflow-2.0.0/examples/transient/9model_options.py +578 -0
- {fullflow-0.1.2 → fullflow-2.0.0}/pyproject.toml +45 -15
- fullflow-2.0.0/src/fullflow/Exceptions.py +114 -0
- fullflow-2.0.0/src/fullflow/Exports/EXPORTS.md +202 -0
- fullflow-2.0.0/src/fullflow/Exports/HDF5.py +1017 -0
- fullflow-2.0.0/src/fullflow/Exports/__init__.py +31 -0
- fullflow-2.0.0/src/fullflow/Solvers/STEADY_STATE_SOLVER.md +361 -0
- fullflow-2.0.0/src/fullflow/Solvers/TRANSIENT_SOLVER.md +361 -0
- fullflow-2.0.0/src/fullflow/Solvers/__init__.py +9 -0
- fullflow-2.0.0/src/fullflow/Solvers/balance_filtering.py +81 -0
- fullflow-2.0.0/src/fullflow/Solvers/equations.py +230 -0
- fullflow-2.0.0/src/fullflow/Solvers/steady_state/__init__.py +23 -0
- fullflow-2.0.0/src/fullflow/Solvers/steady_state/diagnostics.py +373 -0
- fullflow-2.0.0/src/fullflow/Solvers/steady_state/evaluation.py +149 -0
- fullflow-2.0.0/src/fullflow/Solvers/steady_state/models.py +340 -0
- fullflow-2.0.0/src/fullflow/Solvers/steady_state/operations.py +363 -0
- fullflow-2.0.0/src/fullflow/Solvers/steady_state/results.py +33 -0
- fullflow-2.0.0/src/fullflow/Solvers/steady_state/runtime.py +593 -0
- fullflow-2.0.0/src/fullflow/Solvers/steady_state/settings.py +68 -0
- fullflow-2.0.0/src/fullflow/Solvers/steady_state/solver.py +818 -0
- fullflow-2.0.0/src/fullflow/Solvers/steady_state/statistics.py +681 -0
- fullflow-2.0.0/src/fullflow/Solvers/transient/__init__.py +7 -0
- fullflow-2.0.0/src/fullflow/Solvers/transient/diagnostics.py +349 -0
- fullflow-2.0.0/src/fullflow/Solvers/transient/evaluation.py +109 -0
- fullflow-2.0.0/src/fullflow/Solvers/transient/models.py +307 -0
- fullflow-2.0.0/src/fullflow/Solvers/transient/operations.py +499 -0
- fullflow-2.0.0/src/fullflow/Solvers/transient/results.py +89 -0
- fullflow-2.0.0/src/fullflow/Solvers/transient/runtime.py +1303 -0
- fullflow-2.0.0/src/fullflow/Solvers/transient/settings.py +70 -0
- fullflow-2.0.0/src/fullflow/Solvers/transient/solver.py +682 -0
- fullflow-2.0.0/src/fullflow/System/Balance.py +99 -0
- fullflow-2.0.0/src/fullflow/System/Component.py +354 -0
- fullflow-2.0.0/src/fullflow/System/Components/Actuators.py +181 -0
- fullflow-2.0.0/src/fullflow/System/Components/Composition.py +214 -0
- fullflow-2.0.0/src/fullflow/System/Components/CompressibleFlow.py +449 -0
- fullflow-2.0.0/src/fullflow/System/Components/Controllers.py +220 -0
- fullflow-2.0.0/src/fullflow/System/Components/ConvectionCoefficients.py +615 -0
- fullflow-2.0.0/src/fullflow/System/Components/FrictionFactors.py +218 -0
- fullflow-2.0.0/src/fullflow/System/Components/GeneralFlow.py +853 -0
- fullflow-2.0.0/src/fullflow/System/Components/HeatTransfer.py +355 -0
- fullflow-2.0.0/src/fullflow/System/Components/Lookup.py +1833 -0
- fullflow-2.0.0/src/fullflow/System/Components/Maps.py +629 -0
- fullflow-2.0.0/src/fullflow/System/Components/Nodes.py +401 -0
- fullflow-2.0.0/src/fullflow/System/Components/RocketPerformance.py +92 -0
- fullflow-2.0.0/src/fullflow/System/Components/Sensor.py +642 -0
- fullflow-2.0.0/src/fullflow/System/Components/Sequence.py +996 -0
- fullflow-2.0.0/src/fullflow/System/Components/Turbomachinery.py +351 -0
- fullflow-2.0.0/src/fullflow/System/Components/__init__.py +14 -0
- fullflow-2.0.0/src/fullflow/System/Model.py +337 -0
- fullflow-2.0.0/src/fullflow/System/Network.py +618 -0
- fullflow-2.0.0/src/fullflow/System/SYSTEM.md +235 -0
- fullflow-2.0.0/src/fullflow/System/State.py +819 -0
- {fullflow-0.1.2 → fullflow-2.0.0}/src/fullflow/System/__init__.py +1 -2
- {fullflow-0.1.2 → fullflow-2.0.0}/src/fullflow/__init__.py +4 -1
- fullflow-2.0.0/tests/test_imports.py +4 -0
- fullflow-0.1.2/PKG-INFO +0 -570
- fullflow-0.1.2/README.md +0 -535
- fullflow-0.1.2/src/fullflow/Exceptions/LookupExceptions.py +0 -5
- fullflow-0.1.2/src/fullflow/Exceptions/__init__.py +0 -1
- fullflow-0.1.2/src/fullflow/Solvers/SparsityDetector.py +0 -267
- fullflow-0.1.2/src/fullflow/Solvers/SteadyState.py +0 -1592
- fullflow-0.1.2/src/fullflow/Solvers/Transient.py +0 -11
- fullflow-0.1.2/src/fullflow/Solvers/__init__.py +0 -3
- fullflow-0.1.2/src/fullflow/System/Balance.py +0 -190
- fullflow-0.1.2/src/fullflow/System/Component.py +0 -207
- fullflow-0.1.2/src/fullflow/System/Components/Branches/CompressibleFlow.py +0 -960
- fullflow-0.1.2/src/fullflow/System/Components/Branches/ConvectionCoefficients.py +0 -980
- fullflow-0.1.2/src/fullflow/System/Components/Branches/DarcyWeisbach.py +0 -259
- fullflow-0.1.2/src/fullflow/System/Components/Branches/DischargeCoefficient.py +0 -185
- fullflow-0.1.2/src/fullflow/System/Components/Branches/FrictionFactors.py +0 -181
- fullflow-0.1.2/src/fullflow/System/Components/Branches/HeatTransfer.py +0 -391
- fullflow-0.1.2/src/fullflow/System/Components/Branches/Nozzles.py +0 -41
- fullflow-0.1.2/src/fullflow/System/Components/Branches/Pumps.py +0 -318
- fullflow-0.1.2/src/fullflow/System/Components/Branches/Regulators.py +0 -89
- fullflow-0.1.2/src/fullflow/System/Components/Branches/Turbines.py +0 -282
- fullflow-0.1.2/src/fullflow/System/Components/Branches/__init__.py +0 -10
- fullflow-0.1.2/src/fullflow/System/Components/Lookups/FluidUtilities.py +0 -65
- fullflow-0.1.2/src/fullflow/System/Components/Lookups/IdealGasLookups.py +0 -790
- fullflow-0.1.2/src/fullflow/System/Components/Lookups/MaterialLookups.py +0 -280
- fullflow-0.1.2/src/fullflow/System/Components/Lookups/PropellantLookups.py +0 -383
- fullflow-0.1.2/src/fullflow/System/Components/Lookups/RealFluidLookups.py +0 -523
- fullflow-0.1.2/src/fullflow/System/Components/Lookups/__init__.py +0 -5
- fullflow-0.1.2/src/fullflow/System/Components/Nodes/Boundaries.py +0 -89
- fullflow-0.1.2/src/fullflow/System/Components/Nodes/CombustionChambers.py +0 -62
- fullflow-0.1.2/src/fullflow/System/Components/Nodes/Junctions.py +0 -581
- fullflow-0.1.2/src/fullflow/System/Components/Nodes/Solids.py +0 -133
- fullflow-0.1.2/src/fullflow/System/Components/Nodes/Tanks.py +0 -182
- fullflow-0.1.2/src/fullflow/System/Components/Nodes/Volumes.py +0 -191
- fullflow-0.1.2/src/fullflow/System/Components/Nodes/__init__.py +0 -6
- fullflow-0.1.2/src/fullflow/System/Components/Sensors/PressureTransducers.py +0 -24
- fullflow-0.1.2/src/fullflow/System/Components/Sensors/Thermocouples.py +0 -24
- fullflow-0.1.2/src/fullflow/System/Components/Sensors/__init__.py +0 -2
- fullflow-0.1.2/src/fullflow/System/Components/__init__.py +0 -4
- fullflow-0.1.2/src/fullflow/System/Composition.py +0 -164
- fullflow-0.1.2/src/fullflow/System/Model.py +0 -349
- fullflow-0.1.2/src/fullflow/System/Network.py +0 -546
- fullflow-0.1.2/src/fullflow/System/State.py +0 -412
- fullflow-0.1.2/src/fullflow/Utilities/RocketCEAUtilities.py +0 -182
- fullflow-0.1.2/src/fullflow/Utilities/__init__.py +0 -1
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 2.0.0
|
|
4
|
+
|
|
5
|
+
FullFlow 2.0.0 is a publish-ready public release focused on packaging readiness,
|
|
6
|
+
repository documentation, public API documentation, solver documentation, and
|
|
7
|
+
basic release validation.
|
|
8
|
+
|
|
9
|
+
### Packaging
|
|
10
|
+
|
|
11
|
+
* Bumped package version to `2.0.0`.
|
|
12
|
+
* Replaced the previous local development dependency on FullPlot with the PyPI dependency `fullplot>=0.1.0`.
|
|
13
|
+
* Updated PyPI metadata, keywords, classifiers, and package description.
|
|
14
|
+
* Added wheel license inclusion through `license-files = ["LICENSE"]`.
|
|
15
|
+
* Added optional dependency groups:
|
|
16
|
+
* `thermo` for ThermoProp-backed examples and workflows.
|
|
17
|
+
* `examples` for the full example dependency set.
|
|
18
|
+
* `dev` for testing and release checks.
|
|
19
|
+
* Added source-distribution inclusion rules for README, changelog, license files, publishing notes, examples, tests, and docs.
|
|
20
|
+
* Cleaned generated files, macOS resource-fork files, `__pycache__`, `.pyc`, `.DS_Store`, virtual-environment artifacts, and build output from the publish-ready archive.
|
|
21
|
+
* Updated the PyPI release workflow so tests run before build and publish.
|
|
22
|
+
|
|
23
|
+
### Documentation
|
|
24
|
+
|
|
25
|
+
* Rewrote `README.md` as the primary user guide because FullFlow does not yet have a separate official documentation site.
|
|
26
|
+
* Added detailed README sections covering:
|
|
27
|
+
* Installation and optional extras.
|
|
28
|
+
* Dependency model and the new PyPI FullPlot dependency.
|
|
29
|
+
* Core concepts: `Network`, `State`, `Component`, `Balance`, and `Model`.
|
|
30
|
+
* Static evaluation, steady-state solving, transient solving, quasi-steady sweeps, and HDF5 output.
|
|
31
|
+
* Every public solver option for `SteadyState.solve(...)` and `Transient.solve(...)`.
|
|
32
|
+
* Component authoring and dynamic-equation conventions.
|
|
33
|
+
* Component catalog grouped by flow, compressible flow, nodes/storage, heat transfer, convection, friction factors, turbomachinery, propulsion, maps, lookups, sensors, sequences, PID controllers, and actuators.
|
|
34
|
+
* Lookup, map, sensor, sequence, controller, and actuator examples.
|
|
35
|
+
* Units, debugging workflow, and development checks.
|
|
36
|
+
* Expanded docstrings for core public classes including `State`, `StateLike`, `Balance`, `Component`, `Network`, and `Model`.
|
|
37
|
+
* Expanded docstrings for the public solver front ends `SteadyState` and `Transient`.
|
|
38
|
+
* Added or expanded component docstrings for all currently exported components:
|
|
39
|
+
* General flow: `FlowTube`, `AdiabaticFlow`, `DarcyWeisbach`, `DischargeCoefficient`, `CavitatingVenturi`, `SeriesCdA`, `ParallelCdA`, `RectanglePoiseuille`, `EllipsePoiseuille`, `CircularAnnulusPoiseuille`, and `HydraulicDiameter`.
|
|
40
|
+
* Compressible flow: `CompressibleOrifice`, `IsentropicDiffuser`, and `IsentropicNozzle`.
|
|
41
|
+
* Nodes/storage: `Volume`, `Solid`, and `Composition`.
|
|
42
|
+
* Heat transfer: `Conduction`, `Convection`, `Radiation`, `AmbientRadiation`, `TemperatureRecoveryFactor`, `AdiabaticWallTemperature`, and `EckertReferenceTemperature`.
|
|
43
|
+
* Convection coefficients: `Gnielinski`, `Miropolskii`, `Petukhov`, `SiederTate`, `DittusBoelter`, `Bartz`, `NaturalConvection`, and `ChurchillChu`.
|
|
44
|
+
* Friction factors: `Colebrook`, `Churchill`, and `PetukhovFriction`.
|
|
45
|
+
* Turbomachinery and propulsion: `Rotor`, `GasTurbine`, `ConstantDensityPump`, `PolytropicPump`, `SpecificImpulse`, and `IdealCharacteristicVelocity`.
|
|
46
|
+
* Data/control/instrumentation: `Lookup`, `LookupAttribute`, `Map`, `Sensor`, `SensorEvent`, `SensorCondition`, `Sequence`, `SequenceCommand`, `SequenceCondition`, `SequenceAbort`, `PID`, and `Actuator`.
|
|
47
|
+
* Added detailed docstrings for `Component.setup(...)`, component initialization helpers, model-option helpers, and export-control hooks.
|
|
48
|
+
* Expanded FullFlow-specific exception docstrings so user-facing failures are easier to understand from `help(...)` and IDE inspection.
|
|
49
|
+
* Added `PUBLISHING.md` with release-check, build, artifact-inspection, and publishing instructions.
|
|
50
|
+
* Updated `THIRD_PARTY_LICENSES.md` to include FullPlot and the optional ThermoProp integration model.
|
|
51
|
+
|
|
52
|
+
### Reliability and readiness checks
|
|
53
|
+
|
|
54
|
+
* Ran compile checks for package source, tests, and examples.
|
|
55
|
+
* Ran the package test suite.
|
|
56
|
+
* Ran import and smoke checks for the public package API.
|
|
57
|
+
* Built wheel and source distribution artifacts.
|
|
58
|
+
* Inspected wheel and source distribution contents for license, README, changelog, docs, tests, examples, and package files.
|
|
59
|
+
* Performed an installed-wheel smoke test from the built artifact.
|
|
60
|
+
|
|
61
|
+
### Notes
|
|
62
|
+
|
|
63
|
+
* No component equations, solver equations, or physical correlations were intentionally changed for this release.
|
|
64
|
+
* This release is documentation- and packaging-heavy because the repository currently serves as the primary documentation source.
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
## 0.1.3
|
|
68
|
+
|
|
69
|
+
### System Core
|
|
70
|
+
|
|
71
|
+
* Added a shared `StateLike` protocol/helper layer so `State`, `CallableLookupAttribute`, and future state-compatible proxies are handled consistently without unsafe dynamic probing.
|
|
72
|
+
* Added a monotonic `Network.version` and public `Network.mark_dirty()` / `mark_structure_changed()` hooks so solver runtime metadata can be cached safely and invalidated only when network structure changes.
|
|
73
|
+
* Refactored `State`, `Composition`, `Balance`, `Component`, and `Network` for a smaller, faster core API.
|
|
74
|
+
* Removed the unused `Exceptions` package and replaced it with direct built-in exception types.
|
|
75
|
+
* Replaced NumPy usage in core containers with standard-library math where possible to reduce import overhead.
|
|
76
|
+
* Added cached constructor metadata in `Component.setup()` to avoid repeated signature inspection.
|
|
77
|
+
* Streamlined component setup so only declared constructor parameters become public component attributes.
|
|
78
|
+
* Added cached Network iteration-variable metadata, labels, bounds, and values with automatic invalidation when components or balances are added or removed.
|
|
79
|
+
* Preserved the existing readable `Network.iteration_variables` summary while adding `iteration_variable_labels`, `iteration_variable_summary`, and `iteration_variable_states` for diagnostics and solver internals.
|
|
80
|
+
* Centralized residual normalization and export serialization in `Network` to remove duplicated component/balance logic.
|
|
81
|
+
* Kept support for assignable state-like lookup attributes as iteration variables, including `CallableLookupAttribute` inputs such as `eq.pressure`.
|
|
82
|
+
|
|
83
|
+
### Solvers
|
|
84
|
+
|
|
85
|
+
* Added clean transient stopping for sensors with unavailable test data when `extend=False`.
|
|
86
|
+
|
|
87
|
+
* Refactored `SteadyState.py` into a thin public wrapper backed by the modular `Solvers/steady_state/` implementation.
|
|
88
|
+
* Added a network-version-aware runtime plan/cache for iteration variables, bounds, component evaluation callables, residual owners, and state-settling references.
|
|
89
|
+
* Reduced repeated network introspection inside residual evaluations and state-settling passes.
|
|
90
|
+
* Preserved existing `SteadyState(network).solve(...)` and `static_evaluate(...)` behavior.
|
|
91
|
+
* Added simpler call paths: `network.solve(...)`, `network.static_evaluate(...)`, `SteadyState(network).run(...)`, and `SteadyState(network)(...)`.
|
|
92
|
+
* Removed the placeholder `Transient.py` module.
|
|
93
|
+
* Hardened solver and network state discovery so dynamic `CallableLookup` objects are not accidentally treated as iterable compositions.
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
### Components
|
|
97
|
+
|
|
98
|
+
* Added active `Sensor` anchoring: sensors can now sample FullPlot Trace objects at solver time and expose a balance through `variable`/`data`. Missing data can either be extended through by holding the variable or stop a transient/forced-steady run cleanly.
|
|
99
|
+
|
|
100
|
+
* Streamlined scalar branch math used by discharge coefficients, regulators, nozzles, friction factors, pumps, and selected compressible-flow components. Common reversible-flow helpers now live in `Branches/_flow_math.py`, preserving existing equations while avoiding unnecessary NumPy scalar dispatch.
|
|
101
|
+
* Reduced component import overhead by keeping NumPy only where arrays/root solving are actually needed.
|
|
102
|
+
* Improved `CallableLookup` performance by caching dynamic attribute proxies, callable signatures, reusable-object update signature checks, and optional memoized lookup results via `memo_size`. Added the `lazy` alias for deferred lookup evaluation.
|
|
103
|
+
* Made ThermoProp-dependent combustion chamber utilities import ThermoProp lazily so importing `fullflow` does not fail in environments where optional ThermoProp objects are not being used.
|
|
104
|
+
* Added `Component` helper methods for custom components: `_iteration_variable_names`, `values(...)`, `value(...)`, `numeric(...)`, `residual(...)`, `assign(...)`, `assign_state(...)`, `make_state(...)`, and `iteration_states(...)`. These simplify user-written components without changing existing component physics.
|
|
105
|
+
* Added lower-case public re-export paths under `fullflow.core` and `fullflow.components.*` while preserving legacy imports from `fullflow.System.*`.
|
|
106
|
+
|
|
107
|
+
### Packaging
|
|
108
|
+
|
|
109
|
+
* Cleaned release artifacts by excluding `.git`, `.venv`, `__pycache__`, `__MACOSX`, and `.DS_Store` from generated source zips.
|
|
110
|
+
|
|
111
|
+
### Documentation
|
|
112
|
+
|
|
113
|
+
* Expanded and standardized NumPy-style docstrings throughout FullFlow.
|
|
114
|
+
|
|
115
|
+
* Added detailed parameter documentation across components, including:
|
|
116
|
+
|
|
117
|
+
* Inputs
|
|
118
|
+
* Outputs
|
|
119
|
+
* Units
|
|
120
|
+
* Optional parameters
|
|
121
|
+
* Solver-related variables
|
|
122
|
+
|
|
123
|
+
* Added governing-equation documentation for fluid, thermal, and network components.
|
|
124
|
+
|
|
125
|
+
* Added residual-equation documentation for iterative components.
|
|
126
|
+
|
|
127
|
+
* Added iteration-variable documentation where applicable.
|
|
128
|
+
|
|
129
|
+
* Improved documentation consistency across:
|
|
130
|
+
|
|
131
|
+
* Fluid-flow components
|
|
132
|
+
* Heat-transfer components
|
|
133
|
+
* Thermal-network components
|
|
134
|
+
* Solver utilities
|
|
135
|
+
|
|
136
|
+
* Improved readability of component documentation for both users and developers.
|
|
137
|
+
|
|
138
|
+
* Improved MkDocStrings compatibility and API-reference generation.
|
|
139
|
+
|
|
140
|
+
* Improved rendering of parameter and output tables within generated documentation.
|
|
141
|
+
|
|
142
|
+
* Improved consistency between source-code documentation and published API references.
|
|
143
|
+
|
|
144
|
+
* Expanded inline engineering notes and implementation references throughout the codebase.
|
|
145
|
+
|
|
146
|
+
### Improved
|
|
147
|
+
|
|
148
|
+
* Improved project documentation structure and navigation.
|
|
149
|
+
|
|
150
|
+
* Improved generated API-reference quality.
|
|
151
|
+
|
|
152
|
+
* Improved maintainability of component documentation.
|
|
153
|
+
|
|
154
|
+
* Improved consistency of engineering terminology and units throughout the library.
|
|
155
|
+
|
|
156
|
+
* Improved support for future automated documentation generation and website expansion.
|
|
157
|
+
|
|
158
|
+
## 0.1.2
|
|
159
|
+
|
|
160
|
+
### Documentation
|
|
161
|
+
|
|
162
|
+
* Added comprehensive NumPy-style docstrings throughout FullFlow components.
|
|
163
|
+
* Standardized component documentation format across the library.
|
|
164
|
+
* Added governing equations, residual definitions, iteration variable descriptions, and parameter documentation where applicable.
|
|
165
|
+
* Improved MkDocStrings compatibility for automatic API reference generation.
|
|
166
|
+
* Improved generated documentation readability and consistency.
|
|
167
|
+
|
|
168
|
+
## 0.1.1
|
|
169
|
+
|
|
170
|
+
### Added
|
|
171
|
+
|
|
172
|
+
* Added example gallery to the project documentation.
|
|
173
|
+
* Added pump-fed rocket engine example.
|
|
174
|
+
* Added mixture splitter example.
|
|
175
|
+
* Added counterflow heat exchanger example.
|
|
176
|
+
* Added model comparison and correlation sweep example.
|
|
177
|
+
* Added project metadata, keywords, classifiers, and URLs.
|
|
178
|
+
* Added Pandas dependency for DataFrame-based solution export.
|
|
179
|
+
* Added OpenPyXL dependency for Excel export support.
|
|
180
|
+
* Added GitHub Actions workflow for automated PyPI releases.
|
|
181
|
+
|
|
182
|
+
### Improved
|
|
183
|
+
|
|
184
|
+
* Improved package structure and import behavior.
|
|
185
|
+
* Improved documentation and project presentation.
|
|
186
|
+
* Improved README with feature overview, applications, and usage examples.
|
|
187
|
+
* Improved PyPI metadata and package discoverability.
|
|
188
|
+
* Improved dependency management and release workflow.
|
|
189
|
+
|
|
190
|
+
## 0.1.0
|
|
191
|
+
|
|
192
|
+
### Added
|
|
193
|
+
|
|
194
|
+
* Initial FullFlow package structure.
|
|
195
|
+
* Added System package.
|
|
196
|
+
* Added Solvers package.
|
|
197
|
+
* Added Exceptions package.
|
|
198
|
+
* Added Utilities package.
|
|
199
|
+
* Added uv-based build configuration.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
cff-version: 1.2.0
|
|
2
|
+
title: FullFlow
|
|
3
|
+
message: "If you use FullFlow in academic or engineering work, please cite it using this metadata."
|
|
4
|
+
type: software
|
|
5
|
+
authors:
|
|
6
|
+
- family-names: Ramoju
|
|
7
|
+
given-names: Saaketh
|
|
8
|
+
version: 0.1.3
|
|
9
|
+
date-released: 2026-06-07
|
|
10
|
+
license: GPL-3.0-only
|
|
11
|
+
repository-code: "https://github.com/saakethramoju/FullFlow"
|
|
12
|
+
url: "https://pypi.org/project/fullflow/"
|
|
13
|
+
abstract: "FullFlow is a Python framework for fluid, thermal, and propulsion network simulation."
|
|
14
|
+
keywords:
|
|
15
|
+
- fluid dynamics
|
|
16
|
+
- thermodynamics
|
|
17
|
+
- heat transfer
|
|
18
|
+
- rocket propulsion
|
|
19
|
+
- network simulation
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
Participants in the FullFlow project are expected to be respectful, constructive, and professional.
|
|
6
|
+
|
|
7
|
+
## Expected Behavior
|
|
8
|
+
|
|
9
|
+
Examples of positive behavior include:
|
|
10
|
+
|
|
11
|
+
- Being respectful of differing viewpoints and experience levels
|
|
12
|
+
- Giving constructive feedback
|
|
13
|
+
- Focusing on what is best for the project
|
|
14
|
+
- Helping others learn and contribute
|
|
15
|
+
|
|
16
|
+
## Unacceptable Behavior
|
|
17
|
+
|
|
18
|
+
Unacceptable behavior includes:
|
|
19
|
+
|
|
20
|
+
- Harassment or discrimination
|
|
21
|
+
- Personal attacks
|
|
22
|
+
- Trolling or insulting comments
|
|
23
|
+
- Publishing private information without permission
|
|
24
|
+
- Other conduct that would be inappropriate in a professional engineering environment
|
|
25
|
+
|
|
26
|
+
## Enforcement
|
|
27
|
+
|
|
28
|
+
Project maintainers may remove comments, close issues, reject contributions, or block participants who violate this code of conduct.
|
|
29
|
+
|
|
30
|
+
## Contact
|
|
31
|
+
|
|
32
|
+
Concerns can be reported to:
|
|
33
|
+
|
|
34
|
+
skramoju@gmail.com
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Contributing to FullFlow
|
|
2
|
+
|
|
3
|
+
Contributions are welcome.
|
|
4
|
+
|
|
5
|
+
FullFlow is an early-stage engineering simulation framework, so bug reports, examples, documentation improvements, and new components are especially helpful.
|
|
6
|
+
|
|
7
|
+
## Reporting Issues
|
|
8
|
+
|
|
9
|
+
When opening an issue, please include:
|
|
10
|
+
|
|
11
|
+
- A clear description of the problem
|
|
12
|
+
- A minimal code example, if possible
|
|
13
|
+
- The Python version
|
|
14
|
+
- The FullFlow version
|
|
15
|
+
- Relevant error messages or solver output
|
|
16
|
+
|
|
17
|
+
## Development Setup
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
git clone https://github.com/saakethramoju/FullFlow.git
|
|
21
|
+
cd FullFlow
|
|
22
|
+
uv sync
|