Geophysical Inversion and Modeling Library  v1.0.12-3-g179296b4
GIMLI::DC1dModelling Class Reference

DC (direct current) 1D modelling. More...

+ Inheritance diagram for GIMLI::DC1dModelling:
+ Collaboration diagram for GIMLI::DC1dModelling:

Public Member Functions

 DC1dModelling (size_t nlayers, const RVector &am, const RVector &an, const RVector &bm, const RVector &bn, bool verbose=false)
 
 DC1dModelling (size_t nlayers, const RVector &ab2, const RVector &mn2, bool verbose=false)
 
 DC1dModelling (size_t nlayers, DataContainer &data, bool verbose=false)
 
RVector response (const RVector &model)
 
RVector rhoa (const RVector &rho, const RVector &thk)
 
RVector kern1d (const RVector &lam, const RVector &rho, const RVector &h)
 
RVector pot1d (const RVector &R, const RVector &rho, const RVector &thk)
 
RVector getK ()
 
RVector geometricFactor ()
 
template<class Vec >
Vec rhoaT (const Vec &rho, const RVector &thk)
 
template<class Vec >
Vec kern1dT (const RVector &lam, const Vec &rho, const RVector &h)
 
template<class Vec >
Vec pot1dT (const RVector &R, const Vec &rho, const RVector &thk)
 
RVector createDefaultStartModel ()
 
- Public Member Functions inherited from GIMLI::ModellingBase
 ModellingBase (bool verbose=false)
 
 ModellingBase (DataContainer &dataContainer, bool verbose=false)
 
 ModellingBase (const Mesh &mesh, bool verbose=false)
 
 ModellingBase (const Mesh &mesh, DataContainer &dataContainer, bool verbose=false)
 
void setVerbose (bool verbose)
 
bool verbose () const
 
virtual RVector response_mt (const RVector &model, Index i=0) const
 
RVector operator() (const RVector &model)
 
void setData (DataContainer &data)
 
DataContainerdata () const
 
virtual RVector startModel ()
 
virtual void setStartModel (const RVector &startModel)
 
void setMesh (const Mesh &mesh, bool ignoreRegionManager=false)
 
Meshmesh ()
 
void createRefinedForwardMesh (bool refine=true, bool pRefine=false)
 
void deleteMesh ()
 
virtual void setJacobian (MatrixBase *J)
 
virtual void createJacobian (const RVector &model)
 
virtual void createJacobian (const RVector &model, const RVector &resp)
 
virtual void createJacobian_mt (const RVector &model, const RVector &resp)
 
virtual void initJacobian ()
 
MatrixBasejacobian ()
 
MatrixBasejacobian () const
 
virtual RMatrixjacobianRef () const
 
virtual RMatrixjacobianRef ()
 
virtual void clearJacobian ()
 
virtual void setConstraints (MatrixBase *C)
 
virtual void clearConstraints ()
 
virtual void initConstraints ()
 
virtual void createConstraints ()
 
virtual MatrixBaseconstraints ()
 
virtual MatrixBaseconstraints () const
 
virtual RSparseMapMatrixconstraintsRef () const
 
virtual RSparseMapMatrixconstraintsRef ()
 
const RMatrixsolution () const
 
void mapModel (const RVector &model, double background=0)
 
RVector createMappedModel (const RVector &model, double background=-1) const
 
void setRegionManager (RegionManager *reg)
 
const RegionManagerregionManager () const
 
RegionManagerregionManager ()
 
RegionManagerregionManagerRef ()
 
bool verbose ()
 
Regionregion (int marker)
 
RVector createStartModel ()
 
RVector createStartVector ()
 
void initRegionManager ()
 
void setThreadCount (Index nThreads)
 
Index threadCount () const
 
void setMultiThreadJacobian (Index nThreads)
 
Index multiThreadJacobian () const
 

Protected Member Functions

void init_ ()
 
void postprocess_ ()
 
- Protected Member Functions inherited from GIMLI::ModellingBase
virtual void deleteMeshDependency_ ()
 
virtual void updateMeshDependency_ ()
 
virtual void updateDataDependency_ ()
 
void setMesh_ (const Mesh &mesh, bool update=true)
 

Protected Attributes

size_t nlayers_
 
double meanrhoa_
 
RVector am_
 
RVector an_
 
RVector bm_
 
RVector bn_
 
RVector k_
 
RVector tmp_
 
RVector myx_
 
RVector myw_
 
- Protected Attributes inherited from GIMLI::ModellingBase
Meshmesh_
 
DataContainerdataContainer_
 
MatrixBasejacobian_
 
bool ownJacobian_
 
MatrixBaseconstraints_
 
bool ownConstraints_
 
RMatrix solutions_
 
RVector startModel_
 
bool verbose_
 
bool regionManagerInUse_
 
bool ownRegionManager_
 
Index nThreads_
 
Index nThreadsJacobian_
 

Detailed Description

DC (direct current) 1D modelling.

Classical DC 1D forward operator for given resistivities and thicknesses DC1dModelling(nlayers, ab2, mn2, verbose) DC1dModelling(nlayers, am, an, bm, bn, verbose) DC1dModelling(nlayers, dataContainer, verbose)

Constructor & Destructor Documentation

◆ DC1dModelling() [1/3]

GIMLI::DC1dModelling::DC1dModelling ( size_t  nlayers,
const RVector am,
const RVector an,
const RVector bm,
const RVector bn,
bool  verbose = false 
)

General constructor using AM, AN, BM, BN, distances (as stored internally).

References GIMLI::createMesh1DBlock(), init_(), and GIMLI::ModellingBase::setMesh().

◆ DC1dModelling() [2/3]

GIMLI::DC1dModelling::DC1dModelling ( size_t  nlayers,
const RVector ab2,
const RVector mn2,
bool  verbose = false 
)

constructor for classical Schlumberger sounding

References GIMLI::createMesh1DBlock(), init_(), and GIMLI::ModellingBase::setMesh().

◆ DC1dModelling() [3/3]

GIMLI::DC1dModelling::DC1dModelling ( size_t  nlayers,
DataContainer data,
bool  verbose = false 
)

Member Function Documentation

◆ createDefaultStartModel()

RVector GIMLI::DC1dModelling::createDefaultStartModel ( )
virtual

Interface to define custom start model generators.

Reimplemented from GIMLI::ModellingBase.

Reimplemented in GIMLI::DC1dRhoModelling.

◆ init_()

void GIMLI::DC1dModelling::init_ ( )
protectedvirtual

init myw and myx

Reimplemented from GIMLI::ModellingBase.

References GIMLI::Vector< ValueType >::fill(), and GIMLI::Vector< ValueType >::resize().

Referenced by DC1dModelling().

◆ response()

RVector GIMLI::DC1dModelling::response ( const RVector model)
virtual

Returns an RVector of the 1dc response for model = [thickness_ 0, ..., thickness_(n-1), rho_0 .. rho_n]. For n = nlayers.

Reimplemented from GIMLI::ModellingBase.

Reimplemented in GIMLI::DC1dRhoModelling, and GIMLI::DC1dModellingC.

References GIMLI::toStr(), and GIMLI::z().