///////////////////////////////////////////////////////////////////////////////// // // Copyright (C) 2018 Equinor ASA // // ResInsight is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // ResInsight is distributed in the hope that it will be useful, but WITHOUT ANY // WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. // // See the GNU General Public License at // for more details. // ///////////////////////////////////////////////////////////////////////////////// #include "RicMswCompletions.h" #include "RicMswSubSegment.h" #include "RimWellPathValve.h" //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicMswCompletion::RicMswCompletion( const QString& label, size_t index /* = cvf::UNDEFINED_SIZE_T */, int branchNumber /*= 0*/ ) : m_label( label ) , m_index( index ) , m_branchNumber( branchNumber ) { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- const QString& RicMswCompletion::label() const { return m_label; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- size_t RicMswCompletion::index() const { return m_index; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- int RicMswCompletion::branchNumber() const { return m_branchNumber; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicMswCompletion::setBranchNumber( int branchNumber ) { m_branchNumber = branchNumber; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicMswCompletion::addSubSegment( std::shared_ptr subSegment ) { m_subSegments.push_back( subSegment ); } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- std::vector>& RicMswCompletion::subSegments() { return m_subSegments; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- const std::vector>& RicMswCompletion::subSegments() const { return m_subSegments; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicMswCompletion::setLabel( const QString& label ) { m_label = label; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicMswFracture::RicMswFracture( const QString& label, size_t index /*= cvf::UNDEFINED_SIZE_T*/, int branchNumber /*= cvf::UNDEFINED_INT*/ ) : RicMswCompletion( label, index, branchNumber ) { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RigCompletionData::CompletionType RicMswFracture::completionType() const { return RigCompletionData::FRACTURE; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicMswPerforation::RicMswPerforation( const QString& label, size_t index /*= cvf::UNDEFINED_SIZE_T*/, int branchNumber /*= cvf::UNDEFINED_INT*/ ) : RicMswCompletion( label, index, branchNumber ) { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RigCompletionData::CompletionType RicMswPerforation::completionType() const { return RigCompletionData::PERFORATION; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicMswValve::RicMswValve( const QString& label, const RimWellPathValve* wellPathValve ) : RicMswCompletion( label ) , m_wellPathValve( wellPathValve ) { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- const RimWellPathValve* RicMswValve::wellPathValve() const { return m_wellPathValve; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicMswWsegValve::RicMswWsegValve( const QString& label, const RimWellPathValve* wellPathValve ) : RicMswValve( label, wellPathValve ) , m_flowCoefficient( 0.0 ) , m_area( 0.0 ) { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- double RicMswWsegValve::flowCoefficient() const { return m_flowCoefficient; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- double RicMswWsegValve::area() const { return m_area; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicMswWsegValve::setFlowCoefficient( double icdFlowCoefficient ) { m_flowCoefficient = icdFlowCoefficient; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicMswWsegValve::setArea( double icdArea ) { m_area = icdArea; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicMswFishbonesICD::RicMswFishbonesICD( const QString& label, const RimWellPathValve* wellPathValve ) : RicMswWsegValve( label, wellPathValve ) { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RigCompletionData::CompletionType RicMswFishbonesICD::completionType() const { return RigCompletionData::FISHBONES_ICD; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicMswPerforationICD::RicMswPerforationICD( const QString& label, const RimWellPathValve* wellPathValve ) : RicMswWsegValve( label, wellPathValve ) { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RigCompletionData::CompletionType RicMswPerforationICD::completionType() const { return RigCompletionData::PERFORATION_ICD; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicMswPerforationICV::RicMswPerforationICV( const QString& label, const RimWellPathValve* wellPathValve ) : RicMswWsegValve( label, wellPathValve ) { } //------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RigCompletionData::CompletionType RicMswPerforationICV::completionType() const { return RigCompletionData::PERFORATION_ICV; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RicMswPerforationAICD::RicMswPerforationAICD( const QString& label, const RimWellPathValve* wellPathValve ) : RicMswValve( label, wellPathValve ) , m_valid( false ) , m_deviceOpen( false ) , m_length( 0.0 ) { } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- RigCompletionData::CompletionType RicMswPerforationAICD::completionType() const { return RigCompletionData::PERFORATION_AICD; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- bool RicMswPerforationAICD::isValid() const { return m_valid; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicMswPerforationAICD::setIsValid( bool valid ) { m_valid = valid; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- bool RicMswPerforationAICD::isOpen() const { return m_deviceOpen; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicMswPerforationAICD::setIsOpen( bool deviceOpen ) { m_deviceOpen = deviceOpen; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- double RicMswPerforationAICD::length() const { return m_length; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void RicMswPerforationAICD::setLength( double length ) { m_length = length; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- const std::array& RicMswPerforationAICD::values() const { return m_parameters; } //-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- std::array& RicMswPerforationAICD::values() { return m_parameters; }