24 #ifndef DBLDEF_RESISTIVITY_BLOCK
25 #define DBLDEF_RESISTIVITY_BLOCK
139 bool isolated(
const int iblk )
const;
152 std::vector< std::pair<int,int> >& nonZeroCols, std::vector<double>& matValues, std::vector<double>& rhsValues )
const;
218 void calcAisotropicConductivityTensor(
const int blockID,
double conductivityTensor[3][3] )
const;
231 std::cerr <<
"Error : Copy constructer of the class ResistivityBlock is not implemented." << std::endl;
237 std::cerr <<
"Error : Assignment operator of the class ResistivityBlock is not implemented." << std::endl;
285 std::map<int, int> m_mapBlockIDWithAnisotropyToIndex;
288 std::vector<CommonParameters::Vector3D> m_resistivityValuesAxialAnisotropy;
291 std::vector<CommonParameters::Vector3D> m_resistivityValuesAxialAnisotropyPre;
294 std::vector<CommonParameters::Vector3D> m_resistivityValuesAxialAnisotropyFull;
297 std::vector<double> m_axialAnisotropyStrileAngle;
300 std::vector<double> m_axialAnisotropyDipAngle;
303 std::vector<double> m_axialAnisotropySlantAngle;
337 double calWeightingFactor(
const double alphaX,
const double alphaY,
const double alphaZ,
const int iElem1,
const int iElem2 )
const;
Definition: DoubleSparseMatrix.h:29
Definition: ResistivityBlock.h:33
void setBottomResistivity(const double resistivity)
Definition: ResistivityBlock.cpp:702
void inputResisitivityBlock()
Definition: ResistivityBlock.cpp:139
double getBottomResistivity() const
Definition: ResistivityBlock.cpp:670
void calcRougheningMatrixUserDefined(const double factor)
Definition: ResistivityBlock.cpp:1873
void copyResistivityValuesNotFixedCurToPre() const
Definition: ResistivityBlock.cpp:1410
int getNumResistivityBlockTotal() const
Definition: ResistivityBlock.cpp:659
~ResistivityBlock()
Definition: ResistivityBlock.cpp:74
void setMinDistanceToBounds(const double distance)
Definition: ResistivityBlock.cpp:722
void outputResistivityDataToBinary() const
Definition: ResistivityBlock.cpp:1048
double getRoughningFactorAtBottom() const
Definition: ResistivityBlock.cpp:673
bool includeBottomResistivity() const
Definition: ResistivityBlock.cpp:667
int m_numResistivityBlockTotal
Definition: ResistivityBlock.h:251
void outputResistivityValuesToBinary(const int iterNum) const
Definition: ResistivityBlock.cpp:1318
double m_smallValueAddedToDiagonals
Definition: ResistivityBlock.h:325
double getResistivityValuesPreFromBlockID(const int iblk) const
Definition: ResistivityBlock.cpp:588
const std::vector< std::pair< int, double > > & getBlockID2Elements(const int iBlk) const
Definition: ResistivityBlock.cpp:1090
void addSmallValueToDiagonals()
Definition: ResistivityBlock.cpp:2019
void copyDerivativeLog10ResistivityWithRespectToX(double *derivs) const
Definition: ResistivityBlock.cpp:969
int getModelIDFromBlockID(const int iblk) const
Definition: ResistivityBlock.cpp:635
double getSmallValueAddedToDiagonals() const
Definition: ResistivityBlock.cpp:681
double calcLog10ResistivityFromTransformedModelParameter(const int iBlk, const double x) const
Definition: ResistivityBlock.cpp:2056
double getMinDistanceToBounds() const
Definition: ResistivityBlock.cpp:686
double getConductivityValuesFromElemID(const int ielem) const
Definition: ResistivityBlock.cpp:628
void updateResistivityValues()
Definition: ResistivityBlock.cpp:977
void setTypeBoundConstraints(const int type)
Definition: ResistivityBlock.cpp:728
void calcRougheningMatrixDegeneratedForDifferenceFilter(const double factor, std::vector< std::pair< int, int > > &nonZeroCols, std::vector< double > &matValues, std::vector< double > &rhsValues) const
Definition: ResistivityBlock.cpp:867
double * m_resistivityValuesUpdatedFull
Definition: ResistivityBlock.h:263
double calcResistivityFromTransformedModelParameter(const int iBlk, const double x) const
Definition: ResistivityBlock.cpp:2049
double * m_weightingConstants
Definition: ResistivityBlock.h:272
ResistivityBlock()
Definition: ResistivityBlock.cpp:48
void setInverseDistanceWeightingFactor(const double factor)
Definition: ResistivityBlock.cpp:738
void addBottomResistivityContribution()
Definition: ResistivityBlock.cpp:1928
ResistivityBlock(const ResistivityBlock &rhs)
Definition: ResistivityBlock.h:230
double calcModelRoughnessForDifferenceFilter() const
Definition: ResistivityBlock.cpp:1430
void outputResistivityValuesToVTK() const
Definition: ResistivityBlock.cpp:1296
BoundconstrainingTypes
Definition: ResistivityBlock.h:44
@ TRANSFORMING_METHOD
Definition: ResistivityBlock.h:46
@ SIMPLE_BOUND_CONSTRAINING
Definition: ResistivityBlock.h:45
void setSmallValueAddedToDiagonals(const double value)
Definition: ResistivityBlock.cpp:717
double calcTransformedModelParameterFromResistivity(const int iBlk, const double resistivity) const
Definition: ResistivityBlock.cpp:2027
void outputResisitivityBlock(const int iterNum) const
Definition: ResistivityBlock.cpp:1361
int m_typeBoundConstraints
Definition: ResistivityBlock.h:328
void calcRougheningMatrixUsingElementsShareFaces(const double factor)
Definition: ResistivityBlock.cpp:1561
int * m_elementID2blockID
Definition: ResistivityBlock.h:239
double calcModelRoughnessForLaplacianFilter() const
Definition: ResistivityBlock.cpp:1417
void calctResistivityUpdatedFullFromLog10ResistivityIncres(const double *const log10resistivity)
Definition: ResistivityBlock.cpp:934
bool getFlagAddSmallValueToDiagonals() const
Definition: ResistivityBlock.cpp:676
double * m_resistivityValuesMax
Definition: ResistivityBlock.h:269
ResistivityBlock & operator=(const ResistivityBlock &rhs)
Definition: ResistivityBlock.h:236
bool isolated(const int iblk) const
Definition: ResistivityBlock.cpp:755
double calcTransformedModelParameterFromLog10Resistivity(const int iBlk, const double log10Resistivity) const
Definition: ResistivityBlock.cpp:2034
int * m_modelID2blockID
Definition: ResistivityBlock.h:248
double calcModelRoughnessAtBottom() const
Definition: ResistivityBlock.cpp:1481
void outputResistivityDataToVTK() const
Definition: ResistivityBlock.cpp:1028
void setFlagAddSmallValueToDiagonals(const bool flag)
Definition: ResistivityBlock.cpp:712
double m_bottomResistivity
Definition: ResistivityBlock.h:316
void calcRougheningMatrixUsingResistivityBlocksShareFaces(const double factor)
Definition: ResistivityBlock.cpp:1733
void calcRougheningMatrix()
Definition: ResistivityBlock.cpp:782
double * m_resistivityValuesMin
Definition: ResistivityBlock.h:266
int getBlockIDFromElemID(const int ielem) const
Definition: ResistivityBlock.h:56
int getNumResistivityBlockNotFixed() const
Definition: ResistivityBlock.cpp:662
bool isFixedResistivityValue(const int iblk) const
Definition: ResistivityBlock.cpp:743
void copyResistivityValuesNotFixedPreToVectorLog10(double *vector) const
Definition: ResistivityBlock.cpp:1403
int getTypeOfResistivityBlock(const bool fixed, const bool isolated) const
Definition: ResistivityBlock.cpp:1544
int getBlockIDFromModelID(const int imdl) const
Definition: ResistivityBlock.cpp:647
bool m_includeBottomResistivity
Definition: ResistivityBlock.h:313
std::vector< std::pair< int, double > > * m_blockID2Elements
Definition: ResistivityBlock.h:310
double getResistivityValuesFromElemID(const int ielem) const
Definition: ResistivityBlock.cpp:621
void calcRougheningMatrixDegeneratedForLaplacianFilter(DoubleSparseMatrix &rougheningMatrixDegenerated, const double factor) const
Definition: ResistivityBlock.cpp:839
double * m_resistivityValuesPre
Definition: ResistivityBlock.h:260
double m_inverseDistanceWeightingFactor
Definition: ResistivityBlock.h:334
double * m_resistivityValues
Definition: ResistivityBlock.h:257
void copyResistivityValuesToVectorLog10(double *vector) const
Definition: ResistivityBlock.cpp:1524
bool * m_isolated
Definition: ResistivityBlock.h:278
RougheningSquareMatrix m_rougheningMatrix
Definition: ResistivityBlock.h:307
double m_roughningFactorAtBottom
Definition: ResistivityBlock.h:319
double calWeightingFactor(const double alphaX, const double alphaY, const double alphaZ, const int iElem1, const int iElem2) const
Definition: ResistivityBlock.cpp:1531
double getResistivityValuesFromBlockID(const int iblk) const
Definition: ResistivityBlock.cpp:572
double calcVolumeOfBlock(int iblk) const
Definition: ResistivityBlock.cpp:763
void setRoughningFactorAtBottom(const double factor)
Definition: ResistivityBlock.cpp:707
ResistivityBlockTypes
Definition: ResistivityBlock.h:37
@ FREE_AND_CONSTRAINED
Definition: ResistivityBlock.h:38
@ FREE_AND_ISOLATED
Definition: ResistivityBlock.h:41
@ FIXED_AND_ISOLATED
Definition: ResistivityBlock.h:39
@ FIXED_AND_CONSTRAINED
Definition: ResistivityBlock.h:40
int getTypeBoundConstraints() const
Definition: ResistivityBlock.cpp:689
int * m_blockID2modelID
Definition: ResistivityBlock.h:245
double getConductivityValuesFromBlockID(const int iblk) const
Definition: ResistivityBlock.cpp:605
void copyResistivityValuesNotFixedToVectorLog10(double *vector) const
Definition: ResistivityBlock.cpp:1396
double getInverseDistanceWeightingFactor() const
Definition: ResistivityBlock.cpp:692
double calcDerivativeXWithRespectToLog10Resistivity(const int iBlk) const
Definition: ResistivityBlock.cpp:2082
bool m_addSmallValueToDiagonals
Definition: ResistivityBlock.h:322
bool * m_fixResistivityValues
Definition: ResistivityBlock.h:275
static ResistivityBlock * getInstance()
Definition: ResistivityBlock.cpp:42
int m_numResistivityBlockNotFixed
Definition: ResistivityBlock.h:254
double m_minDistanceToBounds
Definition: ResistivityBlock.h:331
void calcRougheningMatrixUsingElementsShareFacesWeightingByAreaVolumeRatio(const double factor)
Definition: ResistivityBlock.cpp:1637
double calcDerivativeLog10ResistivityWithRespectToX(const int iBlk) const
Definition: ResistivityBlock.cpp:2066
void setFlagIncludeBottomResistivity(bool include)
Definition: ResistivityBlock.cpp:697
Definition: RougheningSquareMatrix.h:30