splitt BC into BCCON in grid section and BC in Schedule

This commit is contained in:
Tor Harald Sandve
2023-04-21 11:08:12 +02:00
parent ff58ca550f
commit c7a7e80698
11 changed files with 374 additions and 173 deletions

View File

@@ -33,36 +33,15 @@ namespace Opm {
class Deck;
class DeckRecord;
enum class BCType {
RATE,
FREE,
DIRICHLET,
THERMAL
};
enum class BCComponent {
OIL,
GAS,
WATER,
SOLVENT,
POLYMER,
NONE
};
class BCConfig {
public:
struct BCFace {
int index;
int i1,i2;
int j1,j2;
int k1,k2;
BCType bctype;
FaceDir::DirEnum dir;
BCComponent component;
double rate;
std::optional<double> pressure;
std::optional<double> temperature;
BCFace() = default;
explicit BCFace(const DeckRecord& record, const GridDims& grid);
@@ -74,18 +53,14 @@ public:
template<class Serializer>
void serializeOp(Serializer& serializer)
{
serializer(index);
serializer(i1);
serializer(i2);
serializer(j1);
serializer(j2);
serializer(k1);
serializer(k2);
serializer(bctype);
serializer(dir);
serializer(component);
serializer(rate);
serializer(pressure);
serializer(temperature);
}
};
@@ -99,20 +74,15 @@ public:
std::vector<BCFace>::const_iterator begin() const;
std::vector<BCFace>::const_iterator end() const;
bool operator==(const BCConfig& other) const;
BCFace operator[](std::size_t index) const;
void updateBC(const DeckRecord& record);
template<class Serializer>
void serializeOp(Serializer& serializer)
{
serializer(m_faces);
serializer(m_gridDims);
}
private:
std::vector<BCFace> m_faces;
GridDims m_gridDims;
};
} //namespace Opm