-
Notifications
You must be signed in to change notification settings - Fork 39
/
ChangeLog
1248 lines (1248 loc) · 60.6 KB
/
ChangeLog
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
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
- CMake now takes care of calling the correct generate-foo script if so needed.
- Feature: Add new built-in computational geometry library (BoundingBoxTree)
- Feature: Add support for setting name and label to an Expression when constructed
- Feature: Add support for passing a scalar GenericFunction as default value to a CompiledExpression
- Feature: Add support for distance queries for 3-D meshes
- Feature: Add PointIntegralSolver, which uses the MultiStageSchemes to solve local ODEs at Vertices
- Feature: Add RKSolver and MultiStageScheme for general time integral solvers
- Feature: Add support for assigning a Function with linear combinations of Functions, which lives in the same FunctionSpace
- Added Python wrapper for SystemAssembler
- Added a demo using compiled_extension_module with separate source files
- Fixes for NumPy 1.7
- Remove DOLFIN wrapper code (moved to FFC)
- Add set_options_prefix to PETScKrylovSolver
- Remove base class BoundarCondition
- Set block size for PETScMatrix when available from TensorLayout
- Add support to get block compressed format from STLMatrix
- Add detection of block structures in the dofmap for vector equations
- Expose PETSc GAMG parameters
- Modify SystemAssembler to support separate assembly of A and b
1.2.0 [2013-03-24]
- Fixes bug where child/parent hierarchy in Python were destroyed
- Add utility script dolfin-get-demos
- MeshFunctions in python now support iterable protocol
- Add timed VTK output for Mesh and MeshFunction in addtion to Functions
- Expose ufc::dofmap::tabulate_entity_dofs to GenericDofMap interface
- Expose ufc::dofmap::num_entity_dofs to GenericDofMap interface
- Allow setting of row dof coordinates in preconditioners (only works with PETSc backed for now)
- Expose more PETSc/ML parameters
- Improve speed to tabulating coordinates in some DofMap functions
- Feature: Add support for passing a Constant as default value to a CompiledExpression
- Fix bug in dimension check for 1-D ALE
- Remove some redundant graph code
- Improvements in speed of parallel dual grapj builder
- Fix bug in XMDF output for cell-based Functions
- Fixes for latest version of clang compiler
- LocalSolver class added to efficiently solve cell-wise problems
- New implementation of periodic boundary conditions. Now incorporated into the dofmap
- Optional arguments to assemblers removed
- SymmetricAssembler removed
- Domains for assemblers can now only be attached to forms
- SubMesh can now be constructed without a CellFunction argument, if the MeshDomain contains marked celldomains.
- MeshDomains are propagated to a SubMesh during construction
- Simplify generation of a MeshFunction from MeshDomains: No need to call mesh_function with mesh
- Rename dolfin-config.cmake to DOLFINConfig.cmake
- Use CMake to configure JIT compilation of extension modules
- Feature: Add vertex_to_dof_map to DofMap, which map vertex indices to dolfin dofs
- Feature: Add support for solving on m dimensional meshes embedded in n >= m dimensions
1.1.0 [2013-01-08]
- Add support for solving singular problems with Krylov solvers (PETSc only)
- Add new typedef dolfin::la_index for consistent indexing with linear algebra backends.
- Change default unsigned integer type to std::size_t
- Add support to attaching operator null space to preconditioner
(required for smoothed aggregation AMG)
- Add basic interface to the PETSc AMG preconditioner
- Make SCOTCH default graph partitioner (GNU-compatible free license, unlike ParMETIS)
- Add scalable construction of mesh dual graph for mesh partitioning
- Improve performance of mesh building in parallel
- Add mesh output to SVG
- Add support for Facet and cell markers to mesh converted from Diffpack
- Add support for Facet and cell markers/attributes to mesh converted from Triangle
- Change interface for auto-adaptive solvers: these now take the goal
functional as a constructor argument
- Add memory usage monitor: monitor_memory_usage()
- Compare mesh hash in interpolate_vertex_values
- Add hash() for Mesh and MeshTopology
- Expose GenericVector::operator{+=,-=,+,-}(double) to Python
- Add function Function::compute_vertex_values not needing a mesh argument
- Add support for XDMF and HDF5
- Add new interface LinearOperator for matrix-free linear systems
- Remove MTL4 linear algebra backend
- Rename down_cast --> as_type in C++ / as_backend_type in Python
- Remove KrylovMatrix interface
- Remove quadrature classes
- JIT compiled C++ code can now include a dolfin namespace
- Expression string parsing now understand C++ namespace such as std::cosh
- Fix bug in Expression so one can pass min, max
- Fix bug in SystemAssembler, where mesh.init(D-1, D) was not called before assemble
- Fix bug where the reference count of Py_None was not increased
- Fix bug in reading TimeSeries of size smaller than 3
- Improve code design for Mesh FooIterators to avoid dubious down cast
- Bug fix in destruction of PETSc user preconditioners
- Add CellVolume(mesh) convenience wrapper to Python interface for UFL function
- Fix bug in producing outward pointing normals of BoundaryMesh
- Fix bug introduced by SWIG 2.0.5, where typemaps of templated typedefs
are not handled correctly
- Fix bug introduced by SWIG 2.0.5, which treated uint as Python long
- Add check that sample points for TimeSeries are monotone
- Fix handling of parameter "report" in Krylov solvers
- Add new linear algebra backend "PETScCusp" for GPU-accelerated linear algebra
- Add sparray method in the Python interface of GenericMatrix, requires scipy.sparse
- Make methods that return a view of contiguous c-arrays, via a NumPy array, keep a reference from the object so it wont get out of scope
- Add parameter: "use_petsc_signal_handler", which enables/disable PETSc system signals
- Avoid unnecessary resize of result vector for A*b
- MPI functionality for distributing values between neighbours
- SystemAssembler now works in parallel with topological/geometric boundary search
- New symmetric assembler with ability for stand-alone RHS assemble
- Major speed-up of DirichletBC computation and mesh marking
- Major speed-up of assembly of functions and expressions
- Major speed-up of mesh topology computation
- Add simple 2D and 3D mesh generation (via CGAL)
- Add creation of mesh from triangulations of points (via CGAL)
- Split the SWIG interface into six combined modules instead of one
- Add has_foo to easy check what solver and preconditioners are available
- Add convenience functions for listing available linear_algebra_backends
- Change naming convention for cpp unit tests test.cpp -> Foo.cpp
- Added cpp unit test for GenericVector::operator{-,+,*,/}= for all la backends
- Add functionality for rotating meshes
- Add mesh generation based on NETGEN constructive solid geometry
- Generalize SparsityPattern and STLMatrix to support column-wise storage
- Add interfaces to wrap PaStiX and MUMPS direct solvers
- Add CoordinateMatrix class
- Make STLMatrix work in parallel
- Remove all tr1::tuple and use boost::tuple
- Fix wrong link in Python quick reference.
1.0.0 [2011-12-07]
- Change return value of IntervalCell::facet_area() 0.0 --> 1.0.
- Recompile all forms with FFC 1.0.0
- Fix for CGAL 3.9 on OS X
- Improve docstrings for Box and Rectangle
- Check number of dofs on local patch in extrapolation
1.0-rc2 [2011-11-28]
- Fix bug in 1D mesh refinement
- Fix bug in handling of subdirectories for TimeSeries
- Fix logic behind vector assignment, especially in parallel
1.0-rc1 [2011-11-21]
- 33 bugs fixed
- Implement traversal of bounding box trees for all codimensions
- Edit and improve all error messages
- Added [un]equality operator to FunctionSpace
- Remove batch compilation of Expression (Expressions) from Python interface
- Added get_value to MeshValueCollection
- Added assignment operator to MeshValueCollection
1.0-beta2 [2011-10-26]
- Change search path of parameter file to ~/.fenics/dolfin_parameters.xml
- Add functions Parameters::has_parameter, Parameters::has_parameter_set
- Added option to store all connectivities in a mesh for TimeSeries (false by default)
- Added option for gzip compressed binary files for TimeSeries
- Propagate global parameters to Krylov and LU solvers
- Fix OpenMp assemble of scalars
- Make OpenMP assemble over sub domains work
- DirichletBC.get_boundary_values, FunctionSpace.collapse now return a dict in Python
- Changed name of has_la_backend to has_linear_algebra_backend
- Added has_foo functions which can be used instead of the HAS_FOO defines
- Less trict check on kwargs for compiled Expression
- Add option to not right-justify tables
- Rename summary --> list_timings
- Add function list_linear_solver_methods
- Add function list_lu_solver_methods
- Add function list_krylov_solver_methods
- Add function list_krylov_solver_preconditioners
- Support subdomains in SystemAssembler (not for interior facet integrals)
- Add option functionality apply("flush") to PETScMatrix
- Add option finalize_tensor=true to assemble functions
- Solver parameters can now be passed to solve
- Remove deprecated function Variable::disp()
- Remove deprecated function logging()
- Add new class MeshValueCollection
- Add new class MeshDomains replacing old storage of boundary markers
as part of MeshData. The following names are no longer supported:
* boundary_facet_cells
* boundary_facet_numbers
* boundary_indicators
* material_indicators
* cell_domains
* interior_facet_domains
* exterior_facet_domains
- Rename XML tag <meshfunction> --> <mesh_function>
- Rename SubMesh data "global_vertex_indices" --> "parent_vertex_indices"
- Get XML input/output of boundary markers working again
- Get FacetArea working again
1.0-beta [2011-08-11]
- Print percentage of non-zero entries when computing sparsity patterns
- Use ufl.Real for Constant in Python interface
- Add Dirichlet boundary condition argument to Python project function
- Add remove functionality for parameter sets
- Added out typemap for vector of shared_ptr objects
- Fix typemap bug for list of shared_ptr objects
- Support parallel XML vector io
- Add support for gzipped XML output
- Use pugixml for XML output
- Move XML SAX parser to libxml2 SAX2 interface
- Simplify XML io
- Change interface for variational problems, class VariationalProblem removed
- Add solve interface: solve(a == L), solve(F == 0)
- Add new classes Linear/NonlinearVariationalProblem
- Add new classes Linear/NonlinearVariationalSolver
- Ad form class aliases ResidualForm and Jacobian form in wrapper code
- Default argument to variables in Expression are passed as kwargs in the
Python interface
- Add has_openmp as utility function in Python interface
- Add improved error reporting using dolfin_error
- Use Boost to compute Legendre polynolials
- Remove ode code
- Handle parsing of unrecognized command-line parameters
- All const std::vector<foo>& now return a read-only NumPy array
- Make a robust macro for generating a NumPy array from data
- Exposing low level fem functionality to Python, by adding a
Cell -> ufc::cell typemap
- Added ufl_cell as a method to Mesh in Python interface
- Fix memory leak in Zoltan interface
- Remove some 'new' for arrays in favour of std::vector
- Added cell as an optional argument to Constant
- Prevent the use of non contiguous NumPy arrays for most typemaps
- Point can now be used to evaluate a Function or Expression in Python
- Fixed dimension check for Function and Expression eval in Python
- Fix compressed VTK output for tensors in 2D
0.9.11 [2011-05-16]
- Change license from LGPL v2.1 to LGPL v3 or later
- Moved meshconverter to dolfin_utils
- Add support for conversion of material markers for Gmsh meshes
- Add support for point sources (class PointSource)
- Rename logging --> set_log_active
- Add parameter "clear_on_write" to TimeSeries
- Add support for input/output of nested parameter sets
- Check for dimensions in linear solvers
- Add support for automated error control for variational problems
- Add support for refinement of MeshFunctions after mesh refinement
- Change order of test and trial spaces in Form constructors
- Make SWIG version >= 2.0 a requirement
- Recognize subdomain data in Assembler from both Form and Mesh
- Add storage for subdomains (cell_domains etc) in Form class
- Rename MeshData "boundary facet cells" --> "boundary_facet_cells"
- Rename MeshData "boundary facet numbers" --> "boundary_facet_numbers"
- Rename MeshData "boundary indicators" --> "boundary_indicators"
- Rename MeshData "exterior facet domains" --> "exterior_facet_domains"
- Updates for UFC 2.0.1
- Add FiniteElement::evaluate_basis_derivatives_all
- Add support for VTK output of facet-based MeshFunctions
- Change default log level from PROGRESS to INFO
- Add copy functions to FiniteElement and DofMap
- Simplify DofMap
- Interpolate vector values when reading from time series
0.9.10 [2011-02-23]
- Updates for UFC 2.0.0
- 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