FEMTIC
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
ResistivityBlock Class Reference

#include <ResistivityBlock.h>

Collaboration diagram for ResistivityBlock:
Collaboration graph
[legend]

Public Types

enum  ResistivityBlockTypes { FREE_AND_CONSTRAINED = 0 , FIXED_AND_ISOLATED , FIXED_AND_CONSTRAINED , FREE_AND_ISOLATED }
 
enum  BoundconstrainingTypes { SIMPLE_BOUND_CONSTRAINING = 0 , TRANSFORMING_METHOD }
 

Public Member Functions

void inputResisitivityBlock ()
 
int getBlockIDFromElemID (const int ielem) const
 
double getResistivityValuesFromBlockID (const int iblk) const
 
double getResistivityValuesPreFromBlockID (const int iblk) const
 
double getConductivityValuesFromBlockID (const int iblk) const
 
double getResistivityValuesFromElemID (const int ielem) const
 
double getConductivityValuesFromElemID (const int ielem) const
 
int getModelIDFromBlockID (const int iblk) const
 
int getBlockIDFromModelID (const int imdl) const
 
int getNumResistivityBlockTotal () const
 
int getNumResistivityBlockNotFixed () const
 
bool includeBottomResistivity () const
 
double getBottomResistivity () const
 
double getRoughningFactorAtBottom () const
 
bool getFlagAddSmallValueToDiagonals () const
 
double getSmallValueAddedToDiagonals () const
 
double getMinDistanceToBounds () const
 
int getTypeBoundConstraints () const
 
double getInverseDistanceWeightingFactor () const
 
void setFlagIncludeBottomResistivity (bool include)
 
void setBottomResistivity (const double resistivity)
 
void setRoughningFactorAtBottom (const double factor)
 
void setFlagAddSmallValueToDiagonals (const bool flag)
 
void setSmallValueAddedToDiagonals (const double value)
 
void setMinDistanceToBounds (const double distance)
 
void setTypeBoundConstraints (const int type)
 
void setInverseDistanceWeightingFactor (const double factor)
 
bool isFixedResistivityValue (const int iblk) const
 
bool isolated (const int iblk) const
 
double calcVolumeOfBlock (int iblk) const
 
void calcRougheningMatrix ()
 
void calcRougheningMatrixDegeneratedForLaplacianFilter (DoubleSparseMatrix &rougheningMatrixDegenerated, const double factor) const
 
void calcRougheningMatrixDegeneratedForDifferenceFilter (const double factor, std::vector< std::pair< int, int > > &nonZeroCols, std::vector< double > &matValues, std::vector< double > &rhsValues) const
 
void calctResistivityUpdatedFullFromLog10ResistivityIncres (const double *const log10resistivity)
 
void copyDerivativeLog10ResistivityWithRespectToX (double *derivs) const
 
void updateResistivityValues ()
 
void outputResistivityValuesToVTK () const
 
void outputResistivityValuesToBinary (const int iterNum) const
 
void outputResisitivityBlock (const int iterNum) const
 
void copyResistivityValuesNotFixedToVectorLog10 (double *vector) const
 
void copyResistivityValuesNotFixedPreToVectorLog10 (double *vector) const
 
void copyResistivityValuesNotFixedCurToPre () const
 
double calcModelRoughnessForLaplacianFilter () const
 
double calcModelRoughnessForDifferenceFilter () const
 
double calcModelRoughnessAtBottom () const
 
void copyResistivityValuesToVectorLog10 (double *vector) const
 
void outputResistivityDataToVTK () const
 
void outputResistivityDataToBinary () const
 
const std::vector< std::pair< int, double > > & getBlockID2Elements (const int iBlk) const
 

Static Public Member Functions

static ResistivityBlockgetInstance ()
 

Private Member Functions

 ResistivityBlock ()
 
 ~ResistivityBlock ()
 
 ResistivityBlock (const ResistivityBlock &rhs)
 
ResistivityBlockoperator= (const ResistivityBlock &rhs)
 
double calWeightingFactor (const double alphaX, const double alphaY, const double alphaZ, const int iElem1, const int iElem2) const
 
int getTypeOfResistivityBlock (const bool fixed, const bool isolated) const
 
void calcRougheningMatrixUsingElementsShareFaces (const double factor)
 
void calcRougheningMatrixUsingElementsShareFacesWeightingByAreaVolumeRatio (const double factor)
 
void calcRougheningMatrixUsingResistivityBlocksShareFaces (const double factor)
 
void calcRougheningMatrixUserDefined (const double factor)
 
void addBottomResistivityContribution ()
 
void addSmallValueToDiagonals ()
 
double calcTransformedModelParameterFromResistivity (const int iBlk, const double resistivity) const
 
double calcTransformedModelParameterFromLog10Resistivity (const int iBlk, const double log10Resistivity) const
 
double calcResistivityFromTransformedModelParameter (const int iBlk, const double x) const
 
double calcLog10ResistivityFromTransformedModelParameter (const int iBlk, const double x) const
 
double calcDerivativeLog10ResistivityWithRespectToX (const int iBlk) const
 
double calcDerivativeXWithRespectToLog10Resistivity (const int iBlk) const
 

Private Attributes

int * m_elementID2blockID
 
int * m_blockID2modelID
 
int * m_modelID2blockID
 
int m_numResistivityBlockTotal
 
int m_numResistivityBlockNotFixed
 
double * m_resistivityValues
 
double * m_resistivityValuesPre
 
double * m_resistivityValuesUpdatedFull
 
double * m_resistivityValuesMin
 
double * m_resistivityValuesMax
 
double * m_weightingConstants
 
bool * m_fixResistivityValues
 
bool * m_isolated
 
RougheningSquareMatrix m_rougheningMatrix
 
std::vector< std::pair< int, double > > * m_blockID2Elements
 
bool m_includeBottomResistivity
 
double m_bottomResistivity
 
double m_roughningFactorAtBottom
 
bool m_addSmallValueToDiagonals
 
double m_smallValueAddedToDiagonals
 
int m_typeBoundConstraints
 
double m_minDistanceToBounds
 
double m_inverseDistanceWeightingFactor
 

Member Enumeration Documentation

◆ BoundconstrainingTypes

Enumerator
SIMPLE_BOUND_CONSTRAINING 
TRANSFORMING_METHOD 

◆ ResistivityBlockTypes

Enumerator
FREE_AND_CONSTRAINED 
FIXED_AND_ISOLATED 
FIXED_AND_CONSTRAINED 
FREE_AND_ISOLATED 

Constructor & Destructor Documentation

◆ ResistivityBlock() [1/2]

ResistivityBlock::ResistivityBlock ( )
private

◆ ~ResistivityBlock()

ResistivityBlock::~ResistivityBlock ( )
private

◆ ResistivityBlock() [2/2]

ResistivityBlock::ResistivityBlock ( const ResistivityBlock rhs)
inlineprivate

Member Function Documentation

◆ addBottomResistivityContribution()

void ResistivityBlock::addBottomResistivityContribution ( )
private

◆ addSmallValueToDiagonals()

void ResistivityBlock::addSmallValueToDiagonals ( )
private

◆ calcDerivativeLog10ResistivityWithRespectToX()

double ResistivityBlock::calcDerivativeLog10ResistivityWithRespectToX ( const int  iBlk) const
private

◆ calcDerivativeXWithRespectToLog10Resistivity()

double ResistivityBlock::calcDerivativeXWithRespectToLog10Resistivity ( const int  iBlk) const
private

◆ calcLog10ResistivityFromTransformedModelParameter()

double ResistivityBlock::calcLog10ResistivityFromTransformedModelParameter ( const int  iBlk,
const double  x 
) const
private

◆ calcModelRoughnessAtBottom()

double ResistivityBlock::calcModelRoughnessAtBottom ( ) const

◆ calcModelRoughnessForDifferenceFilter()

double ResistivityBlock::calcModelRoughnessForDifferenceFilter ( ) const

◆ calcModelRoughnessForLaplacianFilter()

double ResistivityBlock::calcModelRoughnessForLaplacianFilter ( ) const

◆ calcResistivityFromTransformedModelParameter()

double ResistivityBlock::calcResistivityFromTransformedModelParameter ( const int  iBlk,
const double  x 
) const
private

◆ calcRougheningMatrix()

void ResistivityBlock::calcRougheningMatrix ( )

◆ calcRougheningMatrixDegeneratedForDifferenceFilter()

void ResistivityBlock::calcRougheningMatrixDegeneratedForDifferenceFilter ( const double  factor,
std::vector< std::pair< int, int > > &  nonZeroCols,
std::vector< double > &  matValues,
std::vector< double > &  rhsValues 
) const

◆ calcRougheningMatrixDegeneratedForLaplacianFilter()

void ResistivityBlock::calcRougheningMatrixDegeneratedForLaplacianFilter ( DoubleSparseMatrix rougheningMatrixDegenerated,
const double  factor 
) const

◆ calcRougheningMatrixUserDefined()

void ResistivityBlock::calcRougheningMatrixUserDefined ( const double  factor)
private

◆ calcRougheningMatrixUsingElementsShareFaces()

void ResistivityBlock::calcRougheningMatrixUsingElementsShareFaces ( const double  factor)
private

◆ calcRougheningMatrixUsingElementsShareFacesWeightingByAreaVolumeRatio()

void ResistivityBlock::calcRougheningMatrixUsingElementsShareFacesWeightingByAreaVolumeRatio ( const double  factor)
private

◆ calcRougheningMatrixUsingResistivityBlocksShareFaces()

void ResistivityBlock::calcRougheningMatrixUsingResistivityBlocksShareFaces ( const double  factor)
private

◆ calcTransformedModelParameterFromLog10Resistivity()

double ResistivityBlock::calcTransformedModelParameterFromLog10Resistivity ( const int  iBlk,
const double  log10Resistivity 
) const
private

◆ calcTransformedModelParameterFromResistivity()

double ResistivityBlock::calcTransformedModelParameterFromResistivity ( const int  iBlk,
const double  resistivity 
) const
private

◆ calctResistivityUpdatedFullFromLog10ResistivityIncres()

void ResistivityBlock::calctResistivityUpdatedFullFromLog10ResistivityIncres ( const double *const  log10resistivity)

◆ calcVolumeOfBlock()

double ResistivityBlock::calcVolumeOfBlock ( int  iblk) const

◆ calWeightingFactor()

double ResistivityBlock::calWeightingFactor ( const double  alphaX,
const double  alphaY,
const double  alphaZ,
const int  iElem1,
const int  iElem2 
) const
private

◆ copyDerivativeLog10ResistivityWithRespectToX()

void ResistivityBlock::copyDerivativeLog10ResistivityWithRespectToX ( double *  derivs) const

◆ copyResistivityValuesNotFixedCurToPre()

void ResistivityBlock::copyResistivityValuesNotFixedCurToPre ( ) const

◆ copyResistivityValuesNotFixedPreToVectorLog10()

void ResistivityBlock::copyResistivityValuesNotFixedPreToVectorLog10 ( double *  vector) const

◆ copyResistivityValuesNotFixedToVectorLog10()

void ResistivityBlock::copyResistivityValuesNotFixedToVectorLog10 ( double *  vector) const

◆ copyResistivityValuesToVectorLog10()

void ResistivityBlock::copyResistivityValuesToVectorLog10 ( double *  vector) const

◆ getBlockID2Elements()

const std::vector< std::pair< int, double > > & ResistivityBlock::getBlockID2Elements ( const int  iBlk) const

◆ getBlockIDFromElemID()

int ResistivityBlock::getBlockIDFromElemID ( const int  ielem) const
inline

◆ getBlockIDFromModelID()

int ResistivityBlock::getBlockIDFromModelID ( const int  imdl) const

◆ getBottomResistivity()

double ResistivityBlock::getBottomResistivity ( ) const

◆ getConductivityValuesFromBlockID()

double ResistivityBlock::getConductivityValuesFromBlockID ( const int  iblk) const

◆ getConductivityValuesFromElemID()

double ResistivityBlock::getConductivityValuesFromElemID ( const int  ielem) const

◆ getFlagAddSmallValueToDiagonals()

bool ResistivityBlock::getFlagAddSmallValueToDiagonals ( ) const

◆ getInstance()

ResistivityBlock * ResistivityBlock::getInstance ( )
static

◆ getInverseDistanceWeightingFactor()

double ResistivityBlock::getInverseDistanceWeightingFactor ( ) const

◆ getMinDistanceToBounds()

double ResistivityBlock::getMinDistanceToBounds ( ) const

◆ getModelIDFromBlockID()

int ResistivityBlock::getModelIDFromBlockID ( const int  iblk) const

◆ getNumResistivityBlockNotFixed()

int ResistivityBlock::getNumResistivityBlockNotFixed ( ) const

◆ getNumResistivityBlockTotal()

int ResistivityBlock::getNumResistivityBlockTotal ( ) const

◆ getResistivityValuesFromBlockID()

double ResistivityBlock::getResistivityValuesFromBlockID ( const int  iblk) const

◆ getResistivityValuesFromElemID()

double ResistivityBlock::getResistivityValuesFromElemID ( const int  ielem) const

◆ getResistivityValuesPreFromBlockID()

double ResistivityBlock::getResistivityValuesPreFromBlockID ( const int  iblk) const

◆ getRoughningFactorAtBottom()

double ResistivityBlock::getRoughningFactorAtBottom ( ) const

◆ getSmallValueAddedToDiagonals()

double ResistivityBlock::getSmallValueAddedToDiagonals ( ) const

◆ getTypeBoundConstraints()

int ResistivityBlock::getTypeBoundConstraints ( ) const

◆ getTypeOfResistivityBlock()

int ResistivityBlock::getTypeOfResistivityBlock ( const bool  fixed,
const bool  isolated 
) const
private

◆ includeBottomResistivity()

bool ResistivityBlock::includeBottomResistivity ( ) const

◆ inputResisitivityBlock()

void ResistivityBlock::inputResisitivityBlock ( )

◆ isFixedResistivityValue()

bool ResistivityBlock::isFixedResistivityValue ( const int  iblk) const

◆ isolated()

bool ResistivityBlock::isolated ( const int  iblk) const

◆ operator=()

ResistivityBlock& ResistivityBlock::operator= ( const ResistivityBlock rhs)
inlineprivate

◆ outputResisitivityBlock()

void ResistivityBlock::outputResisitivityBlock ( const int  iterNum) const

◆ outputResistivityDataToBinary()

void ResistivityBlock::outputResistivityDataToBinary ( ) const

◆ outputResistivityDataToVTK()

void ResistivityBlock::outputResistivityDataToVTK ( ) const

◆ outputResistivityValuesToBinary()

void ResistivityBlock::outputResistivityValuesToBinary ( const int  iterNum) const

◆ outputResistivityValuesToVTK()

void ResistivityBlock::outputResistivityValuesToVTK ( ) const

◆ setBottomResistivity()

void ResistivityBlock::setBottomResistivity ( const double  resistivity)

◆ setFlagAddSmallValueToDiagonals()

void ResistivityBlock::setFlagAddSmallValueToDiagonals ( const bool  flag)

◆ setFlagIncludeBottomResistivity()

void ResistivityBlock::setFlagIncludeBottomResistivity ( bool  include)

◆ setInverseDistanceWeightingFactor()

void ResistivityBlock::setInverseDistanceWeightingFactor ( const double  factor)

◆ setMinDistanceToBounds()

void ResistivityBlock::setMinDistanceToBounds ( const double  distance)

◆ setRoughningFactorAtBottom()

void ResistivityBlock::setRoughningFactorAtBottom ( const double  factor)

◆ setSmallValueAddedToDiagonals()

void ResistivityBlock::setSmallValueAddedToDiagonals ( const double  value)

◆ setTypeBoundConstraints()

void ResistivityBlock::setTypeBoundConstraints ( const int  type)

◆ updateResistivityValues()

void ResistivityBlock::updateResistivityValues ( )

Member Data Documentation

◆ m_addSmallValueToDiagonals

bool ResistivityBlock::m_addSmallValueToDiagonals
private

◆ m_blockID2Elements

std::vector< std::pair<int,double> >* ResistivityBlock::m_blockID2Elements
private

◆ m_blockID2modelID

int* ResistivityBlock::m_blockID2modelID
private

◆ m_bottomResistivity

double ResistivityBlock::m_bottomResistivity
private

◆ m_elementID2blockID

int* ResistivityBlock::m_elementID2blockID
private

◆ m_fixResistivityValues

bool* ResistivityBlock::m_fixResistivityValues
private

◆ m_includeBottomResistivity

bool ResistivityBlock::m_includeBottomResistivity
private

◆ m_inverseDistanceWeightingFactor

double ResistivityBlock::m_inverseDistanceWeightingFactor
private

◆ m_isolated

bool* ResistivityBlock::m_isolated
private

◆ m_minDistanceToBounds

double ResistivityBlock::m_minDistanceToBounds
private

◆ m_modelID2blockID

int* ResistivityBlock::m_modelID2blockID
private

◆ m_numResistivityBlockNotFixed

int ResistivityBlock::m_numResistivityBlockNotFixed
private

◆ m_numResistivityBlockTotal

int ResistivityBlock::m_numResistivityBlockTotal
private

◆ m_resistivityValues

double* ResistivityBlock::m_resistivityValues
private

◆ m_resistivityValuesMax

double* ResistivityBlock::m_resistivityValuesMax
private

◆ m_resistivityValuesMin

double* ResistivityBlock::m_resistivityValuesMin
private

◆ m_resistivityValuesPre

double* ResistivityBlock::m_resistivityValuesPre
private

◆ m_resistivityValuesUpdatedFull

double* ResistivityBlock::m_resistivityValuesUpdatedFull
private

◆ m_rougheningMatrix

RougheningSquareMatrix ResistivityBlock::m_rougheningMatrix
private

◆ m_roughningFactorAtBottom

double ResistivityBlock::m_roughningFactorAtBottom
private

◆ m_smallValueAddedToDiagonals

double ResistivityBlock::m_smallValueAddedToDiagonals
private

◆ m_typeBoundConstraints

int ResistivityBlock::m_typeBoundConstraints
private

◆ m_weightingConstants

double* ResistivityBlock::m_weightingConstants
private

The documentation for this class was generated from the following files: