root/trunk/Julian/TODO

Revision 1545, 4.3 kB (checked in by powell, 18 months ago)

Start of moving matrix sets into the Matrix class; it builds.

  • Property svn:keywords set to Author Date Id Revision
Line 
1Technical/math stuff:
2
3 - Do the analytical singularity integral of the potential and elastic Green's
4   functions for linear triangles in 3-D, and code it.  This should help
5   improve accuracy a whole lot.
6
7 - Do the integrals for internal point field value calculations (with a solved
8   system).
9
10 - Add the Gauss-Lobatto integration points and weights to improve accuracy for
11   high-order shapefunctions.
12
13 - Put dynamic convergence checking in the Gaussian integration functions to
14   get better accuracy at the singularities.
15
16 - Add alternative integration point schemes to efficiently improve accuracy at
17   singularities, such as logarithmic Gauss point distribution and the
18   associated weights.
19
20 - Add 2-D plane stress Green's function.
21
22 - Add shapefunctions to mesh class allowing for continuous derivatives
23   (splines), so we can solve fourth-order equations like Cahn-Hilliard phase
24   field stuff in finite elements.
25
26Programming stuff:
27
28 - Lots of functions in bem.c need to be static (local).
29
30 - Check for silly "parentheses around assignment" warning with later gcc
31   (3.2), and switch "if ((...))" back to "if (...)" if it goes away.
32
33 - Move field variable handling into the MESH class, and do
34   "meshElementIntegrateField" method.
35
36 - Make C++ wrappers with error trapping and operator overloading for matrix
37   (and "vector"=1xn matrix), mesh, bem classes.  Or just wrap the whole thing
38   in SIDL, giving it automatic C++, python, FORTRAN and Java bindings!
39
40 - Harmonize error handling across classes, maybe with julian/error.h, and
41   provide an array of translatable strings with error names.
42
43 - Make load and save methods for the BEM class, using libxml(2?).
44
45 - Link to the GreenML C implementation to use its data structures to store
46   Green's function data, replacing the structure in equations.h, and export
47   GreenML for any stored Green's functions.
48
49 - (Down the road...) Import GreenML, dynamically compile source code, and link
50   in to use to solve problems.
51
52 - Move mesh element group sets into the MESH class.
53
54 - Separate discretization from shapefunctions of particular fields so
55   different fields can have different types of shape functions, e.g. Q2-P1
56   velocity-pressure elements, or Taylor-Hood P2-P1, spectral polynomial
57   Qn-Q(n-2), those cubic spline-like things which let us do continuous
58   derivatives (for Cahn-Hilliard)...
59
60 - See about switching over to PETSc's Mat class for matrices, so we can do
61   this in parallel.  One omission: progress-BLAS and LAPACK routines.
62
63 - Also see about using the PETSc ParMETIS interface to partition FEM meshes.
64
65 - Maybe even do a PETSc BEM object class similar to the FEM class, sharing
66   things like shapefunctions.  That would be a lot of work!
67
68 - Separate meshbook.c/meshaccess.c and meshquad.c into separate classes?  Only
69   if there's need for the first two without the third.
70
71 - libjulian is not thread safe by any standards!  Soon, put static variables
72   (like in meshNodeCoords, meshStiffElem etc.) into the appropriate
73   structures, eventually with locks, to eliminate problems of concurrent
74   access to these arrays in different objects.  Or the PETSc approach: have
75   the user provide arrays...
76
77 - Get a real object system, like that of gtk+ (probably glib 2.0), which does
78   inheritance, so we can build a FEM class which sees through to the mesh
79   class, and then a flow class, etc.
80
81 - Make configure.ac look for GNU make (in make, gmake, etc.) and fail without
82   it.  (Then remove that entry from the julian.tex.in FAQ.)
83
84 - Figure out why ilaenv_() returns 1 for dgetri.
85
86 - Change a lot of int types to typedef enums, like element type, and errors.
87
88Documentation:
89
90 - Finish function comments so cxref documentation will be complete.
91
92 - Describe use of the debugging flags in julian.
93
94 - Describe the process of meshing, boundary conditions, solution,
95   visualization in the User's Manual.
96
97Before a release, make sure to:
98 - rm *~ */*~ */*/*~ etc.
99 - Grep through the tree for _( and make sure all files are in po/POTFILES
100 - msgmerge in po to verify the integrity of the translation files
101 - Check documentation (README, doc/julian.tex.in, doc/julian.html.in) for
102   inconsistencies, and update size estimates in julian.html.in
103 - Diff LAPACK C replacements are identical in lapack and julian
104 - make distcheck :-)
Note: See TracBrowser for help on using the browser.