--- name: evolv-mechanical-rotating-equipment description: Provide rotating equipment engineering guidance for EVOLV machine and pumping logic. Use when implementing or reviewing `rotatingMachine`, `machineGroupControl`, pump/motor behavior, operating envelopes, efficiency/power curves, surge/choke limits, and physically plausible constraints in node domain logic. --- # EVOLV Mechanical Rotating Equipment ## Mission Keep rotating equipment behavior physically plausible, safe, and diagnosable in EVOLV JavaScript domain classes. ## Scope - `nodes/rotatingMachine/` - `nodes/machineGroupControl/` - `nodes/pumpingStation/` - Related shared curve/model datasets in `nodes/generalFunctions/datasets/assetData/` ## Engineering Checklist 1. Validate units and conversions before algorithm changes. 2. Enforce operating envelope constraints: - min/max speed - flow/head boundaries - power/torque limits - efficiency range sanity 3. Prevent impossible states (negative flow where not allowed, non-physical efficiencies, unstable mode transitions). 4. Define clear degraded behavior for out-of-range inputs. 5. Preserve interpretability: outputs should map to recognizable mechanical concepts. ## Implementation Pattern - Keep mechanics in `src/specificClass.js`. - Keep Node-RED concerns in `src/nodeClass.js`. - Use shared helpers from `generalFunctions` for logging/config assertions. ## Test Expectations Add/adjust tests under node-specific `test/` for: - boundary conditions - invalid sensor/input combinations - regression of known machine edge cases - deterministic output under repeated ticks ## Deliverables Return: - assumptions about equipment type and curve source - implemented constraints and rationale - test coverage for boundary cases - remaining mechanical uncertainties requiring field data