Understood. I think you will find that a 2000x2000 2D problem (assuming you 
have enough RAM) will not take anything like 7.5 h.

> On Jul 24, 2018, at 3:49 PM, Carsten Langrock <[email protected]> wrote:
> 
> I tried a few solvers for this 1D diffusion problem and it does indeed appear 
> that pySparse is faster than the rest. Sadly, faster doesn’t equate to fast … 
> about 4 seconds for a 2000 grid, 440 time steps nonlinear diffusion process 
> using a single sweep. For the second part, which opens the left boundary and 
> forces it to zero, it takes another 9.5 seconds when choosing 3 sweeps. And 
> that’s on a fast computer.
> 
> Thanks again for pointing out the use of different solvers.
> 
> 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) 
>> <[email protected]> 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 <[email protected]> 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
>> [email protected]
>> http://www.ctcms.nist.gov/fipy
>> [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
>> 
>> 
>> 
>> _______________________________________________
>> fipy mailing list
>> [email protected]
>> http://www.ctcms.nist.gov/fipy
>> [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
> _______________________________________________
> fipy mailing list
> [email protected]
> http://www.ctcms.nist.gov/fipy
>  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]


_______________________________________________
fipy mailing list
[email protected]
http://www.ctcms.nist.gov/fipy
  [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]

Reply via email to