#13425 Fix ICD/AICD valve output in schedule generation

ICD valves now produce WSEGVALV and AICD valves now produce WSEGAICD
in the generated schedule. Three root causes were fixed:

- Create per-event valve templates with proper parameters instead of
  reusing default templates that lack orifice diameter and AICD fields
- Use perforation interval range for ICD/AICD valve positioning so
  valveLocations() returns non-empty results for the accumulator
- Add 5 AICD parameter fields to the Python API and event classes
This commit is contained in:
Kristian Bendiksen committed 2026-02-12 08:15:22 +01:00
1 parent 82e2dbc434
commit 1ec53cc3f2
7 files changed
+286 -15

No files matched your search

@@ -116,6 +116,11 @@ RimcWellEventTimeline_addValveEvent::RimcWellEventTimeline_addValveEvent( caf::P
CAF_PDM_InitScriptableField( &m_state, "State", defaultState, "", "", "", "State" );
CAF_PDM_InitScriptableField( &m_flowCoefficient, "FlowCoefficient", 0.7, "", "", "", "Flow Coefficient" );
CAF_PDM_InitScriptableField( &m_area, "Area", 0.0001, "", "", "", "Area [m2]" );
CAF_PDM_InitScriptableField( &m_aicdStrength, "AicdStrength", 0.00021, "", "", "", "AICD Strength" );
CAF_PDM_InitScriptableField( &m_aicdDensityCalibFluid, "AicdDensityCalibFluid", 1000.0, "", "", "", "AICD Density of Calibration Fluid [kg/m3]" );
CAF_PDM_InitScriptableField( &m_aicdViscosityCalibFluid, "AicdViscosityCalibFluid", 1.0, "", "", "", "AICD Viscosity of Calibration Fluid [cP]" );
CAF_PDM_InitScriptableField( &m_aicdVolFlowExp, "AicdVolFlowExp", 2.1, "", "", "", "AICD Volume Flow Rate Exponent" );
CAF_PDM_InitScriptableField( &m_aicdViscFuncExp, "AicdViscFuncExp", 0.5, "", "", "", "AICD Viscosity Function Exponent" );
}
//--------------------------------------------------------------------------------------------------
@@ -142,6 +147,11 @@ std::expected<caf::PdmObjectHandle*, QString> RimcWellEventTimeline_addValveEven
event->setArea( m_area() );
event->setValveType( m_valveType() );
event->setState( m_state() );
event->setAicdStrength( m_aicdStrength() );
event->setAicdDensityCalibFluid( m_aicdDensityCalibFluid() );
event->setAicdViscosityCalibFluid( m_aicdViscosityCalibFluid() );
event->setAicdVolFlowExp( m_aicdVolFlowExp() );
event->setAicdViscFuncExp( m_aicdViscFuncExp() );
return event;
}
@@ -79,6 +79,11 @@ private:
caf::PdmField<caf::AppEnum<RimWellEventValve::State>> m_state;
caf::PdmField<double> m_flowCoefficient;
caf::PdmField<double> m_area;
caf::PdmField<double> m_aicdStrength;
caf::PdmField<double> m_aicdDensityCalibFluid;
caf::PdmField<double> m_aicdViscosityCalibFluid;
caf::PdmField<double> m_aicdVolFlowExp;
caf::PdmField<double> m_aicdViscFuncExp;
};
//==================================================================================================