Contents of /release/4.0/doc/user/changes.tex

Revision 5390 - (show annotations)
Tue Dec 16 06:50:01 2014 UTC (4 years, 4 months ago) by jduplessis
File MIME type: application/x-tex
File size: 12277 byte(s)
doco changes

 1 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 3 % Copyright (c) 2003-2014 by University of Queensland 4 5 % 6 % Primary Business: Queensland, Australia 7 % Licensed under the Open Software License version 3.0 8 9 % 10 % Development until 2012 by Earth Systems Science Computational Center (ESSCC) 11 % Development 2012-2013 by School of Earth Sciences 12 % Development from 2014 by Centre for Geoscience Computing (GeoComp) 13 % 14 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 15 16 \chapter{Changes from previous releases} 17 \label{app:changes} 18 19 \subsection*{3.4.2 to 4.0} 20 \begin{itemize} 21 \item New spectral element domain, \speckley 22 \item CUDA-based solvers and block-diagonal system matrices in \ripley 23 \item DC Resistivity forward modeling 24 \item New build options: 25 \begin{itemize} 26 \item 'domains': allows only the specified domains to be built 27 \item 'prelaunch', 'launcher', 'postlaunch': allows build-time 28 customization of escript launcher 29 \item 'cuda', 'nvcc', 'nvccflags', 'thrust_prefix': path and flags for 30 CUDA compiler and thrust headers 31 \end{itemize} 32 \item Gmsh reader now \MPI parallelised 33 \item cycle and timestamp support for saveSilo and saveVTK 34 \item PDEs using \ripley now have per-PDE assemblers to allow domains to have 35 multiple PDEs of different types without conflict 36 \item General documentation updates, both guides and code commenting 37 \item Test framework compatible with older versions of Python 38 \item Removed BASHisms from \escript launcher 39 \item Data objects now have hasNaN() and replaceNaN() methods 40 \item readBinaryGrid() now supports scaling and 64-bit floats in non-native 41 byte order 42 \item Now compiles with Cray compiler 43 \item Wave models corrected 44 \item Equality checks on Data objects now throw exceptions 45 \item General changes to help compilers with \OPENMP parallelisation 46 \item Intel-based \OPENMP flavours now have proper thread binding 47 \item \ripley dirac points no longer get lost in domains with enormous 48 elements 49 \item lots of improvements in inversion toolbox \downunder and symbolic 50 toolbox 51 \end{itemize} 52 53 \subsection*{3.4.1 to 3.4.2} 54 \begin{itemize} 55 \item Changes to SolverOptions: Most of this is under the hood at this point 56 but any code which accesses parameters from a SolverOptions object like this: 57 \begin{python} 58 variable.getSolverOptions().DIRECT 59 \end{python} 60 will need to be modified to: 61 \begin{python} 62 SolverOptions.DIRECT 63 \end{python} 64 65 \item Data objects can be created using smoothed random data. 66 \item Support for OSX10.9 67 \item Support for additional problem types in downunder. 68 \item More efficient ripley domains for large compute clusters 69 \item Added symbolic toolbox and associated documentation 70 \item Ripley now supports Dirac delta functions. 71 \item Improved reading of netCDF files 72 \item Paso is now in its own namespace 73 \item Examples have been updated to use Python 3 behaviour (with future imports for Python 2). 74 \item Ripley supports reading from gzipped files. 75 \item Fixed fault in documentation generation 76 \item Fixes to keep clang++ happy 77 \end{itemize} 78 79 80 \subsection*{3.4 to 3.4.1} 81 \begin{itemize} 82 \item Renamed design.Design to design.AbstractDesign as a more explicit/descriptive name, {\bf this will break any existing custom implementation} until changed to match. 83 84 \item Efficiency improvements in esys.downunder inversions. 85 \item Implemented more CF conventions for the netCDF datasource and added GDAL support. 86 \item Strongly coupled joint inversion added. 87 \item Preliminary work on seismic modelling. 88 \item Added support for more input data types in ER Mapper files. 89 \item Improved stability for long MPI runs. 90 \item Added timeStepFormat option to \texttt{esys.escript.saveESD}. 91 \item Document generation process more stable. 92 \item Added support for smoothed random 2D data. 93 \item Documentation updated. 94 \item Improved read support for grid-reading. 95 \item Removed last usages of C compiler. 96 \item Efficiency improvements in \texttt{esys.downunder}. 97 \item Removed support for VSL random (\texttt{boost::random} is sufficient). 98 \item Fixes related to compatibility with Intel compiler. 99 \item Simplified module structure. 100 \item Various code cleanup and bug fixes. 101 \end{itemize} 102 103 \subsection*{3.3.1 to 3.4} 104 \begin{itemize} 105 \item This release does not use the support bundles from $3.0$ so building from source will be required in more cases. 106 \item In Debian and Ubuntu, there are now two packages. One containing escript itself and the other containing documentation. 107 This fits better with the way Debian does things. 108 \item esys.weipa can now write Voxet files for data on ripley. 109 \item All support for OpenDX has been dropped. 110 \item Improved documentation HTML API documentation. 111 \item Improvements to inversion module. 112 \end{itemize} 113 114 115 \subsection*{3.3 to 3.3.1} 116 \begin{itemize} 117 \item Source packages for Debian and Ubuntu can now be made directly by dpkg-source from the source tree\footnote{For this to work, you will need to place a file called \texttt{svn_version} containing the revision number in the root of the source.}. 118 \item non-uniform 1D interpolation (see Section~\ref{sec:interpolation}). 119 \item The minimum version of python required for escript is now $2.6$. 120 \item saveVTK and saveDX (previously deprecated) have been removed from the main escript module. 121 Please see the \module{weipa} documentation for export functionality. 122 \item The \module{downunder} inversion module is included. 123 \begin{itemize} 124 \item The documentation includes an inversion cookbook to get you started. 125 \item Most operations are possible with \escript's existing dependencies but some \emph{may} require \module{pyproj} or \module{gdal} 126 but \escript will let you know if that happens. 127 \end{itemize} 128 129 \end{itemize} 130 131 132 \subsection*{3.2.1 to 3.3} 133 \begin{itemize} 134 \item Experimental support for \pythonthree. 135 \item Parameter order for the table interpolation methods has changed to be consistent. 136 Please test your scripts if you use these functions. 137 \item setX on \finley and \dudley domains will now only accept coordinates from ContinuousFunction spaces. 138 This is to avoid some potentially nasty behaviour when using periodic boundary conditions. 139 You can still use setX, just make sure that you interpolate first. 140 \end{itemize} 141 142 143 \subsection*{3.1 to 3.2} 144 \begin{itemize} 145 \item The deprecated name for the launcher has been removed. To run scripts use 146 \emph{run-escript} not \emph{escript}. 147 \item \escript is no longer automatically imported by importing \finley. 148 You will need to import escript explicitly. (All of our example scripts do this anyway.) 149 \item An experimental version of the new Dudley domain is now available. 150 \item Various bug fixes and optimisations. 151 \item New algorithms for gmsh support. 152 \item Improvements to the AMG solver. AMG is the recommended solver for symmetric problems. 153 \item Fixed compilation issues using netcdf. 154 \item Redesigned configuration files to make it easier to compile from source 155 without finding the locations of all your libraries. 156 \item Faster rendering of documentation. 157 \item Documentation is now hyperlinked. 158 \item New data export module \weipa. The \texttt{saveVTK} functionality has 159 been moved into this module, and while calling \texttt{saveVTK} from the 160 \escript module still works it is discouraged and will be removed in a 161 future release. 162 \item New \texttt{esys.escript.DataManager} class for convenient checkpointing 163 and exporting of escript data. 164 \item \VisIt simulation interface for online data access and visualization. 165 \item Simpler interpolation and support for interpolation from 3D vectors. 166 \item HRZ lumping has been added and some clarification on how to use it. 167 \item Data objects populated with random'' values can be created. 168 \end{itemize} 169 170 \subsection*{3.0 to 3.1} 171 \begin{itemize} 172 \item The \emph{escript} launcher has been renamed to \emph{run-escript}. The 173 old name will still work in this version but will be removed in the future. 174 \item Lazy evaluation features have been improved and documented (see \Sec{sec:lazy}). 175 \item The \emph{escript} documentation now includes a new Cookbook which 176 demonstrates how to solve sample problems using escript. 177 \item Macro elements have been introduced. 178 \item The \var{saveDataCSV} method allows one or more \Data objects to be 179 exported in CSV format (see \Sec{sec:savedatacsv}). 180 \item \Data objects can be populated by interpolating from values in a table. 181 \item The new \var{getInfLocator} and \var{getSupLocator} functions in 182 \pdetools return Locators to a minimal/maximal point over the 183 data. 184 \item There is a new class to model fault systems (\var{esys.escript.faultsystems.FaultSystem}). 185 \item A beta version of an Algebraic Multigrid (AMG) solver is included. 186 \item Inverting square matrices larger than 3x3 is now permitted if escript is 187 compiled with Lapack support. 188 \item If escript is compiled with a modern compiler, then inf/sup/Lsup will now 189 report NaN, +/-inf as appropriate if those values appear in the data. 190 \item Data.setTags will take tag names as well as tag numbers. 191 \item The Scalar, Vector, Tensor, Tensor3, Tensor4 factory methods can now take 192 arrays/nested sequence like objects as their initial values. 193 \item escript.util.mkDir can now take a list of directories to create. 194 \item Behind the scenes, \PYTHON docstrings have been rewritten from epydoc to 195 restructured text. 196 \item Various other bug fixes and performance tweaks. 197 \end{itemize} 198 199 \subsection*{2.0 to 3.0} 200 \begin{itemize} 201 \item The major change here was replacing \module{numarray} with \numpy. 202 For general instructions on converting scripts to use numpy see \url{http://www.stsci.edu/resources/software_hardware/numarray/numarray2numpy.pdf}. 203 The specific changes to \escript are: 204 \begin{itemize} 205 \item getValueOfDataPoint() which returned a \module{numarray}.array has been 206 replaced by getTupleForDataPoint() which returns a \PYTHON tuple 207 containing the components of the data point. In the case of matrices or 208 higher ranked data, the tuples will be nested. 209 Use \numpy.array(data.getTupleForDataPoint()) if a \numpyNDA object is 210 required. 211 \item getValueOfGlobalDataPoint() has similarly been replaced by 212 getTupleForGlobalDataPoint(). 213 \item \code{integrate(data)} now returns a \numpyNDA instead of a 214 \module{numarray}.array. 215 \end{itemize} 216 Any python methods which previously accepted \module{numarray} objects now 217 accept \numpy objects instead. 218 219 \item The way to define solver options for \LinearPDE objects has changed. 220 There is now a \SolverOptions object attached to the \LinearPDE 221 object which handles the options of solvers used to solve the PDE. 222 The following changes apply: 223 \begin{itemize} 224 \item The \method{setTolerance} and \method{setAbsoluteTolerance} methods 225 have been removed. Instead use \method{setTolerance} and 226 \method{setAbsoluteTolerance} on the \SolverOptions object. For example: 227 \method{getSolverOptions().setTolerance(\ldots)} 228 \item The \method{setSolverPackage} and \method{setSolverMethod} methods have 229 been removed. Instead use the methods \method{setPackage}, 230 \method{setSolverMethod} and \method{setPreconditioner}. For example: 231 getSolverOptions().setPackage(\ldots). 232 \item The static class variables defining packages, solvers and 233 preconditioners have been removed and are now accessed via the 234 corresponding static class variables in \SolverOptions. 235 For instance use \method{SolverOptions.PCG} instead of 236 \method{LinearPDE.PCG} to select the preconditioned conjugate gradient 237 method. 238 \item The \method{getSolution} now takes no argument. Use the corresponding 239 methods of the \SolverOptions object returned by 240 \method{getSolverOptions()} to set values,\\ e.g. use 241 \method{getSolverOptions().setVerbosityOn()} instead of argument 242 \code{verbose=True} and \method{getSolverOptions().setIterMax(1000)} 243 instead of argument \code{iter_max=1000}. 244 \end{itemize} 245 \end{itemize} 246