Files
ResInsight/docs/diagrams/msw-export/02-data-structures.md
T

3.0 KiB

MSW Export: Data Structures

RIG flat structs (new geometry path output)

classDiagram
    class RigMswWellExportData {
        WelsegsHeader header
        vector~RigMswBranch~ branches
    }

    class RigMswBranch {
        int branchNumber
        optional~RigMswSegment~ tieInValve
        vector~RigMswSegment~ segments
    }

    class RigMswSegment {
        int segmentNumber
        int outletSegmentNumber
        double length
        double depth
        optional~double~ diameter
        optional~double~ roughness
        string description
        string sourceWellName
        vector~RigMswCellIntersection~ intersections
        optional~WsegvalvRow~ wsegvalvData
        optional~WsegaicdRow~ wsegaicdData
        optional~WsegsicdRow~ wsegsicdData
    }

    class RigMswCellIntersection {
        size_t i, j, k
        double distanceStart
        double distanceEnd
        string gridName
    }

    class WelsegsHeader {
        string well
        double topDepth
        double topLength
        string infoType
        optional~string~ pressureComponents
    }

    RigMswWellExportData "1" --> "1" WelsegsHeader
    RigMswWellExportData "1" --> "*" RigMswBranch
    RigMswBranch "1" --> "*" RigMswSegment
    RigMswSegment "1" --> "*" RigMswCellIntersection

Flat table rows collected into RigMswTableData

classDiagram
    class RigMswTableData {
        string wellName
        WelsegsHeader welsegsHeader
        vector~WelsegsRow~ welsegsData
        vector~CompsegsRow~ compsegsData
        vector~WsegvalvRow~ wsegvalvData
        vector~WsegaicdRow~ wsegaicdData
        vector~WsegsicdRow~ wsegsicdData
        vector~RigMswBranch~ mswBranches
    }

    class WelsegsRow {
        int segment1, segment2
        int branch
        int joinSegment
        double length, depth
        optional~double~ diameter
        optional~double~ roughness
    }

    class CompsegsRow {
        size_t i, j, k
        int branch
        double distanceStart
        double distanceEnd
        string gridName
    }

    class WsegvalvRow {
        string well
        int segmentNumber
        double cv
        double area
        optional~string~ status
    }

    class WsegaicdRow {
        string well
        int segment1, segment2
        double strength
        double maxAbsRate
        optional~string~ status
    }

    class WsegsicdRow {
        string well
        int segment1, segment2
        double strength
        double maxAbsRate
        optional~string~ status
    }

    RigMswTableData "1" --> "*" WelsegsRow
    RigMswTableData "1" --> "*" CompsegsRow
    RigMswTableData "1" --> "*" WsegvalvRow
    RigMswTableData "1" --> "*" WsegaicdRow
    RigMswTableData "1" --> "*" WsegsicdRow

RigMswUnifiedData aggregates multiple wells

classDiagram
    class RigMswUnifiedData {
        vector~RigMswTableData~ wellDataList
        getAllCompsegsRows()
        getAllWsegvalvRows()
        getAllWsegaicdRows()
        getAllWsegsicdRows()
    }

    RigMswUnifiedData "1" --> "*" RigMswTableData