@@ -52,6 +52,13 @@ MechanicalDesign (base class)
5252└── WellMechanicalDesign → NORSOK D-010 / API 5CT / API Bull 5C3
5353 ├── WellDesignCalculator (casing burst, collapse, tension)
5454 └── WellCostEstimator (drilling, completion, wellhead costs)
55+
56+ MotorMechanicalDesign (standalone) → IEC 60034, IEEE 841, ISO 10816-3, ISO 281, NORSOK S-002
57+ └── Foundation, vibration, cooling, bearings, noise, enclosure, derating
58+
59+ EquipmentDesignReport (aggregator)
60+ └── Combines MechanicalDesign + ElectricalDesign + MotorMechanicalDesign
61+ with feasibility verdict (FEASIBLE / FEASIBLE_WITH_WARNINGS / NOT_FEASIBLE)
5562```
5663
5764### Pipeline Mechanical Design Features
@@ -380,7 +387,7 @@ For equipment-specific data, use the typed response:
380387
381388``` java
382389// Compressor-specific response
383- CompressorMechanicalDesignResponse response =
390+ CompressorMechanicalDesignResponse response =
384391 (CompressorMechanicalDesignResponse ) compressor. getMechanicalDesign(). getResponse();
385392
386393int stages = response. getNumberOfStages();
@@ -390,7 +397,7 @@ double driverPower = response.getDriverPower(); // kW
390397double tripSpeed = response. getTripSpeed(); // rpm
391398
392399// Valve-specific response
393- ValveMechanicalDesignResponse valveResponse =
400+ ValveMechanicalDesignResponse valveResponse =
394401 (ValveMechanicalDesignResponse ) valve. getMechanicalDesign(). getResponse();
395402
396403int ansiClass = valveResponse. getAnsiPressureClass();
@@ -519,7 +526,7 @@ if (!result.isValid()) {
519526// Compressor validation
520527CompressorMechanicalDesign . CompressorValidationResult result = compDesign. validateDesign();
521528
522- // Pump validation
529+ // Pump validation
523530PumpMechanicalDesign . PumpValidationResult result = pumpDesign. validateDesign();
524531
525532// Heat exchanger validation
@@ -536,7 +543,7 @@ SeparatorMechanicalDesign sepDesign = (SeparatorMechanicalDesign) separator.getM
536543// Validate gas velocity
537544boolean gasVelOk = sepDesign. validateGasVelocity(actualVelocity); // m/s
538545
539- // Validate liquid velocity
546+ // Validate liquid velocity
540547boolean liqVelOk = sepDesign. validateLiquidVelocity(actualVelocity); // m/s
541548
542549// Validate retention time (isOil = true for oil, false for water)
@@ -575,7 +582,7 @@ boolean npshOk = pumpDesign.validateNpshMargin(npshAvailable, npshRequired);
575582// Validate operating in Preferred Operating Region
576583boolean porOk = pumpDesign. validateOperatingInPOR(operatingFlow, bepFlow);
577584
578- // Validate operating in Allowable Operating Region
585+ // Validate operating in Allowable Operating Region
579586boolean aorOk = pumpDesign. validateOperatingInAOR(operatingFlow, bepFlow);
580587
581588// Validate suction specific speed
@@ -630,7 +637,7 @@ for (String issue : result.getIssues()) {
630637### Separators (API 12J / ASME VIII / NORSOK P-001)
631638
632639``` java
633- SeparatorMechanicalDesign sepDesign =
640+ SeparatorMechanicalDesign sepDesign =
634641 (SeparatorMechanicalDesign ) separator. getMechanicalDesign();
635642
636643// Key parameters
@@ -655,7 +662,7 @@ Design calculations include:
655662### Compressors (API 617)
656663
657664``` java
658- CompressorMechanicalDesign compDesign =
665+ CompressorMechanicalDesign compDesign =
659666 (CompressorMechanicalDesign ) compressor. getMechanicalDesign();
660667
661668// Key parameters
@@ -687,7 +694,7 @@ Design calculations include:
687694### Pumps (API 610)
688695
689696``` java
690- PumpMechanicalDesign pumpDesign =
697+ PumpMechanicalDesign pumpDesign =
691698 (PumpMechanicalDesign ) pump. getMechanicalDesign();
692699
693700// Key parameters
@@ -718,7 +725,7 @@ Design calculations include:
718725### Valves (IEC 60534)
719726
720727``` java
721- ValveMechanicalDesign valveDesign =
728+ ValveMechanicalDesign valveDesign =
722729 (ValveMechanicalDesign ) valve. getMechanicalDesign();
723730
724731// Key parameters
@@ -738,7 +745,7 @@ Design calculations include:
738745### Heat Exchangers (TEMA)
739746
740747``` java
741- HeatExchangerMechanicalDesign hxDesign =
748+ HeatExchangerMechanicalDesign hxDesign =
742749 (HeatExchangerMechanicalDesign ) heatExchanger. getMechanicalDesign();
743750
744751// Key parameters
@@ -747,7 +754,7 @@ double uValue = hxDesign.getOverallHeatTransferCoefficient(); // W/m²K
747754int tubeCount = hxDesign. getTubeCount();
748755double shellDiameter = hxDesign. getShellDiameter(); // mm
749756
750- // Process design parameters
757+ // Process design parameters
751758double shellFouling = hxDesign. getFoulingResistanceShellHC(); // m²K/W
752759double tubeFouling = hxDesign. getFoulingResistanceTubeHC(); // m²K/W
753760double maxTubeVel = hxDesign. getMaxTubeVelocity(); // m/s
@@ -918,7 +925,7 @@ String json = sysMecDesign.toJson();
918925Files . write(Paths . get(" mechanical_design.json" ), json. getBytes());
919926
920927// 6. Access specific equipment details
921- CompressorMechanicalDesignResponse compResponse =
928+ CompressorMechanicalDesignResponse compResponse =
922929 (CompressorMechanicalDesignResponse ) compressor. getMechanicalDesign(). getResponse();
923930System . out. println(" Compressor stages: " + compResponse. getNumberOfStages());
924931System . out. println(" Driver power: " + compResponse. getDriverPower() + " kW" );
0 commit comments