/[escript]/release/5.2/doc/user/changes.tex
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6694 - (show annotations)
Mon Jun 25 03:26:25 2018 UTC (7 months, 3 weeks ago) by jfenwick
File MIME type: application/x-tex
File size: 15752 byte(s)
Changelog

1
2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3 % Copyright (c) 2003-2018 by The University of Queensland
4 % http://www.uq.edu.au
5 %
6 % Primary Business: Queensland, Australia
7 % Licensed under the Apache License, version 2.0
8 % http://www.apache.org/licenses/LICENSE-2.0
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*{5.2}
20 \begin{itemize}
21 \item Documentation improvements
22 \item Added makeTagMap function
23 \item Fixes to \texttt{tensor_transposed_mult}
24 \item Additional tests
25 \end{itemize}
26
27 \subsection*{5.1}
28 \begin{itemize}
29 \item Improvements to maths using complex values.
30 Note: Use the \texttt{promote()} method on Data objects (added in 5.0) to convert them to complex.
31 This does not change the value itself, (eg $7 \rightarrow 7+0j$) but matters for operations like \emph{sqrt} which behave differently with complex inputs.
32 \item Added \texttt{phase} operation to return the angular part/phase/arg of values.
33 \item Improved inversion.
34 \item Corrections to $\cdot\_transpose\_product$ operations.
35 \item Improved ``integration'' testing.
36 \item NetCDF support (if enabled), can now be built with support for netcdf-4 formatted files.\\
37 See \texttt{scons/templates/README_FIRST} for the options.
38 \item Support for lazy expressions with complex values.
39 \item Solving PDEs with complex coefficients requires Trilinos support.
40 Since escript requires features which are not
41 compiled in by default, please consult the install guide if you wish to make use of
42 this feature.
43 \item Note that in the $4.2.0.1$ release, the license for the escript source code was changed to ``Apache2''.
44 This should be less restrictive than the previous license.
45 \end{itemize}
46
47 \subsection*{5.0}
48 \begin{itemize}
49 \item Minimum Python version is now 2.7.
50 \item Remaining code switched from C to C++
51 \item Compilers are now required to support c++11 at minimum.
52 \item Some support for storing and manipulating complex values in Data objects.
53 \item Some solver configurations can solve PDEs with complex values.
54 \item Experimental support for Trilinos solvers and preconditioners.
55 \item \ripley by default no longer adjusts domain lengths when number of MPI ranks is unsuitable. A new function controls this behaviour.
56 \item Some C++ exceptions are now translated to equivalent Python exceptions (e.g. ValueError).
57 \item New \escript feature test function to interrogate build features at runtime.
58 \item Support for 'long' indices for very large local domains.
59 \item \escript is now more modular. New options can be used to select what to build.
60 \end{itemize}
61
62 \subsection*{4.0 to 4.1}
63 \begin{itemize}
64 \item Added multi-resolution \ripley domains
65 \item The gmshReader now supports reading with multiple processes
66 \item Using the help() function on some domains is now more informative
67 \item User guide updated with information on use of Dirac points
68 \item Minimizer misfit now available via the callback function
69 \item Specifying use of a direct solver without a direct solver being available now raises an exception rather than silently default to a non-direct solver
70 \item Synthetic seismic examples for various wave types now included in the examples distributed
71 \item Reading NetCDF files when the default value in the file is nan no longer causes issues
72 \item Various documentation updates and fixes in user guide, install guide, and code documentation
73 \item Various compatibility fixes with Python3
74 \item HTI and VTIWave models now support setting a q value for custom boundary conditions
75 \item Using a MPI-enabled gmsh with an MPI build of \escript should now reliably wait for gmsh to end
76 \item Added an example for voxet reading with \ripley
77 \end{itemize}
78
79 \subsection*{3.4.2 to 4.0}
80 \begin{itemize}
81 \item New spectral element domain, \speckley
82 \item CUDA-based solvers and block-diagonal system matrices in \ripley
83 \item DC Resistivity forward modeling
84 \item New build options:
85 \begin{itemize}
86 \item 'domains': allows only the specified domains to be built
87 \item 'prelaunch', 'launcher', 'postlaunch': allows build-time
88 customization of escript launcher
89 \item 'cuda', 'nvcc', 'nvccflags', 'thrust_prefix': path and flags for
90 CUDA compiler and thrust headers
91 \end{itemize}
92 \item Gmsh reader now \MPI parallelised
93 \item cycle and timestamp support for saveSilo and saveVTK
94 \item PDEs using \ripley now have per-PDE assemblers to allow domains to have
95 multiple PDEs of different types without conflict
96 \item General documentation updates, both guides and code commenting
97 \item Test framework compatible with older versions of Python
98 \item Removed BASHisms from \escript launcher
99 \item Data objects now have hasNaN() and replaceNaN() methods
100 \item readBinaryGrid() now supports scaling and 64-bit floats in non-native
101 byte order
102 \item Now compiles with Cray compiler
103 \item Wave models corrected
104 \item Equality checks on Data objects now throw exceptions
105 \item General changes to help compilers with \OPENMP parallelisation
106 \item Intel-based \OPENMP flavours now have proper thread binding
107 \item \ripley dirac points no longer get lost in domains with enormous
108 elements
109 \item lots of improvements in inversion toolbox \downunder and symbolic
110 toolbox
111 \end{itemize}
112
113 \subsection*{3.4.1 to 3.4.2}
114 \begin{itemize}
115 \item Changes to SolverOptions: Most of this is under the hood at this point
116 but any code which accesses parameters from a SolverOptions object like this:
117 \begin{python}
118 variable.getSolverOptions().DIRECT
119 \end{python}
120 will need to be modified to:
121 \begin{python}
122 SolverOptions.DIRECT
123 \end{python}
124
125 \item Data objects can be created using smoothed random data.
126 \item Support for OSX10.9
127 \item Support for additional problem types in downunder.
128 \item More efficient ripley domains for large compute clusters
129 \item Added symbolic toolbox and associated documentation
130 \item Ripley now supports Dirac delta functions.
131 \item Improved reading of netCDF files
132 \item Paso is now in its own namespace
133 \item Examples have been updated to use Python 3 behaviour (with future imports for Python 2).
134 \item Ripley supports reading from gzipped files.
135 \item Fixed fault in documentation generation
136 \item Fixes to keep clang++ happy
137 \end{itemize}
138
139
140 \subsection*{3.4 to 3.4.1}
141 \begin{itemize}
142 \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.
143
144 \item Efficiency improvements in esys.downunder inversions.
145 \item Implemented more CF conventions for the netCDF datasource and added GDAL support.
146 \item Strongly coupled joint inversion added.
147 \item Preliminary work on seismic modelling.
148 \item Added support for more input data types in ER Mapper files.
149 \item Improved stability for long MPI runs.
150 \item Added timeStepFormat option to \texttt{esys.escript.saveESD}.
151 \item Document generation process more stable.
152 \item Added support for smoothed random 2D data.
153 \item Documentation updated.
154 \item Improved read support for grid-reading.
155 \item Removed last usages of C compiler.
156 \item Efficiency improvements in \texttt{esys.downunder}.
157 \item Removed support for VSL random (\texttt{boost::random} is sufficient).
158 \item Fixes related to compatibility with Intel compiler.
159 \item Simplified module structure.
160 \item Various code cleanup and bug fixes.
161 \end{itemize}
162
163 \subsection*{3.3.1 to 3.4}
164 \begin{itemize}
165 \item This release does not use the support bundles from $3.0$ so building from source will be required in more cases.
166 \item In Debian and Ubuntu, there are now two packages. One containing escript itself and the other containing documentation.
167 This fits better with the way Debian does things.
168 \item esys.weipa can now write Voxet files for data on ripley.
169 \item All support for OpenDX has been dropped.
170 \item Improved documentation HTML API documentation.
171 \item Improvements to inversion module.
172 \end{itemize}
173
174
175 \subsection*{3.3 to 3.3.1}
176 \begin{itemize}
177 \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.}.
178 \item non-uniform 1D interpolation (see Section~\ref{sec:interpolation}).
179 \item The minimum version of python required for escript is now $2.6$.
180 \item saveVTK and saveDX (previously deprecated) have been removed from the main escript module.
181 Please see the \module{weipa} documentation for export functionality.
182 \item The \module{downunder} inversion module is included.
183 \begin{itemize}
184 \item The documentation includes an inversion cookbook to get you started.
185 \item Most operations are possible with \escript's existing dependencies but some \emph{may} require \module{pyproj} or \module{gdal}
186 but \escript will let you know if that happens.
187 \end{itemize}
188
189 \end{itemize}
190
191
192 \subsection*{3.2.1 to 3.3}
193 \begin{itemize}
194 \item Experimental support for \pythonthree.
195 \item Parameter order for the table interpolation methods has changed to be consistent.
196 Please test your scripts if you use these functions.
197 \item setX on \finley and \dudley domains will now only accept coordinates from ContinuousFunction spaces.
198 This is to avoid some potentially nasty behaviour when using periodic boundary conditions.
199 You can still use setX, just make sure that you interpolate first.
200 \end{itemize}
201
202
203 \subsection*{3.1 to 3.2}
204 \begin{itemize}
205 \item The deprecated name for the launcher has been removed. To run scripts use
206 \emph{run-escript} not \emph{escript}.
207 \item \escript is no longer automatically imported by importing \finley.
208 You will need to import escript explicitly. (All of our example scripts do this anyway.)
209 \item An experimental version of the new Dudley domain is now available.
210 \item Various bug fixes and optimisations.
211 \item New algorithms for gmsh support.
212 \item Improvements to the AMG solver. AMG is the recommended solver for symmetric problems.
213 \item Fixed compilation issues using netcdf.
214 \item Redesigned configuration files to make it easier to compile from source
215 without finding the locations of all your libraries.
216 \item Faster rendering of documentation.
217 \item Documentation is now hyperlinked.
218 \item New data export module \weipa. The \texttt{saveVTK} functionality has
219 been moved into this module, and while calling \texttt{saveVTK} from the
220 \escript module still works it is discouraged and will be removed in a
221 future release.
222 \item New \texttt{esys.escript.DataManager} class for convenient checkpointing
223 and exporting of escript data.
224 \item \VisIt simulation interface for online data access and visualization.
225 \item Simpler interpolation and support for interpolation from 3D vectors.
226 \item HRZ lumping has been added and some clarification on how to use it.
227 \item Data objects populated with ``random'' values can be created.
228 \end{itemize}
229
230 \subsection*{3.0 to 3.1}
231 \begin{itemize}
232 \item The \emph{escript} launcher has been renamed to \emph{run-escript}. The
233 old name will still work in this version but will be removed in the future.
234 \item Lazy evaluation features have been improved and documented (see \Sec{sec:lazy}).
235 \item The \emph{escript} documentation now includes a new Cookbook which
236 demonstrates how to solve sample problems using escript.
237 \item Macro elements have been introduced.
238 \item The \var{saveDataCSV} method allows one or more \Data objects to be
239 exported in CSV format (see \Sec{sec:savedatacsv}).
240 \item \Data objects can be populated by interpolating from values in a table.
241 \item The new \var{getInfLocator} and \var{getSupLocator} functions in
242 \pdetools return Locators to a minimal/maximal point over the
243 data.
244 \item There is a new class to model fault systems (\var{esys.escript.faultsystems.FaultSystem}).
245 \item A beta version of an Algebraic Multigrid (AMG) solver is included.
246 \item Inverting square matrices larger than 3x3 is now permitted if escript is
247 compiled with Lapack support.
248 \item If escript is compiled with a modern compiler, then inf/sup/Lsup will now
249 report NaN, +/-inf as appropriate if those values appear in the data.
250 \item Data.setTags will take tag names as well as tag numbers.
251 \item The Scalar, Vector, Tensor, Tensor3, Tensor4 factory methods can now take
252 arrays/nested sequence like objects as their initial values.
253 \item escript.util.mkDir can now take a list of directories to create.
254 \item Behind the scenes, \PYTHON docstrings have been rewritten from epydoc to
255 restructured text.
256 \item Various other bug fixes and performance tweaks.
257 \end{itemize}
258
259 \subsection*{2.0 to 3.0}
260 \begin{itemize}
261 \item The major change here was replacing \module{numarray} with \numpy.
262 %% I've removed the link since it is no longer valid
263 % For general instructions on converting scripts to use numpy see\\
264 % \url{http://www.stsci.edu/resources/software_hardware/numarray/numarray2numpy.pdf}.\\
265 The specific changes to \escript are:
266 \begin{itemize}
267 \item getValueOfDataPoint() which returned a \module{numarray}.array has been
268 replaced by getTupleForDataPoint() which returns a \PYTHON tuple
269 containing the components of the data point. In the case of matrices or
270 higher ranked data, the tuples will be nested.
271 Use \numpy.array(data.getTupleForDataPoint()) if a \numpyNDA object is
272 required.
273 \item getValueOfGlobalDataPoint() has similarly been replaced by
274 getTupleForGlobalDataPoint().
275 \item \code{integrate(data)} now returns a \numpyNDA instead of a
276 \module{numarray}.array.
277 \end{itemize}
278 Any python methods which previously accepted \module{numarray} objects now
279 accept \numpy objects instead.
280
281 \item The way to define solver options for \LinearPDE objects has changed.
282 There is now a \SolverOptions object attached to the \LinearPDE
283 object which handles the options of solvers used to solve the PDE.
284 The following changes apply:
285 \begin{itemize}
286 \item The \method{setTolerance} and \method{setAbsoluteTolerance} methods
287 have been removed. Instead use \method{setTolerance} and
288 \method{setAbsoluteTolerance} on the \SolverOptions object. For example:
289 \method{getSolverOptions().setTolerance(\ldots)}
290 \item The \method{setSolverPackage} and \method{setSolverMethod} methods have
291 been removed. Instead use the methods \method{setPackage},
292 \method{setSolverMethod} and \method{setPreconditioner}. For example:
293 getSolverOptions().setPackage(\ldots).
294 \item The static class variables defining packages, solvers and
295 preconditioners have been removed and are now accessed via the
296 corresponding static class variables in \SolverOptions.
297 For instance use \method{SolverOptions.PCG} instead of
298 \method{LinearPDE.PCG} to select the preconditioned conjugate gradient
299 method.
300 \item The \method{getSolution} now takes no argument. Use the corresponding
301 methods of the\\ \SolverOptions object returned by
302 \method{getSolverOptions()} to set values,\\ e.g. use
303 \method{getSolverOptions().setVerbosityOn()} instead of argument
304 \code{verbose=True} and \method{getSolverOptions().setIterMax(1000)}
305 instead of argument \code{iter_max=1000}.
306 \end{itemize}
307 \end{itemize}
308

  ViewVC Help
Powered by ViewVC 1.1.26