| 1 | Technical/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 | |
|---|
| 26 | Programming 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 | |
|---|
| 88 | Documentation: |
|---|
| 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 | |
|---|
| 97 | Before 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 :-) |
|---|