On Mon, Apr 7, 2014 at 2:08 PM, Charles Reid <[email protected]> wrote:
> What I'd like to be able to do is assign a term to a CellVariable, so that I > could perform the AB2 averaging with the current value of the variable and > the old value of the variable, something like this: > > -----------------8<---------------------- > > MyConvectionTerm = CellVariable(mesh=m, hasOld=True, value=0.) > > MyConvectionTerm = ConvectionTerm(mycoeff) # initial convection term value > > while t < ttotal: > > [...] > > ContinuityConvection.updateOld() > MyConvectionTerm = (3./2.)*ConvectionTerm(mycoeff) - > (1./2.)*MyConvectionTerm.old() > > [...] > > ------------------8<------------------------- > > However, I can't figure out how to make terms and variables compatible. Any > ideas on how I can do this? How can I store old values of terms? Hi Charles, I would say that shoehorning terms to have the properties of variables is probably not the best way to go. Having said that, I am not sure how best to approach this problem. Adams Bashforth schemes do multiple steps so it seems like it's sensible to make each step a new equation. However, the terms in the equations take variables from old values and old-old values and so on. Also once a term is evaluated it would be nice to use that in subsequent equations. For multiple steps this might be quite difficult as things stand in FiPy. However, as you only seem to be doing one step above, maybe you should be using an ExplicitConvectionTerm rather than trying to construct "MyConvectionTerm.old()". Cheers, Daniel -- Daniel Wheeler _______________________________________________ fipy mailing list [email protected] http://www.ctcms.nist.gov/fipy [ NIST internal ONLY: https://email.nist.gov/mailman/listinfo/fipy ]
