12 #ifndef __BULKCONN_HEADER__
13 #define __BULKCONN_HEADER__
69 void Setup(
const Grid& myGrid,
const Bulk& myBulk);
72 void SetupWellBulk_K(
Bulk& myBulk)
const;
81 void UpdateLastStep();
87 void CheckDiff()
const;
93 void PrintConnectionInfo(
const Grid& myGrid)
const;
94 void PrintConnectionInfoCoor(
const Grid& myGrid)
const;
103 vector<vector<OCP_USI>> neighbor;
107 vector<USI> neighborNumGacc;
113 vector<USI> neighborNum;
118 vector<BulkPair> iteratorConn;
125 vector<OCP_USI> upblock;
127 vector<OCP_DBL> upblock_Rho;
129 vector<OCP_DBL> upblock_Trans;
131 vector<OCP_DBL> upblock_Velocity;
134 vector<OCP_USI> lastUpblock;
135 vector<OCP_DBL> lastUpblock_Rho;
136 vector<OCP_DBL> lastUpblock_Trans;
137 vector<OCP_DBL> lastUpblock_Velocity;
145 void AllocateAuxIMPEC(
const USI& np);
152 void CalCFL(
const Bulk& myBulk,
const OCP_DBL& dt)
const;
155 void CalFluxIMPEC(
const Bulk& myBulk);
158 void MassConserveIMPEC(
Bulk& myBulk,
const OCP_DBL& dt)
const;
166 void AllocateAuxFIM(
const USI& np);
173 void CalFluxFIM(
const Bulk& myBulk);
176 void CalResFIM(vector<OCP_DBL>& res,
const Bulk& myBulk,
const OCP_DBL& dt);
179 void CalFluxFIMS(
const Bulk& myBulk);
180 void CalResFIMS(vector<OCP_DBL>& res,
const Bulk& myBulk,
const OCP_DBL& dt);
203 void SetupFIMBulk(
Bulk& myBulk,
const bool& NRflag =
false)
const;
204 void AddFIMBulk(
Bulk& myBulk);
205 void SetupFIMBulkBoundAIMs(
Bulk& myBulk);
207 void AllocateAuxAIMt();
214 void CalResAIMt(vector<OCP_DBL>& res,
const Bulk& myBulk,
const OCP_DBL& dt);
217 void CalResAIMs(vector<OCP_DBL>& res,
const Bulk& myBulk,
const OCP_DBL& dt);
220 void AssembleMat_AIMs(
LinearSystem& myLS, vector<OCP_DBL>& res,
const Bulk& myBulk,
224 void AllocateAuxAIMc(
const USI& np);
228 void CalResAIMc(vector<OCP_DBL>& res,
const Bulk& myBulk,
const OCP_DBL& dt);
Operations about small dense mat.
Linear solver class declaration.
unsigned int USI
Generic unsigned integer.
double OCP_DBL
Double precision.
unsigned int OCP_USI
Long unsigned integer.
Some Structure in OpenCAEPoro.
Properties and operations on connections between bulks (active grids).
OCP_USI GetBulkNum() const
Return number of bulks.
BulkConn()=default
Default constructor.
Connection between two bulks (BId, EId); usually, indices BId > EId.
BulkPair(const OCP_USI &bId, const OCP_USI &eId, const OCP_DBL &Area)
Setup BulkPair with bId and eId.
OCP_USI GetEId() const
Return ending index.
OCP_USI GetBId() const
Return beginning index.
BulkPair()=default
Default constructor.
Physical information of each active reservoir bulk.
Basic information of computational grid, including the rock properties.
Linear solvers for discrete systems.