← Back to team overview

dolfin team mailing list archive

Version 0.9.10 of dolfin released

 

0.9.10 [2011-02-23]
 - Handle TimeSeries stored backward in time (automatic reversal)
 - Automatic storage of hierarchy during refinement
 - Remove directory/library 'main', merged into 'common'
 - dolfin_init --> init, dolfin_set_precision --> set_precision
 - Remove need for mesh argument to functional assembly when possible
 - Add function set_output_stream
 - Add operator () for evaluation at points for Function/Expression in C++
 - Add abs() to GenericVector interface
 - Fix bug for local refinement of manifolds
 - Interface change: VariationalProblem now takes: a, L or F, (dF)
 - Map linear algebra objects to processes consistently with mesh parition
 - Lots of improvemenst to parallel assembly, dof maps and linear algebra
 - Add lists supported_elements and supported_elements_for_plotting in Python
 - Add script dolfin-plot for plotting meshes and elements from the command-line
 - Add support for plotting elements from Python
 - Add experimental OpenMP assembler
 - Thread-safe fixed in Function class
 - Make GenericFunction::eval thread-safe (Data class removed)
 - Optimize and speedup topology computation (mesh.init())
 - Add function Mesh::clean() for cleaning out auxilliary topology data
 - Improve speed and accuracy of timers
 - Fix bug in 3D uniform mesh refinement
 - Add built-in meshes UnitTriangle and UnitTetrahedron
 - Only create output directories when they don't exist
 - Make it impossible to set the linear algebra backend to something illegal
 - Overload value_shape instead of dim for userdefined Python Expressions
 - Permit unset parameters
 - Search only for BLAS library (not cblas.h)
0.9.9 [2010-09-01]
 - Change build system to CMake
 - Add named MeshFunctions: VertexFunction, EdgeFunction, FaceFunction, FacetFunction, CellFunction
 - Allow setting constant boundary conditions directly without using Constant
 - Allow setting boundary conditions based on string ("x[0] == 0.0")
 - Create missing directories if specified as part of file names
 - Allow re-use of preconditioners for most backends
 - Fixes for UMFPACK solver on some 32 bit machines
 - Provide access to more Hypre preconditioners via PETSc
 - Updates for SLEPc 3.1
 - Improve and implement re-use of LU factorizations for all backends
 - Fix bug in refinement of MeshFunctions
0.9.8 [2010-07-01]
 - Optimize and improve StabilityAnalysis.
 - Use own implementation of binary search in ODESolution (takes advantage of
   previous values as initial guess)
 - Improve reading ODESolution spanning multiple files
 - Dramatic speedup of progress bar (and algorithms using it)
 - Fix bug in writing meshes embedded higher dimensions to M-files
 - Zero vector in uBLASVector::resize() to fix spurious bug in Krylov solver
 - Handle named fields (u.rename()) in VTK output
 - Bug fix in computation of FacetArea for tetrahedrons
 - Add support for direct plotting of Dirichlet boundary conditions: plot(bc)
 - Updates for PETSc 3.1
 - Add relaxation parameter to NewtonSolver
 - Implement collapse of renumbered dof maps (serial and parallel)
 - Simplification of DofMapBuilder for parallel dof maps
 - Improve and simplify DofMap
 - Add Armadillo dependency for dense linear algebra
 - Remove LAPACKFoo wrappers
 - Add abstract base class GenericDofMap
 - Zero small values in VTK output to avoid VTK crashes
 - Handle MeshFunction/markers in homogenize bc
 - Make preconditioner selectable in VariationalProblem (new parameter)
 - Read/write meshes in binary format
 - Add parameter "use_ident" in DirichletBC
 - Issue error by default when solvers don't converge (parameter "error_on_convergence")
 - Add option to print matrix/vector for a VariationalProblem
 - Trilinos backend now works in parallel
 - Remove Mesh refine members functions. Use free refine(...) functions instead
 - Remove AdapativeObjects
 - Add Stokes demo using the MINI element
 - Interface change: operator+ now used to denote enriched function spaces
 - Interface change: operator+ --> operator* for mixed elements
 - Add option 'allow_extrapolation' useful when interpolating to refined meshes
 - Add SpatialCoordinates demo
 - Add functionality for accessing time series sample times: vector_times(), mesh_times()
 - Add functionality for snapping mesh to curved boundaries during refinement
 - Add functionality for smoothing the boundary of a mesh
 - Speedup assembly over exterior facets by not using BoundaryMesh
 - Mesh refinement improvements, remove unecessary copying in Python interface
 - Clean PETSc and Epetra Krylov solvers
 - Add separate preconditioner classes for PETSc and Epetra solvers
 - Add function ident_zeros for inserting one on diagonal for zero rows
 - Add LU support for Trilinos interface
0.9.7 [2010-02-17]
 - Add support for specifying facet orientation in assembly over interior facets
 - Allow user to choose which LU package PETScLUSolver uses
 - Add computation of intersection between arbitrary mesh entities
 - Random access to MeshEntitiyIterators
 - Modify SWIG flags to prevent leak when using SWIG director feature
 - Fix memory leak in std::vector<Foo*> typemaps
 - Add interface for SCOTCH for parallel mesh partitioning
 - Bug fix in SubDomain::mark, fixes bug in DirichletBC based on SubDomain::inside
 - Improvements in time series class, recognizing old stored values
 - Add FacetCell class useful in algorithms iterating over boundary facets
 - Rename reconstruct --> extrapolate
 - Remove GTS dependency
0.9.6 [2010-02-03]
 - Simplify access to form compiler parameters, now integrated with global parameters
 - Add DofMap member function to return set of dofs
 - Fix memory leak in the LA interface
 - Do not import cos, sin, exp from NumPy to avoid clash with UFL functions
 - Fix bug in MTL4Vector assignment
 - Remove sandbox (moved to separate repository)
 - Remove matrix factory (dolfin/mf)
 - Update .ufl files for changes in UFL
 - Added swig/import/foo.i for easy type importing from dolfin modules
 - Allow optional argument cell when creating Expression
 - Change name of Expression argument cpparg --> cppcode
 - Add simple constructor (dim0, dim1) for C++ matrix Expressions
 - Add example demonstrating the use of cpparg (C++ code in Python)
 - Add least squares solver for dense systems (wrapper for DGELS)
 - New linear algebra wrappers for LAPACK matrices and vectors
 - Experimental support for reconstruction of higher order functions
 - Modified interface for eval() and inside() in C++ using Array
 - Introduce new Array class for simplified wrapping of arrays in SWIG
 - Improved functionality for intersection detection
 - Reimplementation of intersection detection using CGAL
0.9.5 [2009-12-03]
 - Set appropriate parameters for symmetric eigenvalue problems with SLEPc
 - Fix for performance regression in recent uBLAS releases
 - Simplify Expression interface: f = Expression("sin(x[0])")
 - Simplify Constant interface: c = Constant(1.0)
 - Fix bug in periodic boundary conditions
 - Add simple script dolfin-tetgen for generating DOLFIN XML meshes from STL
 - Make XML parser append/overwrite parameter set when reading parameters from file
 - Refinement of function spaces and automatic interpolation of member functions
 - Allow setting global parameters for Krylov solver
 - Fix handling of Constants in Python interface to avoid repeated JIT compilation
 - Allow simple specification of subdomains in Python without needing to subclass SubDomain
 - Add function homogenize() for simple creation of homogeneous BCs from given BCs
 - Add copy constructor and possibility to change value for DirichletBC
 - Add simple wrapper for ufl.cell.n. FacetNormal(mesh) now works again in Python.
 - Support apply(A), apply(b) and apply(b, x) in PeriodicBC
 - Enable setting spectral transformation for SLEPc eigenvalue solver
0.9.4 [2009-10-12]
 - Remove set, get and operator() methods from MeshFunction
 - Added const and none const T &operator[uint/MeshEntity] to MeshFunction
 - More clean up in SWIG interface files, remove global renames and ignores
 - Update Python interface to Expression, with extended tests for value ranks
 - Removed DiscreteFunction class
 - Require value_shape and geometric_dimension in Expression
 - Introduce new class Expression replacing user-defined Functions
 - interpolate_vertex_values --> compute_vertex_values
 - std::map<std::string, Coefficient> replaces generated CoefficientSet code
 - Cleanup logic in Function class as a result of new Expression class
 - Introduce new Coefficient base class for form coefficients
 - Replace CellSize::min,max by Mesh::hmin,hmax
 - Use MUMPS instead of UMFPACK as default direct solver in both serial and parallel
 - Fix bug in SystemAssembler
 - Remove support for PETSc 2.3 and support PETSc 3.0.0 only
 - Remove FacetNormal Function. Use UFL facet normal instead.
 - Add update() function to FunctionSpace and DofMap for use in adaptive mesh refinement
 - Require mesh in constructor of functionals (C++) or argument to assemble (Python)
0.9.3 [2009-09-25]
 - Add global parameter "ffc_representation" for form representation in FFC JIT compiler
 - Make norm() function handle both vectors and functions in Python
 - Speedup periodic boundary conditions and make work for mixed (vector-valued) elements
 - Add possibilities to use any number numpy array when assigning matrices and vectors
 - Add possibilities to use any integer numpy array for indices in matrices and vectors
 - Fix for int typemaps in PyDOLFIN
 - Split mult into mult and transpmult
 - Filter out PETSc argument when parsing command-line parameters
 - Extend comments to SWIG interface files
 - Add copyright statements to SWIG interface files (not finished yet)
 - Add typemaps for misc std::vector<types> in PyDOLFIN
 - Remove dependencies on std_vector.i reducing SWIG wrapper code size
 - Use relative %includes in dolfin.i
 - Changed names on SWIG interface files dolfin_foo.i -> foo.i
 - Add function interpolate() in Python interface
 - Fix typmaps for uint in python 2.6
 - Use TypeError instead of ValueError in typechecks in typmaps.i
 - Add in/out shared_ptr<Epetra_FEFoo> typemaps for PyDOLFIN
 - Fix JIT compiling in parallel
 - Add a compile_extension_module function in PyDOLFIN
 - Fix bug in Python vector assignment
 - Add support for compressed base64 encoded VTK files (using zlib)
 - Add support for base64 encoded VTK files
 - Experimental support for parallel assembly and solve
 - Bug fix in project() function, update to UFL syntax
 - Remove disp() functions and replace by info(foo, true)
 - Add fem unit test (Python)
 - Clean up SystemAssembler
 - Enable assemble_system through PyDOLFIN
 - Add 'norm' to GenericMatrix
 - Efficiency improvements in NewtonSolver
 - Rename NewtonSolver::get_iteration() to NewtonSolver::iteration()
 - Improvements to EpetraKrylovSolver::solve
 - Add constructor Vector::Vector(const GenericVector& x)
 - Remove SCons deprecation warnings
 - Memory leak fix in PETScKrylovSolver
 - Rename dolfin_assert -> assert and use C++ version
 - Fix debug/optimise flags
 - Remove AvgMeshSize, InvMeshSize, InvFacetArea from SpecialFunctions
 - Rename MeshSize -> CellSize
 - Rewrite parameter system with improved support for command-line parsing,
   localization of parameters (per class) and usability from Python
 - Remove OutflowFacet from SpecialFunctions
 - Rename interpolate(double*) --> interpolate_vertex_values(double*)
 - Add Python version of Cahn-Hilliard demo
 - Fix bug in assemble.py
 - Permit interpolation of functions between non-matching meshes
 - Remove Function::Function(std::string filename)
 - Transition to new XML io
 - Remove GenericSparsityPattern::sort
 - Require sorted/unsorted parameter in SparsityPattern constructor
 - Improve performance of SparsityPattern::insert
 - Replace enums with strings for linear algebra and built-in meshes
 - Allow direct access to Constant value
 - Initialize entities in MeshEntity constructor automatically and check range
 - Add unit tests to the memorycheck
 - Add call to clean up libxml2 parser at exit
 - Remove unecessary arguments in DofMap member functions
 - Remove reference constructors from DofMap, FiniteElement and FunctionSpace
 - Use a shared_ptr to store the mesh in DofMap objects
 - Interface change for wrapper code: PoissonBilinearForm --> Poisson::BilinearForm
 - Add function info_underline() for writing underlined messages
 - Rename message() --> info() for "compatibility" with Python logging module
 - Add elementwise multiplication in GeneriVector interface
 - GenericVector interface in PyDOLFIN now support the sequence protocol
 - Rename of camelCaps functions names: fooBar --> foo_bar
   Note: mesh.numVertices() --> mesh.num_vertices(), mesh.numCells() --> mesh.num_cells()
 - Add slicing capabilities for GenericMatrix interface in PyDOLFIN (only getitem)
 - Add slicing capabilities for GenericVector interface in PyDOLFIN
 - Add sum to GenericVector interface
0.9.2 [2009-04-07]
 - Enable setting parameters for Newton solver in VariationalProblem
 - Simplified and improved implementation of C++ plotting, calling Viper on command-line
 - Remove precompiled elements and projections
 - Automatically interpolate user-defined functions on assignment
 - Add new built-in function MeshCoordinates, useful in ALE simulations
 - Add new constructor to Function class, Function(V, "vector.xml")
 - Remove class Array (using std::vector instead)
 - Add vector_mapping data to MeshData
 - Use std::vector instead of Array in MeshData
 - Add assignment operator and copy constructor for MeshFunction
 - Add function mesh.move(other_mesh) for moving mesh according to matching mesh (for FSI)
 - Add function mesh.move(u) for moving mesh according to displacement function (for FSI)
 - Add macro dolfin_not_implemented()
 - Add new interpolate() function for interpolation of user-defined function to discrete
 - Make _function_space protected in Function
 - Added access to crs data from python for uBLAS and MTL4 backendg
0.9.1 [2009-02-17]
 - Check Rectangle and Box for non-zero dimensions
 - ODE solvers now solve the dual problem
 - New class SubMesh for simple extraction of matching meshes for sub domains
 - Improvements of multiprecision ODE solver
 - Fix Function class copy constructor
 - Bug fixes for errornorm(), updates for new interface
 - Interface update for MeshData: createMeshFunction --> create_mesh_function etc
 - Interface update for Rectangle and Box
 - Add elastodynamics demo
 - Fix memory leak in IntersectionDetector/GTSInterface
 - Add check for swig version, in jit and compile functions
 - Bug fix in dolfin-order script for gzipped files
 - Make shared_ptr work across C++/Python interface
 - Replace std::tr1::shared_ptr with boost::shared_ptr
 - Bug fix in transfinite mean-value interpolation
 - Less annoying progress bar (silent when progress is fast)
 - Fix assignment operator for MeshData
 - Improved adaptive mesh refinement (recursive Rivara) producing better quality meshes
0.9.0 [2009-01-05]
 - Cross-platform fixes
 - PETScMatrix::copy fix
 - Some Trilinos fixes
 - Improvements in MeshData class
 - Do not use initial guess in Newton solver
 - Change OutflowFacet to IsOutflowFacet and change syntax
 - Used shared_ptr for underling linear algebra objects
 - Cache subspaces in FunctionSpace
 - Improved plotting, now support plot(grad(u)), plot(div(u)) etc
 - Simple handling of JIT-compiled functions
 - Sign change (bug fix) in increment for Newton solver
 - New class VariationalProblem replacing LinearPDE and NonlinearPDE
 - Parallel parsing and partitioning of meshes (experimental)
 - Add script dolfin-order for ordering mesh files
 - Add new class SubSpace (replacing SubSystem)
 - Add new class FunctionSpace
 - Complete redesign of Function class hierarchy, now a single Function class
 - Increased use of shared_ptr in Function, FunctionSpace, etc
 - New interface for boundary conditions, form not necessary
 - Allow simple setting of coefficient functions based on names (not their index)
 - Don't order mesh automatically, meshes must now be ordered explicitly
 - Simpler definition of user-defined functions (constructors not necessary)
 - Make mesh iterators const to allow for const-correct Mesh code
0.8.1 [2008-10-20]
 - Add option to use ML multigrid preconditioner through PETSc
 - Interface change for ODE solvers: uBLASVector --> double*
 - Remove homotopy solver
 - Remove typedef real, now using plain double instead
 - Add various operators -=, += to GenericMatrix
 - Don't use -Werror when compiling SWIG generated code
 - Remove init(n) and init(m, n) from GenericVector/Matrix. Use resize and zero instead
 - Add new function is_combatible() for checking compatibility of boundary conditions
 - Use x as initial guess in Krylov solvers (PETSc, uBLAS, ITL)
 - Add new function errornorm()
 - Add harmonic ALE mesh smoothing
 - Refinements of Graph class
 - Add CholmodCholeskySlover (direct solver for symmetric matrices)
 - Implement application of Dirichlet boundary conditions within assembly loop
 - Improve efficiency of SparsityPattern
 - Allow a variable number of smoothings
 - Add class Table for pretty-printing of tables
 - Add experimental MTL4 linear algebra backend
 - Add OutflowFacet to SpecialFunctions for DG transport problems
 - Remove unmaintained OpenDX file format
 - Fix problem with mesh smoothing near nonconvex corners
 - Simple projection of functions in Python
 - Add file format: XYZ for use with Xd3d
 - Add built-in meshes: UnitCircle, Box, Rectangle, UnitSphere
0.8.0 [2008-06-23]
 - Fix input of matrix data from XML
 - 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