20#ifndef _GIMLI_EM1DMODELLING__H
21#define _GIMLI_EM1DMODELLING__H
25#include "meshgenerators.h"
26#include "modellingbase.h"
33class DLLEXPORT MT1dModelling :
public ModellingBase {
35 MT1dModelling(
const RVector & periods,
size_t nlay,
bool verbose =
false)
36 : ModellingBase(
verbose), periods_(periods), nlay_(nlay) {
44 virtual ~MT1dModelling() { }
47 virtual RVector
rhoaphi(
const RVector & rho,
const RVector & thk);
49 virtual RVector
rhoa(
const RVector & rho,
const RVector & thk);
51 virtual RVector
rhoa(
const RVector & model);
56 virtual RVector
response(
const RVector & model);
66class DLLEXPORT MT1dRhoModelling :
public MT1dModelling {
72 MT1dRhoModelling(RVector & periods, RVector & thk,
bool verbose =
false)
73 : MT1dModelling(periods, thk.size(),
verbose), thk_(thk) {
77 virtual ~MT1dRhoModelling() { }
93 const RVector & coilspacing,
104 virtual RVector response(
const RVector & model);
111 RVector calc(
const RVector & rho,
const RVector & thk);
117 RVector coilspacing_;
120 RVector freeAirSolution_;
137 FDEM1dRhoModelling(
const RVector & thk,
const RVector & freq,
double coilspacing,
double z=0.0,
bool verbose=
false)
142 virtual ~FDEM1dRhoModelling() { }
144 RVector response(
const RVector & model){
return calc(model, thk_); }
157 ModellingBase(mesh,
verbose), KR_(&KR), KI_(&KI) { }
160 ModellingBase(
verbose), KR_(&KR), KI_(&KI) { }
165 RVector response(
const RVector & model);
168 void createJacobian(
const RVector & model);
182 nvec_(KR.cols()),zvec_(zvec) {
192 RVector response(
const RVector & model);
Definition em1dmodelling.h:89
const RVector & freeAirSolution() const
Definition em1dmodelling.h:109
FDEM1dModelling(size_t nlay, const RVector &freqs, const RVector &coilspacing, double z=0.0, bool verbose=false)
default constructor creating a block model
Definition em1dmodelling.cpp:93
Definition em1dmodelling.h:129
FDEM1dRhoModelling(const RVector &thk, const RVector &freq, const RVector &coilspacing, double z=0.0, bool verbose=false)
default constructor creating a block model
Definition em1dmodelling.h:132
Definition em1dmodelling.h:177
MRS1dBlockModelling(int nlay, RMatrix &KR, RMatrix &KI, RVector &zvec, bool verbose=false)
Definition em1dmodelling.h:185
MRS1dBlockModelling(Mesh &mesh, RMatrix &KR, RMatrix &KI, RVector &zvec, bool verbose=false)
Definition em1dmodelling.h:180
void createJacobian(const RVector &model)
Definition em1dmodelling.h:195
virtual ~MRSModelling()
destructor
Definition em1dmodelling.h:162
MRSModelling(Mesh &mesh, RMatrix &KR, RMatrix &KI, bool verbose=false)
constructor using a predefined mesh and real/imag matrix
Definition em1dmodelling.h:156
MRSModelling(RMatrix &KR, RMatrix &KI, bool verbose=false)
constructor with real/imag matrix only
Definition em1dmodelling.h:159
virtual RVector rhoa(const RVector &rho, const RVector &thk)
app. res. and phase
Definition em1dmodelling.cpp:70
virtual RVector rhoaphi(const RVector &rho, const RVector &thk)
Definition em1dmodelling.cpp:28
virtual RVector response(const RVector &model)
app. res. for thk/res vector
Definition em1dmodelling.cpp:61
virtual RVector rhoa(const RVector &rho)
only app. res.
Definition em1dmodelling.h:81
virtual RVector response(const RVector &rho)
app. res. for thk/res vector
Definition em1dmodelling.h:79
bool verbose() const
Definition modellingbase.h:48
void setMesh(const Mesh &mesh, bool ignoreRegionManager=false)
Definition modellingbase.cpp:179
virtual void createJacobian(const RVector &model)
Definition modellingbase.cpp:332
GIMLi main namespace for the Geophyiscal Inversion and Modelling Library.
Definition baseentity.h:24
RVector z(const R3Vector &rv)
Definition pos.cpp:120
Mesh createMesh1D(Index nCells, Index nClones)
Definition meshgenerators.cpp:49
Mesh createMesh1DBlock(Index nLayers, Index nProperties)
Definition meshgenerators.cpp:69