Hello, I first want to thank the Fipy devs for making this great tool and eliminating the need for me to write my own finite differencing code. Fantastic!
I seem to be, however, having a little bit of trouble sufficiently defining my problem for Fipy. I am trying to model simple heat conduction through a fin. My boundary condition are: Constant T and the fin base, Adiabatic right and top surface, constant convection coefficient (h) at the left surface. That is, at the left surface, the flux leaving the fin is of the form q'' = h ( T - Tinf ). I believe my problem (if there even is one) is in specifying this last boundary condition. Gleaning the code from a previous list posting, i've put this together: #-------------- Code -------------------------# This should be a forever-good pastebin: http://pastebin.com/f18a5a735 #-------------- /Code --------------------------# Apart from my non PEP-8 line lengths, the issue I'm having is that, if I use a realistic coefficient for thermal diffusity (~2.3e-5 for water) I have to use super small time-steps and a painfully long simulation run to get close to steady state. (but perhaps this is normal for this type of problem?) Now, since i'm only interested in steady, I figured I could just jack up the diffusivity coefficient to 1. and then I can use the step sizes you see in the code, but I dont know how valid this is? Also, I tried modeling the problem using an ImplicitSource() term ala the doc examples but I could never get it to work. First, FaceVariable(..., rank=1); the "..." is invalid python syntax, and I couldn't find in the manual what that is supposed to represent. When I let the ellipsis just equal my mesh, I seem to be unable to set the left side of mesh to take values depending on T (to model the correct flux term). I always get numpy broadcasting complaints when trying to set value to a non-scalar value. Any ideas on this? I have one more question, which is likely a product of my ignorance with PDE's. (i'm not a heat xfer or fluids guy :) ). What does .getDivergence() actually represent. i.e. what does it do, and why is it required? Is this related to the Divergence vector operator? Thanks for any help! Cheers, Chris
