On Nov 23, 2009, at 12:48 PM, S. Chris Colbert wrote:

At the end of the iterations (~17 hours of "virtual" time) the problem is more
or less at steady state. Given the size of the chunk of metal, and
comparatively low wattages involved, this seems like an appropriate number.

Glad it's working for you.

In determining where I needed to fix my units, I think i found an error in the Fipy user manual, with regards to using a Robin condition to simulate a Neumann condition when there is no convection term. The manual states that the user should divide through by the diffusion coefficient, when I think it should
actually be multiply through by the diffusion coefficient.

I'll let Dan Wheeler field this.


With my new, properly formed, problem, if I drop the transient term and do an
eqn.solve(T, boundaryConditions=BCs), I do not get the same solution.
Is there a different way to solve for the steady solution directly?

No, that's it, when it works. In this case, I'm not sure what you mean when you say you do not get the same solution. If I remove the TransientTerm, this problem does not converge at all. Although this problem does not seem to support direct steady-state solution, you can certainly increase the timestep considerably (x100 is stable; I leave it to you to assess accuracy).


    outCoeff = (mask * [[0], [-h]]).getDivergence()
What does this line ^^^ do? particularly the mask*[[0], [-h]] part?
That's really throwing me for loop.

[[0], [-h]] is a vector, pointing down [*]. mesh.getFacesBottom() is a rank-0 FaceVariable that is False everywhere except the bottom faces. (mask * [[0], [-h]]) thus represents a rank-1 FaceVariable holding a downward-pointing vector only on the bottom faces.

[*] Strictly, "[[0], [-h]]" is a two-element Python list containing two one-element Python lists of 0 and -h, respectively. FiPy recognizes "FaceVariable(...) * [[0], [-h]]" and returns a rank-1 FaceVariable. It's just a convenient shorthand for "FaceVariable(...) * Variable([[0], [-h]])". The rules of Python parsing are such that FiPy never gets a chance to look at the commutative expression "[[0], [-h]] * FaceVariable()", so that would throw an error.


Reply via email to