Skip to the content.

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 via TwoPortInterface default 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.mdsetIPRModel 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)

  1. docs/simulation/well_simulation_guide.md — ~30+ issues
  2. docs/process/equipment/wells.md — ~20+ issues (entire file mostly invalid)
  3. docs/process/equipment/measurement_devices.md — ~15 issues
  4. docs/cookbook/pipeline-recipes.md — ~10 issues
  5. docs/process/equipment/reservoirs.md — ~5 issues
  6. docs/process/equipment/pipelines.md — ~5 issues
  7. docs/fielddevelopment/API_GUIDE.md — ~5 issues