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 ]
