Broken API Audit Report — NeqSim Documentation
Generated by: systematic scan of /workspaces/neqsim/docs/ vs /workspaces/neqsim/src/
Scope: Code snippets in markdown documentation that reference non-existent APIs
Note: This report excludes deprecated-but-functional calls like
setOutTemperature(double, String)which still work viaTwoPortInterfacedefault method.
Category 1: Non-Existent Classes
1.1 SimpleWell — class does not exist
| File | Line | Broken Code |
|---|---|---|
docs/process/equipment/wells.md |
37 | import neqsim.process.equipment.well.SimpleWell; |
docs/process/equipment/wells.md |
49 | SimpleWell well = new SimpleWell("Producer 1", reservoirFluid); |
docs/process/equipment/wells.md |
243 | SimpleWell well1 = new SimpleWell("P-1", oil.clone()); |
docs/process/equipment/wells.md |
255 | SimpleWell well2 = new SimpleWell("P-2", oil.clone()); |
docs/README.md |
300 | Table references SimpleWell |
Correct API: Use WellFlow from neqsim.process.equipment.reservoir or WellSystem for integrated well models.
Confidence: HIGH — no SimpleWell class exists anywhere in the codebase.
1.2 ChokeValve — class does not exist
| File | Line | Broken Code |
|---|---|---|
docs/process/equipment/wells.md |
137 | import neqsim.process.equipment.valve.ChokeValve; |
docs/process/equipment/wells.md |
139 | ChokeValve choke = new ChokeValve("Wellhead Choke", ...) |
docs/process/equipment/wells.md |
250 | ChokeValve choke1 = new ChokeValve("XV-1", ...) |
docs/process/equipment/wells.md |
262 | ChokeValve choke2 = new ChokeValve("XV-2", ...) |
docs/README.md |
301 | Table references ChokeValve |
Correct API: Use ThrottlingValve from neqsim.process.equipment.valve.
Confidence: HIGH
1.3 GasLiftWell — class does not exist
| File | Line | Broken Code |
|---|---|---|
docs/process/equipment/wells.md |
196 | import neqsim.process.equipment.well.GasLiftWell; |
docs/process/equipment/wells.md |
198 | GasLiftWell glWell = new GasLiftWell("GL Producer", ...) |
Correct API: No direct equivalent. Model gas lift using WellFlow + Stream mixer.
Confidence: HIGH
1.4 ESPWell — class does not exist
| File | Line | Broken Code |
|---|---|---|
docs/process/equipment/wells.md |
211 | import neqsim.process.equipment.well.ESPWell; |
docs/process/equipment/wells.md |
213-220 | ESPWell espWell = new ESPWell(...) + all methods |
Correct API: No direct equivalent. Model ESP using WellFlow + Pump.
Confidence: HIGH
1.5 SystemGERG2008 — wrong class name (missing Eos suffix)
| File | Line | Broken Code |
|---|---|---|
docs/thermo/system/README.md |
204 | import neqsim.thermo.system.SystemGERG2008; |
docs/thermo/system/README.md |
206 | SystemGERG2008 gas = new SystemGERG2008(288.15, 50.0); |
docs/cookbook/thermodynamics-recipes.md |
260-261 | Table references SystemGERG2008 |
docs/cookbook/thermodynamics-recipes.md |
280 | jneqsim.thermo.system.SystemGERG2008(T, P) |
Correct API: SystemGERG2008Eos
Confidence: HIGH
Category 2: Non-Existent Methods on Existing Classes
2.1 WellFlow — wrong method names
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/simulation/well_simulation_guide.md |
69 | well.setVogelIPR(500.0, 120.0, 200.0) |
well.setVogelParameters(qTest, pwfTest, reservoirPressure) |
docs/simulation/well_simulation_guide.md |
84 | well.setFetkovichIPR(0.012, 0.85) |
well.setFetkovichParameters(c, n, reservoirPressure) — also missing 3rd arg |
docs/simulation/well_simulation_guide.md |
98 | well.setBackpressureIPR(0.5, 0.001) |
well.setBackpressureParameters(a, b, reservoirPressure) — also missing 3rd arg |
docs/simulation/well_simulation_guide.md |
108 | well.setTableIPR(pressures, rates) |
well.setTableInflow(bottomHolePressures, flowRates) |
docs/process/equipment/reservoirs.md |
162 | wellFlow.setReservoirPressure(250.0, "bara") |
No such method. Set via setVogelParameters/setFetkovichParameters/setBackpressureParameters |
docs/process/equipment/reservoirs.md |
163 | wellFlow.setWellheadPressure(80.0, "bara") |
wellFlow.setOutletPressure(80.0, "bara") |
docs/process/equipment/reservoirs.md |
164 | wellFlow.setProductivityIndex(10.0) |
wellFlow.setWellProductionIndex(10.0) |
Confidence: HIGH — verified against WellFlow.java source
2.2 WellSystem — multiple non-existent methods
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/simulation/well_simulation_guide.md |
332, 592, 611 | well.setReservoirPressure(x, "bara") |
No such method. Reservoir pressure set via setVogelParameters/setFetkovichParameters/setBackpressureParameters |
docs/simulation/well_simulation_guide.md |
333, 593, 612, 686 | well.setProductivityIndex(x) |
well.setProductionIndex(pi, unit) — 2 args, different name |
docs/simulation/well_simulation_guide.md |
595, 613, 689 | well.setVlpCorrelation(WellSystem.VLPCorrelation.X) |
well.setPressureDropCorrelation(TubingPerformance.PressureDropCorrelation.X) — enum on different class |
docs/simulation/well_simulation_guide.md |
601, 616, 691 | well.getOperatingBHP("bara") |
well.getBottomHolePressure("bara") |
docs/simulation/well_simulation_guide.md |
602 | well.getDrawdown() (no args) |
well.getDrawdown("bar") — requires unit arg |
docs/simulation/well_simulation_guide.md |
334, 688 | well.setIprModel(...) (lowercase) |
well.setIPRModel(...) (capital IPR) |
docs/simulation/well_simulation_guide.md |
594 | well.setTubingDiameter(0.088) (1 arg) |
well.setTubingDiameter(0.088, "m") — requires unit |
docs/simulation/well_simulation_guide.md |
594 | well.setTubingLength(2800.0) (1 arg) |
well.setTubingLength(2800.0, "m") — requires unit |
Confidence: HIGH — verified against WellSystem.java source
2.3 WellSystem.generateIPRCurve — wrong signature
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/simulation/well_simulation_guide.md |
325-326 | well.generateIPRCurve(minPwf, maxPwf, points) (3 args) |
well.generateIPRCurve(int pressurePoints) (1 arg) |
Confidence: HIGH
2.4 WellSystem.addLayer — wrong argument count
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/simulation/well_simulation_guide.md |
638 | well.addLayer("Zone_A", stream, 180.0, 4.0e-6) (4 args) |
well.addLayer(name, stream, khFraction, resPressure, pi) (5 args) |
Confidence: HIGH — WellSystem.addLayer takes 5 parameters. Note: WellFlow.addLayer takes 4 args with different parameter meanings (name, stream, reservoirPressure, pi).
2.5 ThreePhaseSeparator.getWaterCut() — does not exist
| File | Line | Broken Call |
|---|---|---|
docs/process/equipment/separators.md |
71 | double waterCut = separator.getWaterCut(); |
docs/process/equipment/water_treatment.md |
305 | prodSep.getWaterCut() |
Correct API: Calculate water cut manually from water and total liquid flow rates. Confidence: HIGH
2.6 ThrottlingValve.setBeanSize() — does not exist
| File | Line | Broken Call |
|---|---|---|
docs/process/equipment/wells.md |
144 | choke.setBeanSize(24, "64ths") |
docs/process/equipment/valves.md |
351 | choke.setBeanSize(32, "64ths") |
Correct API: Use setCv(double) or setPercentValveOpening(double).
Confidence: HIGH
2.7 Pipeline method errors (AdiabaticPipe)
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/process/equipment/pipelines.md |
~various | pipe.setInnerDiameter(val, "m") |
pipe.setDiameter(val) — single arg, no unit |
docs/process/equipment/pipelines.md |
~various | pipe.setRoughness(val, "m") |
pipe.setPipeWallRoughness(val) — different name, no unit |
docs/process/equipment/pipelines.md |
~various | pipe.setElevationChange(val, "m") |
pipe.setInletElevation(val) + pipe.setOutletElevation(val) |
docs/process/equipment/pipelines.md |
~various | pipe.getPressureDrop("bara") |
pipe.getPressureDrop() — no unit arg |
Confidence: HIGH — verified against AdiabaticPipe.java
2.8 PipeBeggsAndBrills.setPipeHeatTransferCoefficient() — wrong method name
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/cookbook/pipeline-recipes.md |
570 | pipe.setPipeHeatTransferCoefficient(10.0) |
pipe.setHeatTransferCoefficient(10.0) |
docs/cookbook/pipeline-recipes.md |
584 | pipe.setPipeHeatTransferCoefficient(2.0) |
pipe.setHeatTransferCoefficient(2.0) |
docs/cookbook/pipeline-recipes.md |
591 | pipe.setPipeHeatTransferCoefficient(5.0) |
pipe.setHeatTransferCoefficient(5.0) |
Confidence: HIGH
2.9 PipeBeggsAndBrills.setOuterTemperature() — singular method does not exist
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/cookbook/pipeline-recipes.md |
95 | pipe.setOuterTemperature(278.15) |
pipe.setOuterTemperatures(new double[]{278.15}) (array, plural) |
docs/cookbook/pipeline-recipes.md |
569 | pipe.setOuterTemperature(277.15) |
Same |
docs/cookbook/pipeline-recipes.md |
590 | pipe.setOuterTemperature(283.15) |
Same |
docs/wiki/pipe_wall_heat_transfer.md |
443 | pipe.setOuterTemperature(278.15) |
Same |
docs/pvtsimulation/flow_assurance_overview.md |
477 | pipeline.setOuterTemperature(4.0, "C") |
Same — also wrong signature (takes array, not scalar+unit) |
docs/process/equipment/subsea_equipment.md |
139 | pipe.setOuterTemperature(277.15) |
Same |
docs/process/equipment/networks.md |
298 | pipeline.setOuterTemperature(278.15) |
Same |
Correct API: setOuterTemperatures(double[]) — plural, takes array. Only Pipeline base class has setOuterTemperatures(double[]).
Confidence: HIGH — verified against Pipeline.java and PipeBeggsAndBrills.java
2.10 TwoFluidPipe.enableSlugTracking() — wrong method name
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/cookbook/pipeline-recipes.md |
346 | pipe.enableSlugTracking(True) |
pipe.setEnableSlugTracking(true) |
Confidence: HIGH
2.11 Slug methods called on pipe instead of SlugTracker
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/cookbook/pipeline-recipes.md |
347 | pipe.setSlugDetectionThreshold(0.7) |
No such method on any class |
docs/cookbook/pipeline-recipes.md |
369 | pipe.getSlugCount() |
pipe.getSlugTracker().getSlugCount() |
docs/cookbook/pipeline-recipes.md |
370 | pipe.getAverageSlugLength() |
pipe.getSlugTracker().getAverageSlugLength() |
docs/cookbook/pipeline-recipes.md |
371 | pipe.getSlugFrequency() |
pipe.getSlugTracker().getSlugFrequency() |
Confidence: HIGH — these methods exist on SlugTracker, not on TwoFluidPipe/TransientPipe
2.12 setNumberOfNodes() on TransientPipe/TwoFluidPipe — wrong method name
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/simulation/dynamic_simulation_guide.md |
361 | pipeline.setNumberOfNodes(50) |
pipeline.setNumberOfSections(50) |
docs/process/equipment/pipeline_simulation.md |
175, 384, 520 | pipe.setNumberOfNodes(100) |
pipe.setNumberOfSections(100) |
docs/process/equipment/pipelines.md |
98, 466 | pipeline.setNumberOfNodes(...) |
pipeline.setNumberOfSections(...) |
docs/cookbook/pipeline-recipes.md |
656 | pipe.setNumberOfNodes(200) |
pipe.setNumberOfSections(200) |
docs/wiki/pipeline_transient_simulation.md |
615 | pipe.setNumberOfNodes(100) |
pipe.setNumberOfSections(100) |
docs/fluidmechanics/README.md |
204, 788 | flowSystem.setNumberOfNodes(...) |
Depends on class — may be valid for FluidMechanics classes |
docs/fluidmechanics/heat_transfer.md |
403 | flow.setNumberOfNodes(100) |
Same |
setNumberOfNodes(int) is valid on WaterHammerPipe but NOT on TransientPipe, TwoFluidPipe, or general pipeline classes. Docs should use setNumberOfSections(int) for TransientPipe.
Confidence: HIGH for TransientPipe; MEDIUM for FluidMechanics classes (not verified)
2.13 TransientPipe.setFlowRegimeDetectionMethod() — does not exist
| File | Line | Broken Call |
|---|---|---|
docs/simulation/dynamic_simulation_guide.md |
365 | pipeline.setFlowRegimeDetectionMethod("mechanistic") |
Correct API: No such method exists on TransientPipe. Confidence: HIGH
2.14 SlugTracker.getMaxSlugVolume() — does not exist
| File | Line | Broken Call |
|---|---|---|
docs/simulation/dynamic_simulation_guide.md |
386 | double maxSlugVolume = tracker.getMaxSlugVolume() |
Correct API: No getMaxSlugVolume() on SlugTracker. Has getSlugCount(), getAverageSlugLength(), getSlugFrequency().
Confidence: HIGH
2.15 VolumeFlowTransmitter.setMeasuredPhase() — does not exist
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/simulation/dynamic_simulation_guide.md |
319 | flowTransmitter.setMeasuredPhase("gas") |
flowTransmitter.setMeasuredPhaseNumber(int) |
Confidence: HIGH
Category 3: Wrong Method Signatures (Wrong Argument Count/Types)
3.1 Adjuster — wrong variable strings and argument count
| File | Line | Broken Call | Issue |
|---|---|---|---|
docs/cookbook/process-recipes.md |
338 | adjuster.setAdjustedVariable(compressor, "outlet pressure") |
"outlet pressure" is not a valid variable. Valid: "mass flow", "flow", "pressure", "temperature" |
docs/cookbook/process-recipes.md |
339 | adjuster.setTargetVariable(outlet_stream, "flow rate", "kg/hr") |
Wrong arg count (3 args). Method needs 4: (equipment, variable, value, unit). Also "flow rate" is not valid — use "gasVolumeFlow" or "pressure" |
Confidence: HIGH — verified against Adjuster.java
3.2 SimpleReservoir — wrong constructor and method usage
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/simulation/well_simulation_guide.md |
503 | reservoir.setReservoirFluid(reservoirFluid) (1 arg) |
reservoir.setReservoirFluid(fluid, gasVol, oilVol, waterVol) (4 args) |
docs/simulation/well_simulation_guide.md |
504 | reservoir.setReservoirPressure(280.0, "bara") |
No such method exists on SimpleReservoir |
docs/simulation/well_simulation_guide.md |
505 | reservoir.setTemperature(85.0, "C") |
No such method exists on SimpleReservoir |
Confidence: HIGH
3.3 WellSystem — 1-arg calls where 2 args required
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/simulation/well_simulation_guide.md |
594, 613 | well.setTubingDiameter(0.088) |
well.setTubingDiameter(0.088, "m") |
docs/simulation/well_simulation_guide.md |
595, 614 | well.setTubingLength(2800.0) |
well.setTubingLength(2800.0, "m") |
Confidence: HIGH
3.4 wells.md — setIPRModel takes enum, not string
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/process/equipment/wells.md |
66 | well.setIPRModel("vogel") |
well.setIPRModel(WellSystem.IPRModel.VOGEL) |
docs/process/equipment/wells.md |
80 | well.setIPRModel("darcy") |
well.setIPRModel(WellSystem.IPRModel.PRODUCTION_INDEX) |
docs/process/equipment/wells.md |
92 | well.setIPRModel("backpressure") |
well.setIPRModel(WellSystem.IPRModel.BACKPRESSURE) |
Note: These are called on SimpleWell (non-existent class), so the entire block is invalid regardless.
Confidence: HIGH
Category 4: Non-Existent Methods on Measurement Devices
4.1 MultiPhaseMeter — fabricated convenience methods
| File | Line | Broken Call |
|---|---|---|
docs/process/equipment/measurement_devices.md |
303 | mpm.getGasFlowRate("Sm3/hr") |
docs/process/equipment/measurement_devices.md |
304 | mpm.getOilFlowRate("m3/hr") |
docs/process/equipment/measurement_devices.md |
305 | mpm.getWaterFlowRate("m3/hr") |
docs/process/equipment/measurement_devices.md |
306 | mpm.getWaterCut() |
docs/process/equipment/measurement_devices.md |
307 | mpm.getGOR("Sm3/Sm3") |
Correct API: MultiPhaseMeter only has getMeasuredValue(String unit) and getMeasuredValue(String measurement, String unit).
Confidence: HIGH
4.2 CompressorMonitor — fabricated convenience methods
| File | Line | Broken Call |
|---|---|---|
docs/process/equipment/measurement_devices.md |
336 | cm.getPolytropicEfficiency() |
docs/process/equipment/measurement_devices.md |
337 | cm.getIsentropicEfficiency() |
docs/process/equipment/measurement_devices.md |
338 | cm.getPolytropicHead("kJ/kg") |
docs/process/equipment/measurement_devices.md |
339 | cm.getPower("kW") |
docs/process/equipment/measurement_devices.md |
340 | cm.getSurgeMargin() |
Correct API: CompressorMonitor only has getMeasuredValue(String unit) and displayResult().
Confidence: HIGH
4.3 GasDetector — wrong constructor and methods
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/process/equipment/measurement_devices.md |
242 | new GasDetector("Gas Detector 1", stream) |
Constructor takes (String, GasType) not (String, StreamInterface) |
docs/process/equipment/measurement_devices.md |
243 | gasDetector.setDetectionLimit(20.0) |
No such method. Use gasDetector.isGasDetected(threshold) |
docs/process/equipment/measurement_devices.md |
244 | gasDetector.isTriggered() |
No such method. Use gasDetector.isGasDetected(double) or isHighAlarm(double) |
Confidence: HIGH
4.4 FireDetector — wrong method names
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/process/equipment/measurement_devices.md |
252 | fireDetector.setTemperatureThreshold(65.0) |
fireDetector.setDetectionThreshold(65.0) |
docs/process/equipment/measurement_devices.md |
253 | fireDetector.isTriggered() |
fireDetector.isFireDetected() |
Confidence: HIGH
4.5 WellAllocator — wrong constructor and fabricated methods
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/process/equipment/measurement_devices.md |
358 | new WellAllocator("Allocation System") |
Constructor requires (StreamInterface) or (String, StreamInterface) |
docs/process/equipment/measurement_devices.md |
359 | allocator.addWellTest(...) |
No such method |
docs/process/equipment/measurement_devices.md |
360 | allocator.allocateProduction(...) |
No such method |
docs/process/equipment/measurement_devices.md |
362 | allocator.getAllocatedOil(...) |
No such method |
Correct API: WellAllocator has setExportGasStream(StreamInterface), setExportOilStream(StreamInterface), and getMeasuredValue(String, String).
Confidence: HIGH
Category 5: WellFlowlineNetwork — wrong API
5.1 Simplified API that doesn’t exist
| File | Line | Broken Call | Correct API |
|---|---|---|---|
docs/simulation/well_simulation_guide.md |
549 | network.addWell(well1) |
network.addBranch(branchName, well, pipeline) — requires branch name and pipeline |
docs/simulation/well_simulation_guide.md |
553 | network.setManifoldPressure(40.0, "bara") |
network.setTargetEndpointPressure(40.0, "bara") |
docs/simulation/well_simulation_guide.md |
558 | network.getWells() |
No such method. Access wells through branches |
Confidence: HIGH
Category 6: Widespread Pattern — setProductivityIndex() (non-existent)
This method is used in many docs but doesn’t exist on any class. The correct methods differ by class:
| Used On | Broken Call | Correct API |
|---|---|---|
| WellFlow | wellFlow.setProductivityIndex(x) |
wellFlow.setWellProductionIndex(x) |
| WellSystem | well.setProductivityIndex(x) |
well.setProductionIndex(x, unit) (2 args) |
| File | Line |
|---|---|
docs/process/equipment/reservoirs.md |
164 |
docs/simulation/well_simulation_guide.md |
333, 593, 612, 686 |
docs/fielddevelopment/API_GUIDE.md |
497, 536, 734, 833, 836 |
docs/fielddevelopment/LATE_LIFE_OPERATIONS.md |
207 |
docs/integration/ai_platform_integration.md |
472, 479 |
Confidence: HIGH
Category 7: Widespread Pattern — setReservoirPressure() (non-existent)
Does not exist on WellFlow, WellSystem, or SimpleReservoir.
| File | Line | Object Type |
|---|---|---|
docs/process/equipment/wells.md |
67, 244, 256 | SimpleWell (non-existent class) |
docs/process/equipment/reservoirs.md |
162 | WellFlow |
docs/simulation/well_simulation_guide.md |
332, 504, 592, 611 | WellSystem / SimpleReservoir |
docs/fielddevelopment/INTEGRATED_FIELD_DEVELOPMENT_FRAMEWORK.md |
1447 | WellSystem |
docs/fielddevelopment/API_GUIDE.md |
497, 536, 734, 833 | Various |
docs/integration/ai_platform_integration.md |
473, 480 | Various |
Confidence: HIGH
Summary Statistics
| Category | Issue Count |
|---|---|
| Non-existent classes | 5 (SimpleWell, ChokeValve, GasLiftWell, ESPWell, SystemGERG2008) |
| Non-existent methods on real classes | ~50+ individual occurrences |
| Wrong method signatures | ~20+ occurrences |
| Fabricated measurement device APIs | ~15 occurrences |
| Files affected | ~20+ documentation files |
Most Affected Files (by issue count)
docs/simulation/well_simulation_guide.md— ~30+ issuesdocs/process/equipment/wells.md— ~20+ issues (entire file mostly invalid)docs/process/equipment/measurement_devices.md— ~15 issuesdocs/cookbook/pipeline-recipes.md— ~10 issuesdocs/process/equipment/reservoirs.md— ~5 issuesdocs/process/equipment/pipelines.md— ~5 issuesdocs/fielddevelopment/API_GUIDE.md— ~5 issues