Hi Carsten,

Have you looked at:

https://www.ctcms.nist.gov/fipy/documentation/EFFICIENCY.html

http://nbviewer.jupyter.org/github/wd15/fipy-efficiency/blob/master/notebooks/FiPy-IPython.ipynb

https://www.mail-archive.com/fipy@nist.gov/msg03180.html  thread

I struggled to install weave and get --inline working.  I didn't use it
much yet, but my initial impression was the speedup was modest.

Remeshing seems like a great possibility for making problems such as
examples.phase.anisotropy run faster (use higher mesh density at the
interface), but I am afraid that FiPy architecture (lazy evaluation etc)
could interfere.  I hope you share what you find with remeshing.

Thanks

On Tue, Jul 24, 2018 at 10:56 AM Carsten Langrock <langr...@stanford.edu>
wrote:

> Thanks for pointing out the performance order of the solvers. I’ll try to
> get pySparse to work to compare it other solvers. It’s also good to know
> that I shouldn’t give up on 2D just yet;-)
>
> Regards,
> Carsten
>
> _____________________________________
> *Dipl.-Phys. Carsten Langrock, Ph.D.*
>
> Senior Research Scientist
> Edward L. Ginzton Laboratory, Rm. 202
> Stanford University
>
> 348 Via Pueblo Mall
> 94305 Stanford, CA
>
> Tel. (650) 723-0464
> Fax (650) 723-2666
>
> Ginzton Lab Shipping Address:
> James and Anna Marie Spilker Engineering and Applied Sciences Building
> 04-040
> 348 Via Pueblo Mall
> 94305 Stanford, CA
> _____________________________________
>
> On Jul 24, 2018, at 6:11 AM, Guyer, Jonathan E. Dr. (Fed) <
> jonathan.gu...@nist.gov> wrote:
>
> FiPy still does not support remeshing.
>
> As Dario said, choice of solver can make a big difference. I've not used
> PyAMG much, but PySparse is dramatically faster than SciPy. PyTrilinos is
> slower than PySparse, but enables you to solve in parallel.
>
> I've also found that 2D problems solve much better than the 1D performance
> would lead you to believe. There's just a lot of overhead in setting up the
> problem and the Python communication with the lower-level libraries.
>
>
> On Jul 23, 2018, at 6:44 PM, Carsten Langrock <langr...@stanford.edu>
> wrote:
>
> Hi,
>
> Thanks for the help with getting FiPy running under Linux! I am trying to
> re-create a 1D nonlinear diffusion problem for which we have C++ code that
> uses the implicit Thomas algorithm based on
>
> J. Weickert, B. Romerny, M. Viergever, "Efficient and Reliable Schemes
> for Nonlinear Diffusion Filtering”, IEEE transactions on Image Processing,
> vol.7, N03, page 398, March 1998
>
> I have been able to get results in FiPy that match this code very closely
> which was a great start. Our C++ code uses a fixed number of spatial points
> and a fixed time step, but re-meshes space to most efficiently use the size
> of the array; it increases the spatial step size by 2 whenever the
> concentration at a particular point reaches a set threshold. I tried
> implementing this in FiPy as well, but haven’t had much luck so far. I saw
> an old mailing-list entry from 2011 where a user was told that FiPy wasn’t
> meant to do remeshing. Is that still the case?
>
> I’d imagine one would somehow need to update the Grid1D object with the
> new ‘dx’, but since the CellVariable that holds the solution was
> initialized with that mesh object, I am not sure that such a change would
> propagate in a sensible fashion. I think I know how to map the value of the
> CellVariable to account for the change in ‘dx’ by
>
> array_size = 2000
> phi.value = numpy.concatenate((phi.value[1:array_size/2:2],
> numpy.zeros(1500)))
>
> for the case when the initial variable holds 2000 spatial points. Maybe
> there’s a more elegant way, but I think this works in principle.
>
> Another question would be execution speed. Right now, even when not
> plotting the intermediate solutions, it takes many seconds on a very
> powerful computer to run a simple diffusion problem. I am probably doing
> something really wrong. I wasn’t expecting the code to perform as well as
> the C++ code, but I had hoped to come within an order of magnitude. Are
> there ways to optimize the performance? Maybe select a particularly clever
> solver? If someone could point me into the right direction that’d be great.
> In the end, I would like to expand the code into 2D, but given the poor 1D
> performance, I don’t think that this would be feasible at this point.
>
> Thanks,
> Carsten
>
> _____________________________________
> Dipl.-Phys. Carsten Langrock, Ph.D.
>
> Senior Research Scientist
> Edward L. Ginzton Laboratory, Rm. 202
> Stanford University
>
> 348 Via Pueblo Mall
> 94305 Stanford, CA
>
> Tel. (650) 723-0464
> Fax (650) 723-2666
>
> Ginzton Lab Shipping Address:
> James and Anna Marie Spilker Engineering and Applied Sciences Building
> 04-040
> 348 Via Pueblo Mall
> 94305 Stanford, CA
> _____________________________________
> _______________________________________________
> fipy mailing list
> fipy@nist.gov
> http://www.ctcms.nist.gov/fipy
> [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
>
>
>
>
> _______________________________________________
> fipy mailing list
> fipy@nist.gov
> http://www.ctcms.nist.gov/fipy
> [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
>
> _______________________________________________
> fipy mailing list
> fipy@nist.gov
> http://www.ctcms.nist.gov/fipy
>   [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
>
_______________________________________________
fipy mailing list
fipy@nist.gov
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to