(Ignore the message earlier, I accidently hit send early) (Summary "TL;DR" at the end of the mail)
Dear FiPy users and developers, I am currently solving a wider range of problems with FiPy and really like the package. I sincerely appreciate the work put into writing FiPy. However, solving even 2D problems can be rather slow, but I noticed some common traits in my simulations: Timestep, mesh and boundary conditions rarely or never change during a simulation run, thus the system matrix of the resulting equation system doesn't change. FiPy however creates the system matrix and does the LU decomposition (or another solver of course) at every time step. Instead it would be much more efficient to give an option in the solver to use the previous LU-decomposition for the new time step and only update the right hand side of the equation at every time step. I started implementing a solver which reuses the previously done LU-decomposition. This already works without any modifications to the rest of the FiPy code. The construction of the system matrix and right hand side however required me to modify some of the existing modules. Furthermore I would like to use cython to further speed up critical loops and calculations, which would further change some "core" FiPy modules and handling... In the end I think it is really worth it, considering I can see an up to a ~100 times speed up for simulations under the above mentioned conditions. I would appreciate contact to anyone who has developer experience with FiPy to discuss my implentations to keep them in line of the structure of the FiPy project/code. Have a nice day. Cheers Oliver Haas TL;DR: I might have significant improvements to FiPy and I am implementing right now. I would like to have contact to some experienced developers of FiPy to decide about the structure of my contributions.
_______________________________________________ fipy mailing list [email protected] http://www.ctcms.nist.gov/fipy [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
