[cig-commits] r21237 - seismo/3D/ADJOINT_TOMO/ADJOINT_TOMOGRAPHY_TOOLKIT

dkomati1 at geodynamics.org dkomati1 at geodynamics.org
Wed Jan 16 08:59:14 PST 2013


Author: dkomati1
Date: 2013-01-16 08:59:14 -0800 (Wed, 16 Jan 2013)
New Revision: 21237

Added:
   seismo/3D/ADJOINT_TOMO/ADJOINT_TOMOGRAPHY_TOOLKIT/compile_Howto_manual.sh
Modified:
   seismo/3D/ADJOINT_TOMO/ADJOINT_TOMOGRAPHY_TOOLKIT/HowtoUseToolkit.tex
Log:
more feedback from Dimitri


Modified: seismo/3D/ADJOINT_TOMO/ADJOINT_TOMOGRAPHY_TOOLKIT/HowtoUseToolkit.tex
===================================================================
--- seismo/3D/ADJOINT_TOMO/ADJOINT_TOMOGRAPHY_TOOLKIT/HowtoUseToolkit.tex	2013-01-16 16:43:30 UTC (rev 21236)
+++ seismo/3D/ADJOINT_TOMO/ADJOINT_TOMOGRAPHY_TOOLKIT/HowtoUseToolkit.tex	2013-01-16 16:59:14 UTC (rev 21237)
@@ -77,12 +77,20 @@
 \item X01\_SRC\_SUM\_KERNELS, sum event kernels
 \item X02\_SRC\_PRECOND\_KERNELS, precondition summed kernels
 \item X03\_SRC\_SMOOTH\_KERNELS, smooth kernels
-\item X04\_SRC\_DIRECTION\_CG, calculate search directions using conjugate gradient method
-\item X04\_SRC\_DIRECTION\_SD, calculate search directions using steepest descent method
-\item X04\_SRC\_DIRECTION\_LBFGS, calculate search directions using L-BFGS method
+\item X04a\_SRC\_DIRECTION\_CG, calculate search directions using conjugate gradient method; DK DK comment from Dimitri Komatitsch: why not use BiCGStab here
+instead of a classical CG; usually it is much better than simple CG; however it seems that Yang Luo tried BiCGStab already (?) and found it less efficient than L-BFGS anyway
+\item X04b\_SRC\_DIRECTION\_SD, calculate search directions using steepest descent method
+\item X04c\_SRC\_DIRECTION\_LBFGS, calculate search directions using L-BFGS method
 \item X05\_SRC\_UPDATE\_MODELS, update model parameters based on search directions
 \end{enumerate}
 
+In Step 4 above, one should either 04a, 04b or 04c; in most cases, the best choice is 04c, which approximates the Hessian and thus 
+converges much faster.
+
+From Wikipedia http://en.wikipedia.org/wiki/Limited-memory\_BFGS, here is a brief description of L-BFGS:
+
+The ''limited-memory BFGS'' (''L-BFGS'' or ''LM-BFGS'') algorithm is a member of the broad family of quasi-Newton optimization methods that uses a limited memory variation of the Broyden-Fletcher-Goldfarb-Shanno (BFGS) update to approximate the inverse Hessian matrix (denoted by $H_k$). Unlike the original BFGS method which stores a dense $ n \times n $ approximation, L-BFGS stores only a few vectors that represent the approximation implicitly. Due to its moderate memory requirement, the L-BFGS method is particularly well suited for optimization problems with a large number of variables.  L-BFGS never explicitly forms or stores $H_k$.  Instead, it maintains a history of the past $m\,\!$ updates of the position  $x\,\!$ and gradient  $\nabla f(x)$, where generally the history  $m\,\!$ can be short, often less than 10.  These updates are used to implicitly do operations requiring the $H_k$-vector product.  While strictly, a straightforward BFGS implementation at the  $i\,\!$-th iteration would represent the inverse Hessian approximation as informed by all updates on  $0 \ldots i-1$, L-BFGS does quite well using updates from only the most recent iterations  $i-m \ldots i-1$.
+
 \subsection{MODEL\_VISUALIZATION}
 This directory is used to extract xyz files from your models or gradients, and plot them based on GMT.
 \begin{enumerate}

Added: seismo/3D/ADJOINT_TOMO/ADJOINT_TOMOGRAPHY_TOOLKIT/compile_Howto_manual.sh
===================================================================
--- seismo/3D/ADJOINT_TOMO/ADJOINT_TOMOGRAPHY_TOOLKIT/compile_Howto_manual.sh	                        (rev 0)
+++ seismo/3D/ADJOINT_TOMO/ADJOINT_TOMOGRAPHY_TOOLKIT/compile_Howto_manual.sh	2013-01-16 16:59:14 UTC (rev 21237)
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+/bin/rm -rf *.dvi >  /dev/null
+/bin/rm -rf *.log >  /dev/null
+/bin/rm -rf *.out >  /dev/null
+/bin/rm -rf *.aux >  /dev/null
+/bin/rm -rf *.toc >  /dev/null
+/bin/rm -rf *.blg >  /dev/null
+/bin/rm -rf *.bbl >  /dev/null
+/bin/rm -rf *.lof >  /dev/null
+/bin/rm -rf *.lot >  /dev/null
+/bin/rm -rf *.plt >  /dev/null
+/bin/rm -rf *.fff >  /dev/null
+/bin/rm -rf *.ttt >  /dev/null
+/bin/rm -rf *.tit >  /dev/null
+/bin/rm -rf *.spl >  /dev/null
+
+	pdflatex HowtoUseToolkit
+	bibtex HowtoUseToolkit
+	pdflatex HowtoUseToolkit
+	pdflatex HowtoUseToolkit
+	pdflatex HowtoUseToolkit
+	pdflatex HowtoUseToolkit
+
+/bin/rm -rf *.dvi >  /dev/null
+/bin/rm -rf *.log >  /dev/null
+/bin/rm -rf *.out >  /dev/null
+/bin/rm -rf *.aux >  /dev/null
+/bin/rm -rf *.toc >  /dev/null
+/bin/rm -rf *.blg >  /dev/null
+/bin/rm -rf *.bbl >  /dev/null
+/bin/rm -rf *.lof >  /dev/null
+/bin/rm -rf *.lot >  /dev/null
+/bin/rm -rf *.plt >  /dev/null
+/bin/rm -rf *.fff >  /dev/null
+/bin/rm -rf *.ttt >  /dev/null
+/bin/rm -rf *.tit >  /dev/null
+/bin/rm -rf *.spl >  /dev/null
+


Property changes on: seismo/3D/ADJOINT_TOMO/ADJOINT_TOMOGRAPHY_TOOLKIT/compile_Howto_manual.sh
___________________________________________________________________
Name: svn:executable
   + *



More information about the CIG-COMMITS mailing list