This is the old TODO list for DOLFIN.

Items on the TODO list is currently being moved to the FEniCS Bugzilla
database and should be flagged as "enhancement" if they are not bugs.

When this file is empty, we should remove it.

----------------------------------------------------------------------


Manual
------

* Fix incomplete sections
* Write section on coding style

Assembly
--------

* Use MatSetOption(A, MAT_ROWS_SORTED), MatSetOption(A, MAT_COLUMNS_SORTED)?
* Use MatSetOption(A, MAT_USE_HASH_TABLE)?
* Make two forms share the same map and only update the map
* Compute number of nonzeros before assembly
* Parallel assembly

Mesh
----

o Port to new mesh library
o [jj] Schema for mesh XML format
* Geometry representation, including boundaries
* Mesh generation using triangle or tetgen?
* Seems to be something wrong with trimesh-32.xml.gz
* Compute normals of edges

Linear Algebra
--------------

* Cleanups and testing

Function
--------

* Input/output for time-series

Input/Output
------------

* Improve script dolfin-convert
* Save edges in MATLAB format

Solvers
-------

ODE solvers
-----------

o [jj, logg] Enable use of direct solver for linear system
o [jj, logg] Is Newton working correctly for high-order methods?
o [jj, logg] Save solution for new solver
o [jj, logg] Save dual solution backwards
o [jj, logg] Error estimates
o [jj, logg] Automatic computation of stability factors as function of time T
o [jj, logg] Use two files for MATLAB format

Modules
-------

* Adaptivity

Parameters
----------

o Load default parameters from file
o Add function to display all parameters

General
-------

* Remove target install from simple makefiles

* Write FAQ and put on web page:

  Q: Parallel mesh?
  A: Waiting for Matt.

  Q: What does DOLFIN mean?
  A: Dynamic Object-oriented Library for FINite element computation.

  Q: Is it fast?
  A: Yes.

  Q: Can I help?
  A: Yes.

* New repository dolfin-contrib?
* Don't use cut in src/config script
* Replace unsigned int and int with uint when possible
* Replace Array and List with NewArray and NewList everywhere
* Replace stdio with iostream and fstream
* Fix setprecision() for cout
* Use symbolic links for meshes, see example src/demo/fem
* Collect diagnostic and error messages into one file? Translations?

Some suggestions for PETSc
--------------------------

Use namespaces, don't define macros like restrict which prevents
users of PETSc to declare functions with that name.

Dependencies
------------

Required
* Boost
* libxml2

Optional
* PETSc
* FFC
* FIAT
* Hypre?
* UMFPACK
* curses

Postprocessing
* SciPy
* ParaView
* MayaVi
