Sweeping is called for when the coefficients of any of the Terms, or the boundary conditions, depend on the solution variable. As I read your problem, with default no-flux boundary conditions, I don't think sweeping is necessary.
> On Aug 29, 2016, at 1:19 PM, Yun Tao <yun...@ucdavis.edu> wrote: > > P.S. Would you recommend "sweeping" in a time-evolving problem that's as > simple as the one in my script? > > On Mon, Aug 29, 2016 at 12:54 PM, Guyer, Jonathan E. Dr. (Fed) > <jonathan.gu...@nist.gov> wrote: > The script as you supplied it had the constraint commented out. You said the > answer doesn't change when you uncomment the constraint, and I'm suggesting > that you need to sweep it because the constraint clearly depends on the > solution. > > Beyond that, I don't understand why you're trying to write a no-flux Robin > condition. FiPy is intrinsically no-flux. What is the real problem that you > are trying to solve that FiPy's intrinsic boundary conditions doesn't already > do for you? > > > On Aug 29, 2016, at 12:37 PM, Yun Tao <yun...@ucdavis.edu> wrote: > > > > Hi Jonathan, > > > > So if I understand correctly, what you're saying is that my script, as it > > is now (without sweeping), is generating incorrect results even though the > > solution appears conserved? > > > > On Mon, Aug 29, 2016 at 9:55 AM, Guyer, Jonathan E. Dr. (Fed) > > <jonathan.gu...@nist.gov> wrote: > > Every time you solve, you change the value of phi, which changes your > > boundary condition, which will change the solution for phi. You need to > > sweep. > > > > > On Aug 26, 2016, at 4:32 PM, Yun Tao <yun...@ucdavis.edu> wrote: > > > > > > Thank you, Jonathan, for the insight. Sorry about my confusion -- I'm > > > still slowly teaching myself the fundamentals as a biologist. > > > > > > I've now read more on the topic. Based on your comments: > > > > > > "By constraining var.faceGrad to zero, you are saying that the boundary > > > flux is > > > \phi b \tanh(alpha*r) (pos-den)/r" > > > This is not a conservative boundary condition. > > > > > > it makes more sense why having var.faceGrad.constrain(0, > > > where=m.exteriorFaces) causes the solution to blow up if advection points > > > rightward toward a point-attractor ("den") and to leak if advection > > > points leftward. > > > > > > I think I've now also correctly set up the Robin BC (line 38 in attached > > > script) -- the solution's integral over space ("cell volume") is indeed > > > conserved at 1 throughout the simulation. However, not defining my > > > boundary condition at all appears to give exactly the same results. Is > > > this because FiPy assumes Robin BC if given no specification? > > > > > > Thanks, > > > Yun > > > > > > > > > On Thu, Aug 25, 2016 at 10:52 AM, Guyer, Jonathan E. Dr. (Fed) > > > <jonathan.gu...@nist.gov> wrote: > > > I'm not sure why you conclude from that example that > > > > > > var.faceGrad.constrain(0, where=m.exteriorFaces) > > > > > > only applies to the advection component. Where does it say that? > > > > > > > > > In the code you sent, with > > > > > > eq3 = TransientTerm() == DiffusionTerm(coeff=D)+ > > > convection(coeff=faceVelocity) > > > > > > the flux is > > > > > > D \nabla \phi + \phi b \tanh(alpha*r) (pos-den)/r > > > > > > By constraining var.faceGrad to zero, you are saying that the boundary > > > flux is > > > > > > \phi b \tanh(alpha*r) (pos-den)/r > > > > > > This is not a conservative boundary condition. > > > > > > > On Aug 24, 2016, at 8:59 PM, Yun Tao <yun...@ucdavis.edu> wrote: > > > > > > > > Hi Dan, > > > > > > > > Wow. I did not expect that at all, thanks for that important > > > > information! I just tried searching for ways to implement the Robin BCs > > > > in FiPy. This site example > > > > <http://www.ctcms.nist.gov/fipy/examples/convection/generated/examples.convection.robin.html> > > > > appears to show that the var.faceGrad.constrain(0, > > > > where=m.exteriorFaces) command I mentioned earlier handles only the > > > > advection component, while, I presume, the diffusion component is > > > > subject to Neumann BCs by default. If that is so, then it's even more > > > > puzzling why having that line in my code blows up the solution, yet the > > > > solution seems well-behaved under just the Neumann BCs. Am I missing > > > > something else here? > > > > > > > > Thanks, > > > > Yun > > > > > > > > On Wed, Aug 24, 2016 at 8:24 PM, Daniel Farrell <boyfarr...@gmail.com> > > > > wrote: > > > > Hello Yun, > > > > > > > > I just briefly looked at the code. Seems like you are solving something > > > > like an advection diffusion problem. This might not help but just I > > > > case ... > > > > > > > > If you want a closed boundary you need to apply Robin boundary > > > > conditions because by definition the flux contains two components: one > > > > related to the diffusion process and one the advection process. > > > > > > > > For example, http://scicomp.stackexchange.com/a/10576/3691 > > > > > > > > Dan > > > > > > > > On 24 Aug 2016, at 22:56, Yun Tao <yun...@ucdavis.edu> wrote: > > > > > > > >> Hi all, > > > >> > > > >> I'm experiencing a bizarre issue when trying to implement zero-flux > > > >> external boundary condition when solving for transient solutions. My > > > >> understanding is that it is the default setting in FiPy 3. Indeed, > > > >> without specifying it, the solutions (attached) remains at unity > > > >> throughout the simulation duration. However, when I manually tried to > > > >> fix the exterior face gradient to zero with var.faceGrad.constrain(0, > > > >> where=m.exteriorFaces), the solution began to blow up (as shown in the > > > >> printed statements). Why does this happen? Is there a hidden conflict > > > >> in conservation settings I should be careful of? > > > >> > > > >> Thanks, > > > >> Yun > > > >> > > > >> > > > >> -- > > > >> Yun Tao > > > >> Postdoc > > > >> Center for Infectious Disease Dynamics > > > >> Pennsylvania State University > > > >> State College, PA 16803 > > > >> <0flux_bc_fipylistserve.py> > > > >> _______________________________________________ > > > >> 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 ] > > > > > > > > > > > > > > > > > > > > -- > > > > Yun Tao > > > > Postdoc > > > > Center for Infectious Disease Dynamics > > > > Pennsylvania State University > > > > State College, PA 16803 > > > > _______________________________________________ > > > > 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 ] > > > > > > > > > > > > -- > > > Yun Tao > > > Postdoc > > > Center for Infectious Disease Dynamics > > > Pennsylvania State University > > > State College, PA 16803 > > > <new_0flux_bc_fipylistserve.py>_______________________________________________ > > > 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 ] > > > > > > > > -- > > Yun Tao > > Postdoc > > Center for Infectious Disease Dynamics > > Pennsylvania State University > > State College, PA 16803 > > _______________________________________________ > > 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 ] > > > > -- > Yun Tao > Postdoc > Center for Infectious Disease Dynamics > Pennsylvania State University > State College, PA 16803 > _______________________________________________ > 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 ]