Geophysical Inversion and Modelling Library
v1.5.2-5-g042d7f36
|
Public Member Functions | |
Region (SIndex marker, RegionManager *parent, bool single=false) | |
Region (SIndex marker, const Mesh &mesh, RegionManager *parent) | |
Region (SIndex marker, const Mesh &mesh, SIndex cellMarker, RegionManager *parent) | |
Region (const Region ®ion) | |
Region & | operator= (const Region ®ion) |
void | setMarker (SIndex marker) |
SIndex | marker () const |
void | resize (const Mesh &mesh, SIndex cellMarker) |
void | resize (const std::vector< Cell * > &cells) |
void | markBackground (bool background) |
void | setBackground (bool background=true) |
bool | isBackground () const |
void | markSingle (bool issingle) |
void | setSingle (bool background=true) |
bool | isSingle () const |
bool | isInParaDomain () const |
Index | parameterCount () const |
Index | startParameter () const |
Index | endParameter () const |
void | setConstraintType (Index type) |
Index | constraintType () const |
Index | constraintCount () const |
void | fillConstraints (RSparseMapMatrix &C, Index startConstraintsID) |
void | setConstraintWeights (double bc) |
void | setConstraintWeights (const RVector &cw) |
const RVector & | constraintWeights () |
void | fillConstraintWeights (RVector &vec, Index constraintStart) |
void | _createConstraintWeights () |
void | setZWeight (double zw) |
double | zWeight () const |
void | setFixValue (double val) |
double | fixValue () const |
void | fillBoundaryNorm (std::vector< RVector3 > &vnorm, Index boundCount) |
void | fillBoundarySize (RVector &vec, Index boundStart) |
void | fillStartModel (RVector &vec) |
void | fillModelControl (RVector &vec) |
const std::vector< Boundary * > & | boundaries () const |
const std::vector< Cell * > & | cells () const |
std::vector< Cell * > & | cells () |
void | countParameter (Index start) |
bool | isPermuted () const |
void | permuteParameterMarker (const IndexArray &p) |
const IndexArray & | paraIds () const |
void | setStartModel (const RVector &start) |
void | setStartModel (double start) |
Trans< RVector > * | transModel () |
void | setLowerBound (double lb) |
void | setUpperBound (double ub) |
void | setParameters (double start, double lb, double ub, std::string transString="") |
void | setModelTransStr_ (const std::string &val) |
void | setModelControlStr_ (const std::string &val) |
void | setStartModelStr_ (const std::string &val) |
void | setZWeightStr_ (const std::string &val) |
void | setFixValueStr_ (const std::string &val) |
void | setConstraintTypeStr_ (const std::string &val) |
void | setLowerBoundStr_ (const std::string &val) |
void | setUpperBoundStr_ (const std::string &val) |
void | setSingleStr_ (const std::string &val) |
void | setBackgroundStr_ (const std::string &val) |
Protected Member Functions | |
void | init_ () |
void | copy_ (const Region ®ion) |
Protected Attributes | |
SIndex | marker_ |
RegionManager * | parent_ |
std::vector< Cell * > | cells_ |
std::vector< Boundary * > | bounds_ |
bool | isBackground_ |
bool | isSingle_ |
bool | isPermuted_ |
bool | _isInParaDomain |
IndexArray | paraIDs_ |
Index | parameterCount_ |
Index | startParameter_ |
Index | endParameter_ |
Index | constraintType_ |
RVector | startModel_ |
double | modelControl_ |
RVector | constraintWeights_ |
double | zWeight_ |
double | fixValue_ |
double | mcDefault_ |
double | startDefault_ |
double | lowerBound_ |
double | upperBound_ |
Trans< RVector > * | tM_ |
bool | ownsTrans_ |
std::string | transString_ |
void GIMLI::Region::_createConstraintWeights | ( | ) |
Helper method that convert cWeight parameter into individual constraintsWeights depending on the associated boundary norm. At the moment only zWeight is considered.
z-component
rather linear for bigger angles
References GIMLI::Boundary::norm(), and GIMLI::Vector< ValueType >::resize().
|
inline |
Returns read_only acccess to the boundaries of this region
Referenced by GIMLI::RegionManager::loadMap().
Index GIMLI::Region::constraintCount | ( | ) | const |
Returns number of constraints defined for this region, For single region return 1,
for constraintstype == 0 return amount of parameter cells,
else return amount of inner boundaries
|
inline |
Return constraint type for this region.
const RVector & GIMLI::Region::constraintWeights | ( | ) |
Return constraint weights as RVector (default RVector(constraintCount, 1.0)
|
inline |
Return the last parameter id by means of a global count, defined in countParameter called from RegionManager
void GIMLI::Region::fillConstraints | ( | RSparseMapMatrix & | C, |
Index | startConstraintsID | ||
) |
Fill given constraints matrix with local constraints. For single region (startConstraintsID, startParameter_) = 1,
for constraintstype == 0 fill (startConstraintsID + i, startParameter_ + i) = 1, i=1..constraintCount()
else fill (startConstraintsID + i, Boundary_i_leftNeightbourParameterID) = 1, (startConstraintsID + i, Boundary_i_rightNeightbourParameterID) = -1, i = 1..nBoundaries.
References GIMLI::Boundary::leftCell().
void GIMLI::Region::fillConstraintWeights | ( | RVector & | vec, |
Index | constraintStart | ||
) |
Fill global constraints weight vector started at constraintStart.
References GIMLI::Vector< ValueType >::setVal().
|
inline |
Return true if this region is a parameter region
Referenced by GIMLI::RegionManager::fillConstraints(), and GIMLI::RegionManager::setInterRegionConstraint().
|
inline |
Return true if the cells of this region are part of the primary paradomain.
|
inline |
Are the parameter indecies are ascending or permuted.
|
inline |
Return true if this region is a single parameter region
Referenced by GIMLI::RegionManager::fillConstraints().
|
inline |
Mark this region to be a background region, need RegionManger::recount
|
inline |
Return the region marker id.
|
inline |
Mark this region to be a single parameter region, need RegionManger::recount
|
inline |
Return all parameter indices of this region.
|
inline |
Return number of parameters for this region, 1 on single region
void GIMLI::Region::permuteParameterMarker | ( | const IndexArray & | p | ) |
Permute parameter indecies.
void GIMLI::Region::resize | ( | const Mesh & | mesh, |
SIndex | cellMarker | ||
) |
Set new parameter cells, i.e. update the related mesh and all sizes.
References GIMLI::Mesh::findCellByMarker(), and GIMLI::Boundary::leftCell().
Referenced by GIMLI::RegionManager::createRegion_(), and GIMLI::RegionManager::createSingleRegion_().
void GIMLI::Region::resize | ( | const std::vector< Cell * > & | cells | ) |
Set new parameter cells, i.e. update the related mesh and all sizes. Only for single region.
void GIMLI::Region::setBackground | ( | bool | background = true | ) |
Set this region to be a background region. Forces the regionmanager to recount all regions.
void GIMLI::Region::setConstraintType | ( | Index | type | ) |
Set the constraint type for this region available(0, 1)
void GIMLI::Region::setConstraintWeights | ( | const RVector & | cw | ) |
Set region wide variable constraints weight from RVector cw. If this method is called background is forced to false.
void GIMLI::Region::setConstraintWeights | ( | double | bc | ) |
Set region wide constant constraints weight, (default = 1). If this method is called background is forced to false.
void GIMLI::Region::setFixValue | ( | double | val | ) |
Set fixed value for background regions that will not part of any value prolongation.
void GIMLI::Region::setLowerBound | ( | double | lb | ) |
set lower parameter bound for region
|
inline |
Set the region marker id
void GIMLI::Region::setParameters | ( | double | start, |
double | lb, | ||
double | ub, | ||
std::string | transString = "" |
||
) |
set start and upper/lower bounds for region
void GIMLI::Region::setSingle | ( | bool | background = true | ) |
Set this region to be a single parameter region. Forces the regionmanager to recount all regions.
void GIMLI::Region::setStartModel | ( | const RVector & | start | ) |
Set the values of start for the start model of this region.
void GIMLI::Region::setStartModel | ( | double | start | ) |
Set the value of start into the start model vector for this region.
void GIMLI::Region::setUpperBound | ( | double | ub | ) |
set lower parameter bound for region
|
inline |
Set Region-Wide horizontal(z) weighting parameter for anisotropic smoothing
1 - isotrope, 0 – no vertical smoothing
|
inline |
Return the first parameter id by means of a global count, defined in countParameter called from RegionManager
Referenced by GIMLI::RegionManager::fillConstraints().
DEPRECATED use setStartModel / void setStartVector(const RVector & start); /! DEPRECATED use setStartModel */ void setStartValue(double start){ DEPRECATED setStartModel(start);}
void setModelControl(double val); void setModelControl(const RVector & vec);
inline double modelControl() { return modelControl_; }
void setTransModel(Trans< RVector > & tM);
/*! Return a cumulative transform function based on transform functions for each region. Return NULL if no region is defined.
|
inline |
Return Region-Wide horizontal(z)-weighting parameter