Opm::MultisegmentWellSegments< FluidSystem, Indices > Class Template Reference

#include <MultisegmentWellSegments.hpp>

Inheritance diagram for Opm::MultisegmentWellSegments< FluidSystem, Indices >:
Inheritance graph

Classes

struct  SegmentPvt
 The quantities taken from a segment fluid state. More...
 

Public Member Functions

 MultisegmentWellSegments (const int numSegments, const ParallelWellInfo< Scalar > &parallel_well_info, WellInterfaceGeneric< Scalar, IndexTraits > &well)
 
void computeFluidProperties (const std::vector< SegmentPvt > &segment_pvt, const PrimaryVariables &primary_variables, DeferredLogger &deferred_logger)
 Compute per-segment fluid properties from the pre-computed segment PVT values. More...
 
EvalWell computeVolumeRatio (const int seg, const SegmentPvt &pvt, const PrimaryVariables &primary_variables, DeferredLogger &deferred_logger) const
 Volume ratio of a segment from its PVT values and composition. More...
 
void updateUpwindingSegments (const PrimaryVariables &primary_variables)
 Update upwinding segments. More...
 
EvalWell getHydroPressureLoss (const int seg, const int seg_side) const
 
Scalar getPressureDiffSegLocalPerf (const int seg, const int local_perf_index) const
 Pressure difference between segment and perforation. More...
 
EvalWell getFrictionPressureLoss (const int seg, const bool extra_reverse_flow_derivatives=false) const
 
EvalWell pressureDropSpiralICD (const int seg, const bool extra_reverse_flow_derivatives=false) const
 
EvalWell pressureDropAutoICD (const int seg, const UnitSystem &unit_system, const bool extra_reverse_flow_derivatives=false) const
 
EvalWell pressureDropValve (const int seg, const SummaryState &st, const bool extra_reverse_flow_derivatives=false) const
 
EvalWell accelerationPressureLossContribution (const int seg, const Scalar area, const bool extra_reverse_flow_derivatives=false) const
 
const std::vector< std::vector< int > > & inlets () const
 
const std::vector< int > & inlets (const int seg) const
 
const std::vector< std::vector< int > > & perforations () const
 
int upwinding_segment (const int seg) const
 
Scalar getRefDensity () const
 
const EvalWell & density (const int seg) const
 
const EvalWell & volumeRatio (const int seg) const
 Segment volume ratio (reservoir volume per unit surface volume). More...
 
Scalar local_perforation_depth_diff (const int local_perf_index) const
 
void copyPhaseDensities (SegmentState< Scalar > &segSol) const
 

Constructor & Destructor Documentation

◆ MultisegmentWellSegments()

template<typename FluidSystem , typename Indices >
Opm::MultisegmentWellSegments< FluidSystem, Indices >::MultisegmentWellSegments ( const int  numSegments,
const ParallelWellInfo< Scalar > &  parallel_well_info,
WellInterfaceGeneric< Scalar, IndexTraits > &  well 
)

Member Function Documentation

◆ accelerationPressureLossContribution()

template<typename FluidSystem , typename Indices >
EvalWell Opm::MultisegmentWellSegments< FluidSystem, Indices >::accelerationPressureLossContribution ( const int  seg,
const Scalar  area,
const bool  extra_reverse_flow_derivatives = false 
) const

◆ computeFluidProperties()

template<typename FluidSystem , typename Indices >
void Opm::MultisegmentWellSegments< FluidSystem, Indices >::computeFluidProperties ( const std::vector< SegmentPvt > &  segment_pvt,
const PrimaryVariables primary_variables,
DeferredLogger deferred_logger 
)

Compute per-segment fluid properties from the pre-computed segment PVT values.

Reuses the inverse formation volume factors and dissolution/vaporization ratios where applicable, and evaluates the remaining PVT properties. Also updates the cached segment volume ratios.

◆ computeVolumeRatio()

template<typename FluidSystem , typename Indices >
EvalWell Opm::MultisegmentWellSegments< FluidSystem, Indices >::computeVolumeRatio ( const int  seg,
const SegmentPvt pvt,
const PrimaryVariables primary_variables,
DeferredLogger deferred_logger 
) const

Volume ratio of a segment from its PVT values and composition.

◆ copyPhaseDensities()

template<typename FluidSystem , typename Indices >
void Opm::MultisegmentWellSegments< FluidSystem, Indices >::copyPhaseDensities ( SegmentState< Scalar > &  segSol) const

◆ density()

template<typename FluidSystem , typename Indices >
const EvalWell & Opm::MultisegmentWellSegments< FluidSystem, Indices >::density ( const int  seg) const
inline

◆ getFrictionPressureLoss()

template<typename FluidSystem , typename Indices >
EvalWell Opm::MultisegmentWellSegments< FluidSystem, Indices >::getFrictionPressureLoss ( const int  seg,
const bool  extra_reverse_flow_derivatives = false 
) const

◆ getHydroPressureLoss()

template<typename FluidSystem , typename Indices >
EvalWell Opm::MultisegmentWellSegments< FluidSystem, Indices >::getHydroPressureLoss ( const int  seg,
const int  seg_side 
) const

◆ getPressureDiffSegLocalPerf()

template<typename FluidSystem , typename Indices >
Scalar Opm::MultisegmentWellSegments< FluidSystem, Indices >::getPressureDiffSegLocalPerf ( const int  seg,
const int  local_perf_index 
) const

Pressure difference between segment and perforation.

◆ getRefDensity()

template<typename FluidSystem , typename Indices >
Scalar Opm::MultisegmentWellSegments< FluidSystem, Indices >::getRefDensity ( ) const
inline

◆ inlets() [1/2]

template<typename FluidSystem , typename Indices >
const std::vector< std::vector< int > > & Opm::MultisegmentWellSegments< FluidSystem, Indices >::inlets ( ) const
inline

◆ inlets() [2/2]

template<typename FluidSystem , typename Indices >
const std::vector< int > & Opm::MultisegmentWellSegments< FluidSystem, Indices >::inlets ( const int  seg) const
inline

◆ local_perforation_depth_diff()

template<typename FluidSystem , typename Indices >
Scalar Opm::MultisegmentWellSegments< FluidSystem, Indices >::local_perforation_depth_diff ( const int  local_perf_index) const
inline

◆ perforations()

template<typename FluidSystem , typename Indices >
const std::vector< std::vector< int > > & Opm::MultisegmentWellSegments< FluidSystem, Indices >::perforations ( ) const
inline

◆ pressureDropAutoICD()

template<typename FluidSystem , typename Indices >
EvalWell Opm::MultisegmentWellSegments< FluidSystem, Indices >::pressureDropAutoICD ( const int  seg,
const UnitSystem &  unit_system,
const bool  extra_reverse_flow_derivatives = false 
) const

◆ pressureDropSpiralICD()

template<typename FluidSystem , typename Indices >
EvalWell Opm::MultisegmentWellSegments< FluidSystem, Indices >::pressureDropSpiralICD ( const int  seg,
const bool  extra_reverse_flow_derivatives = false 
) const

◆ pressureDropValve()

template<typename FluidSystem , typename Indices >
EvalWell Opm::MultisegmentWellSegments< FluidSystem, Indices >::pressureDropValve ( const int  seg,
const SummaryState &  st,
const bool  extra_reverse_flow_derivatives = false 
) const

◆ updateUpwindingSegments()

template<typename FluidSystem , typename Indices >
void Opm::MultisegmentWellSegments< FluidSystem, Indices >::updateUpwindingSegments ( const PrimaryVariables primary_variables)

Update upwinding segments.

◆ upwinding_segment()

template<typename FluidSystem , typename Indices >
int Opm::MultisegmentWellSegments< FluidSystem, Indices >::upwinding_segment ( const int  seg) const
inline

◆ volumeRatio()

template<typename FluidSystem , typename Indices >
const EvalWell & Opm::MultisegmentWellSegments< FluidSystem, Indices >::volumeRatio ( const int  seg) const
inline

Segment volume ratio (reservoir volume per unit surface volume).

Set by computeFluidProperties(), like the other per-segment quantities.


The documentation for this class was generated from the following file: