TransMult: implement non-fault transmissibility multipliers
i.e., the MULT[XYZ]-? keywords.
This commit is contained in:
parent
9eda5bad44
commit
abb49aead6
@ -39,7 +39,7 @@ namespace Opm {
|
||||
initSchedule(deck);
|
||||
initTitle(deck);
|
||||
initProperties(deck);
|
||||
initTransMult(deck);
|
||||
initTransMult();
|
||||
initFaults(deck);
|
||||
}
|
||||
|
||||
@ -69,12 +69,26 @@ namespace Opm {
|
||||
schedule = ScheduleConstPtr( new Schedule(deck) );
|
||||
}
|
||||
|
||||
void EclipseState::initTransMult(DeckConstPtr deck) {
|
||||
void EclipseState::initTransMult() {
|
||||
EclipseGridConstPtr grid = getEclipseGrid();
|
||||
m_transMult = std::make_shared<TransMult>( grid->getNX() , grid->getNY() , grid->getNZ());
|
||||
|
||||
if (hasDoubleGridProperty("MULTX"))
|
||||
m_transMult->applyMULT(getDoubleGridProperty("MULTX"), FaceDir::XPlus);
|
||||
if (hasDoubleGridProperty("MULTX-"))
|
||||
m_transMult->applyMULT(getDoubleGridProperty("MULTX-"), FaceDir::XMinus);
|
||||
|
||||
if (hasDoubleGridProperty("MULTY"))
|
||||
m_transMult->applyMULT(getDoubleGridProperty("MULTY"), FaceDir::YPlus);
|
||||
if (hasDoubleGridProperty("MULTY-"))
|
||||
m_transMult->applyMULT(getDoubleGridProperty("MULTY-"), FaceDir::YMinus);
|
||||
|
||||
if (hasDoubleGridProperty("MULTZ"))
|
||||
m_transMult->applyMULT(getDoubleGridProperty("MULTZ"), FaceDir::ZPlus);
|
||||
if (hasDoubleGridProperty("MULTZ-"))
|
||||
m_transMult->applyMULT(getDoubleGridProperty("MULTZ-"), FaceDir::ZMinus);
|
||||
}
|
||||
|
||||
|
||||
void EclipseState::initFaults(DeckConstPtr deck) {
|
||||
EclipseGridConstPtr grid = getEclipseGrid();
|
||||
m_faults = std::make_shared<FaultCollection>( grid->getNX() , grid->getNY() , grid->getNZ());
|
||||
|
@ -59,7 +59,7 @@ namespace Opm {
|
||||
void initPhases(DeckConstPtr deck);
|
||||
void initTitle(DeckConstPtr deck);
|
||||
void initProperties(DeckConstPtr deck);
|
||||
void initTransMult(DeckConstPtr deck);
|
||||
void initTransMult();
|
||||
void initFaults(DeckConstPtr deck);
|
||||
void setMULTFLT(std::shared_ptr<const Section> section) const;
|
||||
|
||||
|
@ -80,7 +80,6 @@ namespace Opm {
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
void TransMult::insertNewProperty(FaceDir::DirEnum faceDir) {
|
||||
GridPropertySupportedKeywordInfo<double> kwInfo(m_names[faceDir] , 1.0 , "1");
|
||||
@ -97,7 +96,15 @@ namespace Opm {
|
||||
|
||||
return m_trans.at( faceDir );
|
||||
}
|
||||
|
||||
|
||||
void TransMult::applyMULT(std::shared_ptr<const GridProperty<double> > srcProp, FaceDir::DirEnum faceDir)
|
||||
{
|
||||
std::shared_ptr<GridProperty<double> > dstProp = getDirectionProperty(faceDir);
|
||||
|
||||
const std::vector<double> &srcData = srcProp->getData();
|
||||
for (size_t i = 0; i < srcData.size(); ++i)
|
||||
dstProp->multiplyValueAtIndex(i, srcData[i]);
|
||||
}
|
||||
|
||||
void TransMult::applyMULTFLT( std::shared_ptr<const FaultCollection> faults) {
|
||||
for (size_t faultIndex = 0; faultIndex < faults->size(); faultIndex++) {
|
||||
|
@ -46,6 +46,7 @@ namespace Opm {
|
||||
double getMultiplier(size_t i , size_t j , size_t k, FaceDir::DirEnum faceDir) const;
|
||||
bool hasDirectionProperty(FaceDir::DirEnum faceDir) const;
|
||||
std::shared_ptr<GridProperty<double> > getDirectionProperty(FaceDir::DirEnum faceDir);
|
||||
void applyMULT(std::shared_ptr<const GridProperty<double> > srcMultProp, FaceDir::DirEnum faceDir);
|
||||
void applyMULTFLT( std::shared_ptr<const FaultCollection> faults);
|
||||
|
||||
private:
|
||||
|
Loading…
Reference in New Issue
Block a user