make TransMult constructible from variables
also add default constructor and equality operator
This commit is contained in:
@@ -47,7 +47,13 @@ namespace Opm {
|
||||
class TransMult {
|
||||
|
||||
public:
|
||||
TransMult() = default;
|
||||
TransMult(const GridDims& dims, const Deck& deck, const FieldPropsManager& fp);
|
||||
TransMult(const std::array<size_t,3>& size,
|
||||
const std::map<FaceDir::DirEnum, std::vector<double>>& trans,
|
||||
const std::map<FaceDir::DirEnum, std::string>& names,
|
||||
const MULTREGTScanner& scanner);
|
||||
|
||||
double getMultiplier(size_t globalIndex, FaceDir::DirEnum faceDir) const;
|
||||
double getMultiplier(size_t i , size_t j , size_t k, FaceDir::DirEnum faceDir) const;
|
||||
double getRegionMultiplier( size_t globalCellIndex1, size_t globalCellIndex2, FaceDir::DirEnum faceDir) const;
|
||||
@@ -55,6 +61,13 @@ namespace Opm {
|
||||
void applyMULTFLT(const FaultCollection& faults);
|
||||
void applyMULTFLT(const Fault& fault);
|
||||
|
||||
std::array<size_t,3> getSize() const;
|
||||
const std::map<FaceDir::DirEnum, std::vector<double>>& getTrans() const;
|
||||
const std::map<FaceDir::DirEnum, std::string>& getNames() const;
|
||||
const MULTREGTScanner& getScanner() const;
|
||||
|
||||
bool operator==(const TransMult& data) const;
|
||||
|
||||
private:
|
||||
size_t getGlobalIndex(size_t i , size_t j , size_t k) const;
|
||||
void assertIJK(size_t i , size_t j , size_t k) const;
|
||||
@@ -62,7 +75,7 @@ namespace Opm {
|
||||
bool hasDirectionProperty(FaceDir::DirEnum faceDir) const;
|
||||
std::vector<double>& getDirectionProperty(FaceDir::DirEnum faceDir);
|
||||
|
||||
size_t m_nx , m_ny , m_nz;
|
||||
size_t m_nx = 0, m_ny = 0, m_nz = 0;
|
||||
std::map<FaceDir::DirEnum , std::vector<double> > m_trans;
|
||||
std::map<FaceDir::DirEnum , std::string> m_names;
|
||||
MULTREGTScanner m_multregtScanner;
|
||||
|
||||
@@ -57,6 +57,20 @@ R"(This deck has the MULTREGT keyword located in the EDIT section. Note that:
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TransMult::TransMult(const std::array<size_t,3>& size,
|
||||
const std::map<FaceDir::DirEnum, std::vector<double>>& trans,
|
||||
const std::map<FaceDir::DirEnum, std::string>& names,
|
||||
const MULTREGTScanner& scanner) :
|
||||
m_nx(size[0]),
|
||||
m_ny(size[1]),
|
||||
m_nz(size[2]),
|
||||
m_trans(trans),
|
||||
m_names(names),
|
||||
m_multregtScanner(scanner)
|
||||
{
|
||||
}
|
||||
|
||||
void TransMult::assertIJK(size_t i , size_t j , size_t k) const {
|
||||
if ((i >= m_nx) || (j >= m_ny) || (k >= m_nz))
|
||||
throw std::invalid_argument("Invalid ijk");
|
||||
@@ -137,4 +151,28 @@ R"(This deck has the MULTREGT keyword located in the EDIT section. Note that:
|
||||
this->applyMULTFLT(fault);
|
||||
}
|
||||
}
|
||||
|
||||
std::array<size_t,3> TransMult::getSize() const {
|
||||
return {m_nx, m_ny, m_nz};
|
||||
}
|
||||
|
||||
const std::map<FaceDir::DirEnum, std::vector<double>>& TransMult::getTrans() const {
|
||||
return m_trans;
|
||||
}
|
||||
|
||||
const std::map<FaceDir::DirEnum, std::string>& TransMult::getNames() const {
|
||||
return m_names;
|
||||
}
|
||||
|
||||
const MULTREGTScanner& TransMult::getScanner() const {
|
||||
return m_multregtScanner;
|
||||
}
|
||||
|
||||
bool TransMult::operator==(const TransMult& data) const {
|
||||
return this->getSize() == data.getSize() &&
|
||||
this->getTrans() == data.getTrans() &&
|
||||
this->getNames() == data.getNames() &&
|
||||
this->getScanner() == data.getScanner();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user