root/branches/variableMeshes/documentation/TODOLIST.txt

Revision 1859, 7.0 kB (checked in by wd15, 4 years ago)

Commiting windows test case fix from version-1.1 branch

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1-----------
2Future Work
3-----------
4
5Long term Goals
6---------------
7
8- Turn off sourceforge tracker
9
10- Different tracker items in Trac
11
12- Tarball of the repository
13
14- Get a decent dendritic simulation working. Figure out why out dendrite doesn't look
15  as cool as Jim's. Why do we have thin little arms and interface splitting?
16
17- Allow some keyword parameters to be passed to the plot() methods of viewers
18
19- Update Mayavi viewers to use TVTK (much better according to Prabhu) instead of PyVTK.
20  Should be able to remove all uses of PyVTK.
21
22- Add axi-symmetric test case
23
24- Add dendrite pic
25
26- include dophyn comparison in efficiency discussion
27
28- multipy a term by a CellVariable or constant.
29
30- Boundary conditions should be able to take CellVariables or FaceVariables as values and pull out the correct values.
31
32- Level set
33
34  * refactor to use basic types, make level set code work independently of FiPy
35  * unstructured grids
36  * 3D grids
37  * input files should not refer to equation objects
38  * Superfill manual
39
40- other stuff
41
42  * clean up variable-vector-numerix-physicalfield interactions
43
44    - merge fipy.tools.variable into numerix.
45    - merge phsycial field and variable
46    - get rid of most references to Numeric function in the code
47    - maybe even get rid of many explicit calls to Numeric function calls in numerix.
48
49      * e.g. looks in numerix, no sin function
50      * numerix then passes Numeric's sin function to Variable's apply method and hey presto
51        a new variable is returned. Sounds like science fiction......
52      * is there a way to do this automagically??? (using __array__ or something)
53
54    - Definetly most of these functions need not be in Variable and numerix
55
56  * Reduce run time
57
58    - Choose external references
59
60      * Ryo's code
61      * Spectral MATLAB CH problem
62      * DOLFIN (has similar python objects)
63      * Dolfyn
64
65- Functionlity
66
67  * Flow solver using Dolfyn comparison
68
69    - Get better results compared with Dolfyn
70
71      * Higher order Implicit Diffusion
72      * Higher order explicit diffusion
73      * Wall boundary condition
74      * Improved mass flux evaluation
75      * Extrapolation of cell values to boundaries using gradients
76
77    - Add convection term to Navier-Stokes and compare with Dolfyn
78    - Add transient term and compare with Dolfyn
79    - Efficieny tests of Dolfyn against FiPy
80
81- Implement some PETC solvers
82
83- Investiagte using VISION for some simple FiPy examples.
84
85- Improve BC doc, make clear no internal BCs   
86
87- The reference manual should have a 'returns' section similar to 'parameters' for methods and functions.
88
89- Include some examples on the web page.
90
91- Dimensions are semi-broken, e.g.,
92  examples/elphf/diffusion/input1Ddimensional.py
93  Also, numerix inverse trig operations should return an angular
94  quantity, rather than a raw number.
95
96- Automatic conversion of dimensionless PhysicalField to simple
97  number or array should be done in `__array__` method, not in
98  `__mul__` and __div__.
99
100- make ConvectionTerm -> BaseConvectionTerm, PowerLawConvectionTerm -> ConvectionTerm
101
102- make eqns auto generate their Peclet numbers
103
104- Documentation:
105
106  * Examples:
107 
108    - 1000*1000 example for efficiency discussion.
109
110- Distribution
111
112  * freeze or py2exe for CEAC stand-alone
113
114    - viewer? GPL or GLL for gnuplot?
115
116- Functionality:
117
118  * Multigrid method.
119  * Cell centered FVM.
120  * Multilevel preconditioners
121  * Adaptive meshing.
122  * Linear Algebra:
123
124    - Petc.
125    - SciPy.
126    - matpy
127       
128  * Look into pyrex as an alternative to inlining.
129  * Laminar Fluid Flow module.
130  * DX viewer.
131  * Pass ``PhysicalField`` back to `Konrad Hinsen`_.
132  * Found group of solvers from sandia called Trilionos
133    http://software.sandia.gov/trilinos
134  * As a stop gap measure for 4th and 6th order terms,
135    find an implementation of incomplete cholesky factorization.
136
137- Refactoring:
138
139  * Use an array module rather than Numeric and switch to numarray.
140
141  * Global approach to phase field equations.
142
143  * Make the ``build_docs`` just update the files that have changed since
144    the last build.
145   
146  * Merge ``term`` and ``equation`` objects into one object:
147
148    - Boundary conditions should just be terms.
149   
150  * Reconcile variable operators and terms
151
152    - Apply boundary conditions to variables instead of terms
153    - Equations should be stated in terms of variable operators.
154    - For example a DiffusionTerm is represented by var.getGrad().getDiv()
155    - getGrad() and getDiv() should calculate matrices and then use the matrices
156      either as part of the solution scheme or explicitly if one just requires the value.
157    - The convection term would have a special operator
158    - One problem is that terms are really volume integrals while operators
159      are just differences. Thus all operators would be volume integrals
160      and then divide through be the volume when asked by getValue()
161    - The first step would be to make operators use the terms to evaluate themselves.
162      i.e.::
163
164          DivGradVariable(CellVariable):
165              def __init__(self, var)
166                  self.var = var
167                  self.matrix =  ImplicitDiffusionTerm.getMatrix()
168
169              def getMatrix(self, ...):
170                  return self.matrix
171             
172              def getValue(self)
173                  return ImplicitDiffusionTerm.getMatrix() * self.var.getValue() / self.mesh.getCellVolumes()
174
175     - Next step would be to move the terms to the operator variables.
176     - We are now moving terms into variables and that may have hidden benefits.
177     - This philosophy should apply to all terms including transient terms.
178     - Basicly terms are being abandoned in favor of variable objects.   
179
180  * Use ``doctest`` exclusively.
181
182  * Major mesh refactor:
183
184    - Remove separate ``nummesh`` and ``pymesh`` structure
185    - Think about the ``mesh`` hierarchy as it stands:
186
187      * Many branches at present.
188      * Consolidate functionality (``__add__`` etc).
189      * How does Gmsh fit in?
190
191    - Lazy mesh array evaluations.
192    - support for meshes in higher spaces.
193
194  * Viewers:
195
196    - Use viewers in scipy that are similar to gist and remove gist (?).
197
198- Documentation:
199
200  * Write a paper on FiPy.
201  * Better documentation in Reference.pdf
202
203- Efficiency
204
205  * Automatic inlining
206  * Cache mesh calculations
207  * Caching/building sparse matrices?
208  * NthOrderDiffusionTerm
209
210    - recursive stencil vs. recursive matrix?
211    - special case lower orders?
212    - compare/merge n=2 to ImplicitDiffusionTerm
213
214  * Track down general inefficiencies
215
216    - len(get.xxx()) vs. getNumXXX()
217    - array conversions
218
219  * SciPy linear algebra vs. PySparse
220
221    - solution efficiency
222    - matrix manipulation efficiency
223 
224  * NumArray vs Numeric
225
226    - encapsulate array class
227
228.. _SourceForge CVS repository:       http://www.nist.gov/cgi-bin/exit_nist.cgi?url=http://cvs.sourceforge.net/viewcvs.py/fipy/
229.. _Steve:                            mailto:slanger@nist.gov
230.. _Konrad Hinsen:                    mailto:hinsen@cnrs-orleans.fr
231.. _Roman Geus:                       http://www.nist.gov/cgi-bin/exit_nist.cgi?url=http://people.web.psi.ch/geus/
232
Note: See TracBrowser for help on using the browser.