Hi, Krishna. Just to make sure, do you mean that the boundary condition is a derivative with respect to the spatial variable or with respect to time as-written? If you mean spatial, such that d\phi/dx = k*phi, have you tried phi.faceGrad.constrain(k*phi) and that didn't work? If you mean that its value is prescribed by its rate of change, then I'm not sure the best way to do it. Could you maybe do it explicitly? - Store the values from the last time step with hasOld set to True in the creation of the cell variable - In each time step, calculate the backward-Euler time derivative manually and then set the value of phi with the phi.constrain method.
Ray On Wed, Jun 8, 2016 at 6:26 PM, Gopalakrishnan, Krishnakumar < [email protected]> wrote: > I am trying to solve the standard fickean diffusion equation on a 1D > uniform mesh in (0,1) > > > > $$\frac{\partial \phi}{\partial t} = \nabla.(D \nabla\phi)$$ > > > > with a suitable initial value for $\phi(x,t)$. > > > > The problem is that, one of my boundary conditions is *implicit*, i.e. is > a function of the field variable being solved for. > > > > $ \frac{\partial\phi}{\partial t} = k \phi $ , at the right boundary edge, > k = constant > > > > The left BC is not a problem, it is just a standard no-flux BC. > > > > How do I cast this *implicit BC* in FiPy ? Any help/pointers will be much > appreciated. > > > > > > Best regards > > > > Krishna > > Imperial College London > > _______________________________________________ > 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 ]
