~njansson/dolfin/hpc

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
 - Add function normalize()
 - Integration with VMTK for reading DOLFIN XML meshes produced by VMTK
 - Extend mesh XML format to handle boundary indicators
 - Add support for attaching arbitrarily named data to meshes
 - Add support for dynamically choosing the linear algebra backend
 - Add Epetra/Trilinos linear solvers
 - Add setrow() to matrix interface
 - Add new solver SingularSolver for solving singular (pressure) systems
 - Add MeshSize::min(), max() for easy computation of smallest/largest mesh size
 - LinearSolver now handles all backends and linear solvers
 - Add access to normal in Function, useful for inflow boundary conditions
 - Remove GMRES and LU classes, use solve() instead
 - Improve solve() function, now handles both LU and Krylov + preconditioners
 - Add ALE mesh interpolation (moving mesh according to new boundary coordinates)
0.7.3 [2008-04-30]
 - Add support for Epetra/Trilinos
 - Bug fix for order of values in interpolate_vertex_values, now according to UFC
 - Boundary meshes are now always oriented with respect to outward facet normals
 - Improved linear algebra, both in C++ and Python
 - Make periodic boundary conditions work in Python
 - Fix saving of user-defined functions
 - Improve plotting
 - Simple computation of various norms of functions from Python
 - Evaluation of Functions at arbitrary points in a mesh
 - Fix bug in assembling over exterior facets (subdomains were ignored)
 - Make progress bar less annoying
 - New scons-based build system replaces autotools
 - Fix bug when choosing iterative solver from Python
0.7.2 [2008-02-18]
 - Improve sparsity pattern generator efficiency
 - Dimension-independent sparsity pattern generator
 - Add support for setting strong boundary values for DG elements
 - Add option setting boundary conditions based on geometrical search
 - Check UMFPACK return argument for warnings/errors
 - Simplify setting simple Dirichlet boundary conditions
 - Much improved integration with FFC in PyDOLFIN
 - Caching of forms by JIT compiler now works
 - Updates for UFC 1.1
 - Catch exceptions in PyDOLFIN
 - Work on linear algebra interfaces GenericTensor/Matrix/Vector
 - Add linear algebra factory (backend) interface
 - Add support for 1D meshes
 - Make Assembler independent of linear algebra backend
 - Add manager for handling sub systems (PETSc and MPI)
 - Add parallel broadcast of Mesh and MeshFunction
 - Add experimental support for parallel assembly
 - Use PETSc MPI matrices when running in parallel
 - Add predefined functions FacetNormal and AvgMeshSize
 - Add left/right/crisscross options for UnitSquare
 - Add more Python demos
 - Add support for Exodus II format in dolfin-convert
 - Autogenerate docstrings for PyDOLFIN
 - Various small bug fixes and improvements
0.7.1 [2007-08-31]
 - Integrate FFC form language into PyDOLFIN
 - Just-in-time (JIT) compilation of variational forms
 - Conversion from from Diffpack grid format to DOLFIN XML
 - Name change: BoundaryCondition --> DirichletBC
 - Add support for periodic boundary conditions: class PeriodicBC
 - Redesign default linear algebra interface (Matrix, Vector, KrylovSolver, etc)
 - Add function to return Vector associated with a DiscreteFunction
0.7.0-1 [2007-06-22]
 - Recompile all forms with latest FFC release
 - Remove typedefs SparseMatrix and SparseVector
 - Fix includes in LinearPDE
 - Rename DofMaps -> DofMapSet
0.7.0 [2007-06-20]
 - Move to UFC interface for code generation
 - Major rewrite, restructure, cleanup
 - Add support for Brezzi-Douglas-Marini (BDM) elements
 - Add support for Raviart-Thomas (RT) elements
 - Add support for Discontinuous Galerkin (DG) methods
 - Add support for mesh partitioning (through SCOTCH)
 - Handle both UMFPACK and UFSPARSE
 - Local mesh refinement
 - Mesh smoothing
 - Built-in plotting (through Viper)
 - Cleanup log system
 - Numerous fixes for mesh, in particular MeshFunction
 - Much improved Python bindings for mesh
 - Fix Python interface for vertex and cell maps in boundary computation
0.6.4 [2006-12-01]
 - Switch from Python Numeric to Python NumPy
 - Improved mesh Python bindings
 - Add input/output support for MeshFunction
 - Change Mesh::vertices() --> Mesh::coordinates()
 - Fix bug in output of mesh to MATLAB format
 - Add plasticty module (experimental)
 - Fix configure test for Python dev (patch from Åsmund Ødegård)
 - Add mesh benchmark
 - Fix memory leak in mesh (data not deleted correctly in MeshTopology)
 - Fix detection of curses libraries
 - Remove Tecplot output format
0.6.3 [2006-10-27]
 - Move to new mesh library
 - Remove dolfin-config and move to pkg-config
 - Remove unused classes PArray, PList, Table, Tensor	
 - Visualization of 2D solutions in OpenDX is now supported (3D supported before)
 - Add support for evaluation of functionals
 - Fix bug in Vector::sum() for uBlas vectors
0.6.2-1 [2006-09-06]
 - Fix compilation error when using --enable-petsc (dolfin::uBlasVector::PETScVector undefined)
0.6.2 [2006-09-05]
 - Finish chapter in manual on linear algebra
 - Enable PyDOLFIN by default, use --disable-pydolfin to disable
 - Disable PETSc by default, use --enable-petsc to enable
 - Modify ODE solver interface for u0() and f()
 - Add class ConvectionMatrix
 - Readd classes LoadVector, MassMatrix, StiffnessMatrix
 - Add matrix factory for simple creation of standard finite element matrices
 - Collect static solvers in LU and GMRES
 - Bug fixes for Python interface PyDOLFIN
 - Enable use of direct solver for ODE solver (experimental)
 - Remove demo bistable
 - Restructure and cleanup linear algebra
 - Use UMFPACK for LU solver with uBlas matrix types
 - Add templated wrapper class for different uBlas matrix types
 - Add ILU preconditioning for uBlas matrices
 - Add Krylov solver for uBlas sparse matrices (GMRES and BICGSTAB)
 - Add first version of new mesh library (NewMesh, experimental)
 - Add Parametrized::readParameters() to trigger reading of values on set()
 - Remove output of zeros in Octave matrix file format
 - Use uBlas-based vector for Vector if PETSc disabled
 - Add wrappers for uBlas compressed_matrix class
 - Compute eigenvalues using SLEPc (an extension of PETSc)
 - Clean up assembly and linear algebra
 - Add function to solve Ax = b for dense matrices and dense vectors
 - Make it possible to compile without PETSc (--disable-petsc)
 - Much improved ODE solvers
 - Complete multi-adaptive benchmarks reaction and wave
 - Assemble boundary integrals
 - FEM class cleaned up.
 - Fix multi-adaptive benchmark problem reaction
 - Small fixes for Intel C++ compiler version 9.1
 - Test for Intel C++ compiler and configure appropriately
 - Add new classes DenseMatrix and DenseVector (wrappers for ublas)
 - Fix bug in conversion from Gmsh format
0.6.1 [2006-03-28]
 - Regenerate build system in makedist script
 - Update for new FFC syntax: BasisFunction --> TestFunction, TrialFunction
 - Fixes for conversion script dolfin-convert
 - Initial cleanups and fixes for ODE solvers
 - Numerous small fixes to improve portability
 - Remove dolfin:: qualifier on output << in Parameter.h
 - Don't use anonymous classes in demos, gives errors with some compilers
 - Remove KrylovSolver::solver()
 - Fix bug in convection-diffusion demo (boundary condition for pressure), use direct solver
 - LinearPDE and NewonSolver use umfpack LU solver by default (if available) when doing direct solve
 - Set PETSc matrix type through Matrix constructor 
 - Allow linear solver and preconditioner type to be passed to NewtonSolver 
 - Fix bug in Stokes demos (wrong boundary conditions)
 - Cleanup Krylov solver
 - Remove KrylovSolver::setPreconditioner() etc. and move to constructors
 - Remove KrylovSolver::setRtol() etc. and replace with parameters
 - Fix remaining name changes: noFoo() --> numFoo()
 - Add Cahn-Hilliard equation demo
 - NewtonSolver option to use residual or incremental convergence criterion
 - Add separate function to nls to test for convergence of Newton iterations
 - Fix bug in dolfin-config (wrong version number)
0.6.0 [2006-03-01]
 - Fix bug in XML output format (writing multiple objects)
 - Fix bug in XML matrix output format (handle zero rows)
 - Add new nonlinear PDE demo 
 - Restructure PDE class to use envelope-letter design
 - Add precompiled finite elements for q <= 5
 - Add FiniteElementSpec and factor function for FiniteElement
 - Add input/output of Function to DOLFIN XML
 - Name change: dof --> node
 - Name change: noFoo() --> numFoo()
 - Add conversion from gmsh format in dolfin-convert script
 - Updates for PETSc 2.3.1
 - Add new type of Function (constant)
 - Simplify use of Function class
 - Add new demo Stokes + convection-diffusion
 - Add new demo Stokes (equal-order stabilized)
 - Add new demo Stokes (Taylor-Hood)
 - Add new parameter for KrylovSolvers: "monitor convergence"
 - Add conversion script dolfin-convert for various mesh formats
 - Add new demo elasticity
 - Move poisson demo to src/demo/pde/poisson
 - Move to Mercurial (hg) from CVS
 - Use libtool to build libraries (including shared)
0.5.12 [2006-01-12]
 - Make Stokes solver dimension independent (2D/3D)
 - Make Poisson solver dimension independent (2D/3D)
 - Fix sparse matrix output format for MATLAB
 - Modify demo problem for Stokes, add exact solution and compute error
 - Change interface for boundary conditions: operator() --> eval()
 - Add two benchmark problems for the Navier-Stokes solver 	
 - Add support for 2D/3D selection in Navier-Stokes solver 
 - Move tic()/toc() to timing.h
 - Navier-Stokes solver back online
 - Make Solver a subclass of Parametrized
 - Add support for localization of parameters
 - Redesign of parameter system
0.5.11 [2005-12-15]
 - Add script monitor for monitoring memory usage
 - Remove meminfo.h (not portable)
 - Remove dependence on parameter system in log system
 - Don't use drand48() (not portable)
 - Don't use strcasecmp() (not portable)
 - Remove sysinfo.h and class System (not portable)
 - Don't include <sys/utsname.h> (not portable)
 - Change ::show() --> ::disp() everywhere
 - Clean out old quadrature classes on triangles and tetrahedra
 - Clean out old sparse matrix code
 - Update chapter on Functions in manual
 - Use std::map to store parameters
 - Implement class KrylovSolver 
 - Name change: Node --> Vertex
 - Add nonlinear solver demos
 - Add support for picking sub functions and components of functions
 - Update interface for FiniteElement for latest FFC version
 - Improve and restructure implementation of the Function class
 - Dynamically adjust safety factor during integration
 - Improve output Matrix::disp()
 - Check residual at end of time step, reject step if too large
 - Implement Vector::sum()
 - Implement nonlinear solver
 - New option for ODE solver: "save final solution" --> solution.data
 - New ODE test problem: reaction
 - Fixes for automake 1.9 (nobase_include_HEADERS)
 - Reorganize build system, remove fake install and require make install
 - Add checks for non-standard PETSc component HYPRE in NSE solver
 - Make GMRES solver return the number of iterations
 - Add installation script for Python interface
 - Add Matrix Market format (Haiko Etzel)
 - Automatically reinitialize GMRES solver when system size changes
 - Implement cout << for class Vector
0.5.10 [2005-10-11]
 - Modify ODE solver interface: add T to constructor
 - Fix compilation on AMD 64 bit systems (add -fPIC)
 - Add new BLAS mode for form evaluation
 - Change enum types in File to lowercase
 - Change default file type for .m to Octave
 - Add experimental Python interface PyDOLFIN
 - Fix compilation for gcc 4.0
0.5.9 [2005-09-23]
 - Add Stokes module
 - Support for arbitrary mixed elements through FFC
 - VTK output interface now handles time-dependent functions automatically
 - Fix cout for empty matrix
 - Change dolfin_start() --> dolfin_end()
 - Add chapters to manual: about, log system, parameters, reference elements,
   installation, contributing, license
 - Use new template fenicsmanual.cls for manual
 - Add compiler flag -U__STRICT_ANSI__ when compiling under Cygwin 
 - Add class EigenvalueSolver
0.5.8 [2005-07-05]
 - Add new output format Paraview/VTK (Garth N. Wells)
 - Update Tecplot interface
 - Move to PETSc 2.3.0
 - Complete support for general order Lagrange elements in triangles and tetrahedra
 - Add test problem in src/demo/fem/convergence/ for general Lagrange elements
 - Make FEM::assemble() estimate the number of nonzeros in each row
 - Implement Matrix::init(M, N, nzmax)
 - Add Matrix::nz(), Matrix::nzsum() and Matrix::nzmax()
 - Improve Mesh::disp()
 - Add FiniteElement::disp() and FEM::disp() (useful for debugging)
 - Remove old class SparseMatrix
 - Change FEM::setBC() --> FEM::applyBC()
 - Change Mesh::tetrahedrons --> Mesh::tetrahedra
 - Implement Dirichlet boundary conditions for tetrahedra
 - Implement Face::contains(const Point& p)
 - Add test for shape dimension of mesh and form in FEM::assemble()
 - Move src/demo/fem/ demo to src/demo/fem/simple/
 - Add README file in src/demo/poisson/ (simple manual)
 - Add simple demo program src/demo/poisson/
 - Update computation of alignment of faces to match FFC/FIAT
0.5.7 [2005-06-23]
 - Clean up ODE test problems
 - Implement automatic detection of sparsity pattern from given matrix
 - Clean up homotopy solver
 - Implement automatic computation of Jacobian
 - Add support for assembly of non-square systems (Andy Terrel)	
 - Make ODE solver report average number of iterations
 - Make progress bar write first update at 0%
 - Initialize all values of u before solution in multi-adaptive solver,
   not only components given by dependencies
 - Allow user to modify and verify a converging homotopy path
 - Make homotopy solver save a list of the solutions
 - Add Matrix::norm()
 - Add new test problem for CES economy
 - Remove cast from Parameter to const char* (use std::string)
 - Make solution data filename optional for homotopy solver
 - Append homotopy solution data to file during solution
 - Add dolfin::seed(int) for optionally seeding random number generator
 - Remove dolfin::max,min (use std::max,min)
 - Add polynomial-integer (true polynomial) form of general CES system
 - Compute multi-adaptive efficiency index
 - Updates for gcc 4.0 (patches by Garth N. Wells)
 - Add Matrix::mult(const real x[], uint row) (temporary fix, assumes uniprocessor case)
 - Add Matrix::mult(const Vector& x, uint row) (temporary fix, assumes uniprocessor case)
 - Update shortcuts MassMatrix and StiffnessMatrix to new system
 - Add missing friend to Face.h (reported by Garth N. Wells)
0.5.6 [2005-05-17]
 - Implementation of boundary conditions for general order Lagrange (experimental)
 - Use interpolation function automatically generated by FFC
 - Put computation of map into class AffineMap
 - Clean up assembly
 - Use dof maps automatically generated by FFC (experimental)
 - Modify interface FiniteElement for new version of FFC
 - Update ODE homotopy test problems
 - Add cross product to class Point
 - Sort mesh entities locally according to ordering used by FIAT and FFC
 - Add new format for dof maps (preparation for higher-order elements)
 - Code cleanups: NewFoo --> Foo complete
 - Updates for new version of FFC (0.1.7)
 - Bypass log system when finalizing PETSc (may be out of scope)
0.5.5 [2005-04-26]
 - Fix broken log system, curses works again
 - Much improved multi-adaptive time-stepping
 - Move elasticity module to new system based on FFC
 - Add boundary conditions for systems
 - Improve regulation of time steps
 - Clean out old assembly classes
 - Clean out old form classes
 - Remove kernel module map
 - Remove kernel module element
 - Move convection-diffusion module to new system based on FFC
 - Add iterators for cell neighbors of edges and faces
 - Implement polynomial for of CES economy
 - Rename all new linear algebra classes: NewFoo --> Foo
 - Clean out old linear algebra
 - Speedup setting of boundary conditions (add MAT_KEEP_ZEROED_ROWS)
 - Fix bug for option --disable-curses
0.5.4 [2005-03-29]
 - Remove option to compile with PETSc 2.2.0 (2.2.1 required)
 - Make make install work again (fix missing includes)
 - Add support for mixing multiple finite elements (through FFC)
 - Improve functionality of homotopy solver
 - Simple creation of piecewise linear functions (without having an element)
 - Simple creation of piecewise linear elements
 - Add support of automatic creation of simple meshes (unit cube, unit square)
0.5.3 [2005-02-26]
 - Change to PETSc version 2.2.1
 - Add flag --with-petsc=<path> to configure script
 - Move Poisson's equation to system based on FFC
 - Add support for automatic creation of homotopies
 - Make all ODE solvers automatically handle complex ODEs: (M) z' = f(z,t)
 - Implement version of mono-adaptive solver for implicit ODEs: M u' = f(u,t)
 - Implement Newton's method for multi- and mono-adaptive ODE solvers
 - Update PETSc wrappers NewVector, NewMatrix, and NewGMRES
 - Fix initialization of PETSc
 - Add mono-adaptive cG(q) and dG(q) solvers (experimental)
 - Implementation of new assebly: NewFEM, using output from FFC 
 - Add access to mesh for nodes, cells, faces and edges
 - Add Tecplot I/O interface; contributed by Garth N. Wells
0.5.2 [2005-01-26]
 - Benchmarks for DOLFIN vs PETSc (src/demo/form and src/demo/test)
 - Complete rewrite of the multi-adaptive ODE solver (experimental)
 - Add wrapper for PETSc GMRES solver
 - Update class Point with new operators
 - Complete rewrite of the multi-adaptive solver to improve performance
 - Add PETSc wrappers NewMatrix and NewVector
 - Add DOLFIN/PETSc benchmarks
0.5.1 [2004-11-10]
 - Experimental support for automatic generation of forms using FFC
 - Allow user to supply Jacobian to ODE solver
 - Add optional test to check if a dependency already exists (Sparsity)
 - Modify sparse matrix output (Matrix::show())
 - Add FGMRES solver in new format (patch from eriksv)
 - Add non-const version of quick-access of sparse matrices
 - Add linear mappings for simple computation of derivatives
 - Add check of matrix dimensions for ODE sparsity pattern
 - Include missing cmath in Function.cpp
0.5.0 [2004-08-18]
 - First prototype of new form evaluation system
 - New classes Jacobi, SOR, Richardson (preconditioners and linear solvers)
 - Add integrals on the boundary (ds), partly working
 - Add maps from boundary of reference cell
 - Add evaluation of map from reference cell
 - New Matrix functions: max, min, norm, and sum of rows and columns (erik)
 - Derivatives/gradients of ElementFunction (coefficients f.ex.) implemented
 - Enable assignment to all elements of a NewArray
 - Add functions Boundary::noNodes(), noFaces(), noEdges()
 - New class GaussSeidel (preconditioner and linear solver)
 - New classes Preconditioner and LinearSolver
 - Bug fix for tetrahedral mesh refinement (ingelstrom)
 - Add iterators for Edge and Face on Boundary
 - Add functionality to Map: bdet() and cell() 
 - Add connectivity face-cell and edge-cell
 - New interface for assembly: Galerkin --> FEM
 - Bug fix for PDE systems of size > 3
0.4.11 [2004-04-23]
 - Add multigrid solver (experimental)
 - Update manual
0.4.10
 - Automatic model reduction (experimental)
 - Fix bug in ParticleSystem (divide by mass)
 - Improve control of integration (add function ODE::update())
 - Load/save parameters in XML-format
 - Add assembly test
 - Add simple StiffnessMatrix, MassMatrix, and LoadVector
 - Change dK --> dx
 - Change dx() --> ddx()
 - Add support for GiD file format
 - Add performance tests for multi-adaptivity (both stiff and non-stiff)
 - First version of Newton for the multi-adaptive solver
 - Test for Newton for the multi-adaptive solver
0.4.9
 - Add multi-adaptive solver for the bistable equation
 - Add BiCGSTAB solver (thsv)
 - Fix bug in SOR (thsv)
 - Improved visual program for OpenDX
 - Fix OpenDX file format for scalar functions
 - Allow access to samples of multi-adaptive solution
 - New patch from thsv for gcc 3.4.0 and 3.5.0
 - Make progress step a parameter
 - New function ODE::sparse(const Matrix& A)
 - Access nodes, cells, edges, faces by id
 - New function Matrix::lump()
0.4.8
 - Add support for systems (jansson and bengzon)
 - Add new module wave
 - Add new module wave-vector
 - Add new module elasticity
 - Add new module elasticity-stationary
 - Multi-adaptive updates
 - Fix compilation error in LogStream
 - Fix local Newton iteration for higher order elements
 - Init matrix to given type
 - Add output of cG(q) and dG(q) weights in matrix format
 - Fix numbering of frames from plotslab script
 - Add png output for plotslab script
 - Add script for running stiff test problems, plot solutions
 - Fix bug in MeshInit (node neighbors of node)
 - Modify output of sysinfo()
 - Compile with -Wall -Werror -pedantic -ansi -std=c++98 (thsv)
0.4.7
 - Make all stiff test problems work
 - Display status report also when using step()
 - Improve adaptive damping for stiff problems (remove spikes)
 - Modify Octave/Matlab format for solution data (speed improvement)
 - Adaptive sampling of solution (optional)
 - Restructure stiff test problems
 - Check if value of right-hand side is valid
 - Modify divergence test in AdaptiveIterationLevel1
0.4.6
 - Save vectors and matrices from Matlab/Octave (foufas)
 - Rename writexml.m to xmlmesh.m
 - Inlining of important functions
 - Optimize evaluation of elements
 - Optimize Lagrange polynomials
 - Optimize sparsity: use stl containers
 - Optimize choice of discrete residual for multi-adaptive solver
 - Don't save solution in benchmark proble
 - Improve computation of divergence factor for underdamped systems
 - Don't check residual on first slab for fixed time step
 - Decrease largest (default) time step to 0.1
 - Add missing <cmath> in TimeStepper
 - Move real into dolfin namespace
0.4.5
 - Rename function.h to enable compilation under Cygwin
 - Add new benchmark problem for multi-adaptive solver
 - Bug fix for ParticleSystem
 - Initialization of first time step
 - Improve time step regulation (threshold)
 - Improve stabilization
 - Improve TimeStepper interface (Ko Project)
 - Use iterators instead of recursively calling TimeSlab::update()
 - Clean up ODESolver
 - Add iterators for elements in time slabs and element groups
 - Add -f to creation of symbolic links
0.4.4
 - Add support for 3D graphics in Octave using Open Inventor (jj)
0.4.3
 - Stabilization of multi-adaptive solver (experimental) 
 - Improved non-support for curses (--disable-curses)
 - New class MechanicalSystem for simulating mechanical systems
 - Save debug info from primal and dual (plotslab.m)
 - Fix bug in progress bar
 - Add missing include file in Components.h (kakr)
 - New function dolfin_end(const char* msg, ...)
 - Move numerical differentiation to RHS
 - New class Event for limited display of messages
 - Fix bug in LogStream (large numbers in floating point format)
 - Specify individual time steps for different components
 - Compile without warnings
 - Add -Werror to option enable-debug
 - Specify individual methods for different components
 - Fix bug in dGqMethods
 - Fix bug (delete old block) in ElementData
 - Add parameters for method and order
 - New test problem reaction
 - New class FixedPointIteration
 - Fix bug in grid refinement
0.4.2
 - Fix bug in computation of residual (divide by k)
 - Add automatic generation and solution of the dual problem
 - Automatic selection of file names for primal and dual
 - Fix bug in progress bar (TerminalLogger)
 - Many updates of multi-adaptive solver
 - Add class ODEFunction
 - Update function class hierarchies
 - Move functions to a separate directory
 - Store multi-adaptive solution binary on disk with cache
0.4.1
 - First version of multi-adaptive solver working
 - Clean up file formats
 - Start changing from int to unsigned int where necessary
 - Fix bool->int when using stdard in Parameter
 - Add NewArray and NewList (will replace Array and List)
0.4.0
 - Initiation of the FEniCS project
 - Change syntax of mesh files: grid -> mesh
 - Create symbolic links instead of copying files
 - Tanganyika -> ODE 
 - Add Heat module
 - Grid -> Mesh
 - Move forms and mappings to separate libraries 
 - Fix missing include of DirectSolver.h
0.3.12
 - Adaptive grid refinement (!)
 - Add User Manual
 - Add function dolfin_log() to turn logging on/off
 - Change from pointers to references for Node, Cell, Edge, Face
 - Update writexml.m
 - Add new grid files and rename old grid files
0.3.11
 - Add configure option --disable-curses
 - Grid refinement updates
 - Make OpenDX file format work for grids (output)
 - Add volume() and diameter() in cell
 - New classes TriGridRefinement and TetGridRefinement
 - Add iterators for faces and edges on a boundary
 - New class GridHierarchy
0.3.10
 - Use new boundary structure in Galerkin
 - Make dolfin_start() and dolfin_end() work
 - Make dolfin_assert() raise segmentation fault for plain text mode
 - Add configure option --enable-debug
 - Use autoreconf instead of scripts/preconfigure
 - Rename configure.in -> configure.ac
 - New class FaceIterator
 - New class Face
 - Move computation of boundary from GridInit to BoundaryInit
 - New class BoundaryData
 - New class BoundaryInit
 - New class Boundary
 - Make InitGrid compute edges
 - Add test program for generic matrix in src/demo/la
 - Clean up Grid classes
 - Add new class GridRefinementData
 - Move data from Cell to GenericCell
 - Make GMRES work with user defined matrix, only mult() needed
 - GMRES now uses only one function to compute residual()
 - Change Matrix structure (a modified envelope/letter)
 - Update script checkerror.m for Poisson 
 - Add function dolfin_info_aptr()
 - Add cast to element pointer for iterators
 - Clean up and improve the Tensor class
 - New class: List
 - Name change: List -> Table
 - Name change: ShortList -> Array
 - Make functions in GridRefinement static
 - Make functions in GridInit static
 - Fix bug in GridInit (eriksv)
 - Add output to OpenDX format for 3D grids
 - Clean up ShortList class
 - Clean up List class
 - New class ODE, Equation replaced by PDE
 - Add Lorenz test problem
 - Add new problem type for ODEs
 - Add new module ode
 - Work on multi-adaptive ODE solver (lots of new stuff)
 - Work on grid refinement
 - Write all macros in LoggerMacros in one line
 - Add transpose functions to Matrix (Erik)
0.3.9
 - Update Krylov solver (Erik, Johan)
 - Add new LU factorization and LU solve (Niklas)
 - Add benchmark test in src/demo/bench
 - Add silent logger
0.3.8
 - Make sure dolfin-config is regenerated every time
 - Add demo program for cG(q) and dG(q)
 - Add dG(q) precalc of nodal points and weights
 - Add cG(q) precalc of nodal points and weights
 - Fix a bug in configure.in (AC_INIT with README)
 - Add Lagrange polynomials
 - Add multiplication with transpose
 - Add scalar products with rows and columns
 - Add A[i][j] index operator for quick access to dense matrix
0.3.7
 - Add new Matlab-like syntax like A(i,all) = x or A(3,all) = A(4,all)
 - Add dolfin_assert() macro enabled if debug is defined
 - Redesign of Matrix/DenseMatrix/SparseMatrix to use Matrix as common interface
 - Include missing cmath in Legendre.cpp and GaussianQuadrature.cpp
0.3.6
 - Add output functionality in DenseMatrix
 - Add high precision solver to DirectSolver
 - Clean up error messages in Matrix
 - Make solvers directly accessible through Matrix and DenseMatrix
 - Add quadrature (Gauss, Radau, and Lobatto) from Tanganyika
 - Start merge with Tanganyika
 - Add support for automatic documentation using doxygen
 - Update configure scripts
 - Add greeting at end of compilation
0.3.5
 - Define version number only in the file configure.in
 - Fix compilation problem (missing depcomp)
0.3.4
 - Fix bugs in some of the ElementFunction operators
 - Make convection-diffusion solver work again
 - Fix bug in integration, move multiplication with the determinant
 - Fix memory leaks in ElementFunction
 - Add parameter to choose output format
 - Make OctaveFile and MatlabFile subclasses of MFile
 - Add classes ScalarExpressionFunction and VectorExpressionFunction
 - Make progress bars work cleaner
 - Get ctrl-c in curses logger
 - Remove <Problem>Settings-classes and use dolfin_parameter()
 - Redesign settings to match the structure of the log system
 - Add vector functions: Function::Vector
 - Add vector element functions: ElementFunction::Vector
0.3.3
 - Increased functionality of curses-based interface
 - Add progress bars to log system
0.3.2
 - More work on grid refinement
 - Add new curses based log system
0.3.1
 - Makefile updates: make install should now work properly
 - KrylovSolver updates
 - Preparation for grid refinement
 - Matrix and Vector updates
0.3.0
 - Make poisson work again, other modules still not working
 - Add output format for octave
 - Fix code to compile with g++-3.2 -Wall -Werror
 - New operators for Matrix
 - New and faster GMRES solver (speedup factor 4)
 - Changed name from SparseMatrix to Matrix
 - Remove old unused code
 - Add subdirectory math containing mathematical functions
 - Better access for A(i,j) += to improve speed in assembling
 - Add benchmark for linear algebra
 - New definition of finite element
 - Add algebra for function spaces
 - Convert grids in data/grids to xml.gz
 - Add iterators for Nodes and Cells
 - Change from .hh to .h
 - Add operators to Vector class (foufas)
 - Add dependence on libxml2
 - Change from .C to .cpp to make Jim happy.
 - Change input/output functionality to streams
 - Change to new data structure for Grid
 - Change to object-oriented API at top level
 - Add use of C++ namespaces
 - Complete and major restructuring of the code
 - Fix compilation error in src/config
 - Fix name of keyword for convection-diffusion
0.2.11-1
 - Fix compilation error (`source`) on Solaris
0.2.11
 - Automate build process to simplify addition of new modules
 - Fix bug in matlab_write_field() (walter)
 - Fix bug in SparseMatrix::GetCopy() (foufas)
0.2.10-1
 - Fix compilation errors on RedHat (thsv)
0.2.10
 - Fix compilation of problems to use correct compiler
 - Change default test problems to the ones in the report
 - Improve memory management using mpatrol for tracking allocations
 - Change bool to int for va_arg, seems to be a problem with gcc > 3.0
 - Improve input / output support: GiD, Matlab, OpenDX
0.2.8
 - Navier-Stokes starting to work again
 - Add Navier-Stokes 2d
 - Bug fixes
0.2.7
 - Add support for 2D problems
 - Add module convection-diffusion
 - Add local/global fields in equation/problem
 - Bug fixes
 - Navier-Stokes updates (still broken)
0.2.6 [2002-02-19]
 - Navier-Stokes updates (still broken)
 - Output to matlab format
0.2.5
 - Add variational formulation with overloaded operators for systems
 - ShapeFunction/LocalField/FiniteElement according to Scott & Brenner
0.2.4
 - Add boundary conditions
 - Poisson seems to work ok
0.2.3
 - Add GMRES solver
 - Add CG solver
 - Add direct solver
 - Add Poisson solver
 - Big changes to the organisation of the source tree
 - Add kwdist.sh script
 - Bug fixes
0.2.2:
 - Remove curses temporarily
0.2.1:
 - Remove all PETSc stuff. Finally!
 - Gauss-Seidel cannot handle the pressure equation
0.2.0:
 - First GPL release
 - Remove all of Klas Samuelssons proprietary grid code
 - Adaptivity and refinement broken, include in next release