/[escript]/trunk/doc/inversion/Drivers.tex
ViewVC logotype

Contents of /trunk/doc/inversion/Drivers.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 4139 - (show annotations)
Tue Jan 15 00:13:28 2013 UTC (6 years, 8 months ago) by caltinay
File MIME type: application/x-tex
File size: 9299 byte(s)
Added L-BFGS reference and some minor changes.

1 \section{Driver Classes}
2 The inversion minimizes an appropriate cost function $J$ to find the physical parameter distribution
3 (or more precisely the level set function) which gives the best fit to measured data. A
4 particular inversion case (gravity, magnetic or joint) is managed through
5 an instance of a specialization of the \class{InversionDriver} class. The task of the class instance
6 is to set up the appropriate cost function, to manage solution parameters and to run the optimization process.
7
8 \subsection{Template}
9 \begin{classdesc*}{InversionDriver}
10 template for inversion drivers. By default the limited-memory Broyden-Fletcher-Goldfarb-Shanno (\emph{L-BFGS})~\cite{Nocedal1980}\index{L-BFGS} solver is used.
11 \end{classdesc*}
12
13 \begin{methoddesc}[InversionDriver]{getCostFunction}{}
14 returns the cost function of the inversion. This will be an instance of the \class{InversionCostFunction} class, see Section~\ref{chapter:ref:inversion cost function}.
15 Use this method to access or alter attributes or call methods of the underlying cost function.
16 \end{methoddesc}
17
18 \begin{methoddesc}[InversionDriver]{getDomain}{}
19 returns the domain of the inversion as an \escript \class{Domain} object.
20 \end{methoddesc}
21
22
23 \begin{methoddesc}[InversionDriver]{setSolverMaxIterations}{\optional{maxiter=\None}}
24 sets the maximum number of iteration steps for the solver used to minimize the cost function. The default value is 200.
25 If the maximum number is reached, the iteration will be terminated and \exception{MinimizerMaxIterReached} is thrown.
26 \end{methoddesc}
27
28 \begin{methoddesc}[InversionDriver]{setSolverTolerance}{\optional{tol=\None} \optional{, atol=\None}}
29 set the tolerance for the the solver used to minimize the cost function. If \member{tol} is set the iteration is terminated
30 if the relative change of the level set function is less than or equal \member{tol}.
31 If \member{atol} is set the iteration is terminated if the change of the cost
32 function relative to the initial value is less than or equal \member{atol}.
33 If both tolerances are set both stopping criteria need to be met.
34 By default \member{tol}=1e-4 and \member{atol}=\None.
35 \end{methoddesc}
36
37 \begin{methoddesc}[InversionDriver]{getLevelSetFunction}{}
38 returns the level set function as solution of the optimization problem.
39 This method can only be called if the optimization process as been completed.
40 If the iteration failed the last available approximation of the solution is returned.
41 \end{methoddesc}
42
43 \begin{methoddesc}[InversionDriver]{run}{}
44 this method runs the optimization solver and returns the physical parameter(s)
45 from the output of the inversion. Notice that the \method{setup} method must be
46 called before the first call of \method{run}.
47 The call can fail as the maximum number of iterations is reached in which case
48 a \exception{MinimizerMaxIterReached} exception is thrown or as there is an
49 incurable break down in the iteration in which case a \exception{MinimizerIterationIncurableBreakDown} exception is thrown.
50 \end{methoddesc}
51
52 \subsection{Gravity Inversion Driver}
53 For examples of usage please see Chapter~\ref{Chp:cook:gravity inversion}.
54
55 \begin{classdesc}{GravityInversion}{}
56 Driver class to perform an inversion of Gravity (Bouguer) anomaly data.
57 This class is a sub-class of \class{InversionDriver}. The class uses the
58 standard \class{Regularization} for a single level set function,
59 see Chapter~\ref{Chp:ref:regularization}, \class{DensityMapping} mapping,
60 see Section~\ref{Chp:ref:mapping density}, and the gravity forward model
61 \class{GravityModel}, see Section~\ref{sec:forward gravity}.
62 \end{classdesc}
63
64 \begin{methoddesc}[GravityInversion]{setup}{
65 domainbuilder
66 \optional{, rho0=\None}
67 \optional{, drho=\None}
68 \optional{, z0=\None}
69 \optional{, beta=\None}
70 \optional{, w0=\None}
71 \optional{, w1=\None}}
72 sets up the inversion from an instance \member{domainbuilder} of a \class{DomainBuilder}, see Section~\ref{Chp:ref:domain builder}.
73 Only gravitational data attached to the \member{domainbuilder} are considered in the inversion.
74 \member{rho0} defines a reference density anomaly (default is 0),
75 \member{drho} defines a density anomaly (default is $2750 \frac{kg}{m^3}$),
76 \member{z0} defines the depth weighting reference depth (default is \None), and
77 \member{beta} defines the depth weighting exponent (default is \None),
78 see \class{DensityMapping} in Section~\ref{Chp:ref:mapping density}.
79 \member{w0} and \member{w1} define the weighting factors
80 $\omega^{(0)}$ and
81 $\omega^{(1)}$, respectively (see Equation~\ref{EQU:REG:1}).
82 By default \member{w0}=\None and \member{w1}=1 are used.
83 \end{methoddesc}
84
85 \begin{methoddesc}[GravityInversion]{setInitialGuess}{\optional{rho=\None}}
86 sets an initial guess for the density anomaly. By default zero is used.
87 \end{methoddesc}
88
89 \subsection{Magnetic Inversion Driver}
90 For examples of usage please see Chapter~\ref{Chp:cook:magnetic inversion}.
91
92 \begin{classdesc}{MagneticInversion}{}
93 Driver class to perform an inversion of magnetic anomaly data. This class
94 is a sub-class of \class{InversionDriver}. The class uses the standard
95 \class{Regularization} class for a single level set function, see Chapter~\ref{Chp:ref:regularization},
96 \class{SusceptibilityMapping} mapping, see Section~\ref{Chp:ref:mapping susceptibility}, and the linear
97 magnetic forward model \class{MagneticModel}, see Section~\ref{sec:forward magnetic}.
98 \end{classdesc}
99
100
101 \begin{methoddesc}[MagneticInversion]{setup}{
102 domainbuilder
103 \optional{, k0=\None}
104 \optional{, dk=\None}
105 \optional{, z0=\None}
106 \optional{, beta=\None}
107 \optional{, w0=\None}
108 \optional{, w1=\None}}
109
110 sets up the inversion from an instance \member{domainbuilder} of a \class{DomainBuilder}, see Section~\ref{Chp:ref:domain builder}.
111 Only magnetic data attached to the \member{domainbuilder} are considered in the inversion.
112 \member{k0} defines a reference susceptibility anomaly (default is $0$),
113 \member{dk} defines a susceptibility anomaly scale (default is $1$),
114 \member{z0} defines the depth weighting reference depth (default is \None), and
115 \member{beta} defines the depth weighting exponent (default is \None),
116 see \class{SusceptibilityMapping} in Section~\ref{Chp:ref:mapping susceptibility}.
117 \member{w0} and \member{w1} define the weighting factors
118 $\omega^{(0)}$ and
119 $\omega^{(1)}$, respectively (see equation~\ref{EQU:REG:1}).
120 By default \member{w0}=\None and \member{w1}=1 are used.
121 \end{methoddesc}
122
123 \begin{methoddesc}[MagneticInversion]{setInitialGuess}{\optional{k=\None}}
124 sets an initial guess for the susceptibility anomaly. By default zero is used.
125 \end{methoddesc}
126
127 \subsection{Gravity and Magnetic Joint Inversion Driver}
128 For examples of usage please see Chapter~\ref{Chp:cook:joint inversion}.
129
130 \begin{classdesc}{JointGravityMagneticInversion}{}
131 Driver class to perform a joint inversion of Gravity (Bouguer) and magnetic anomaly data.
132 This class is a sub-class of \class{InversionDriver}.
133 The class uses the standard \class{Regularization} for two level set functions
134 with cross-gradient correlation, see Chapter~\ref{Chp:ref:regularization},
135 \class{DensityMapping} and \class{SusceptibilityMapping} mappings, see Section~\ref{Chp:ref:mapping}, the
136 gravity forward model \class{GravityModel}, see Section~\ref{sec:forward gravity}
137 and the linear
138 magnetic forward model \class{MagneticModel}, see Section~\ref{sec:forward magnetic}.
139 \end{classdesc}
140
141
142 \begin{methoddesc}[JointGravityMagneticInversion]{setup}{
143 domainbuilder
144 \optional{, rho0=\None}
145 \optional{, drho=\None}
146 \optional{, rho_z0=\None}
147 \optional{, rho_beta=\None}
148 \optional{, k0=\None}
149 \optional{, dk=\None}
150 \optional{, k_z0=\None}
151 \optional{, k_beta=\None}
152 \optional{, w0=\None}
153 \optional{, w1=\None}
154 \optional{, w_gc=\None}
155 }
156 sets up the inversion from an instance \member{domainbuilder} of a \class{DomainBuilder}, see Section~\ref{Chp:ref:domain builder}.
157 Gravity and magnetic data attached to the \member{domainbuilder} are considered in the inversion.
158 \member{rho0} defines a reference density anomaly (default is $0$),
159 \member{drho} defines a density anomaly (default is $2750 \frac{kg}{m^3}$),
160 \member{rho_z0} defines the depth weighting reference depth for density (default is \None), and
161 \member{rho_beta} defines the depth weighting exponent for density (default is \None),
162 see \class{DensityMapping} in Section~\ref{Chp:ref:mapping density}.
163 \member{k0} defines a reference susceptibility anomaly (default is $0$),
164 \member{dk} defines a susceptibility anomaly scale (default is $1$),
165 \member{k_z0} defines the depth weighting reference depth for susceptibility (default is \None), and
166 \member{k_beta} defines the depth weighting exponent for susceptibility (default is \None),
167 see \class{SusceptibilityMapping} in Section~\ref{Chp:ref:mapping susceptibility}.
168 \member{w0} and \member{w1} define the weighting factors
169 $\omega^{(0)}$ and
170 $\omega^{(1)}$, respectively (see Equation~\ref{EQU:REG:1}).
171 \member{w_gc} sets the weighting factor $\omega^{(c)}$ for the cross gradient term.
172 By default \member{w0}=\None, \member{w1}=1 and \member{w_gc}=1 are used.
173 \end{methoddesc}
174
175 \begin{methoddesc}[JointGravityMagneticInversion]{setInitialGuess}{\optional{rho=\None, } \optional{k=\None}}
176 sets initial guesses for density and susceptibility anomaly.
177 By default zero is used for both.
178 \end{methoddesc}
179

  ViewVC Help
Powered by ViewVC 1.1.26