In the spirit of keeping things easy to follow, I've rembedded below your answer/questions.
Retreating to more mundane topics, I'm solving the heat equation on a grid >> of discontinuous conductivities. Though I initially thought of the problem >> as having a conductivity in every cell, I realized that this is only a >> "shadow" of the problem as it is solved by FiPy, since the cell variables >> are converted to face variables. To make sure I had control over this >> process, I went ahead and explicitly created a FaceVariable conductivity and >> used the getHarmonicFaceValue (vice getArithmeticFaceValue) to convert my >> CellVariable conductivities into the appropriate FaceVariable values. >> > > Why are you explicitly creating a FaceVariable? The method > getHarmonicFaceValue will return a FaceVariable that updates itself whenever > the CellVariable values change. Everything is updated implicitly. > I created a face variable just to have a place to stick the results. I think your point is that wherever I use that new variable, I could instead put the getHarmonicFaceValue call on the original cell variable. This avoids having them get out of sync. That seems a better way to go and I'll try that instead for the future. As an aside, I've seen in several of these e-mail exchanges questions to users about "why are they using FaceVariables," and I think part of the answer is that the manual sort of points you down this road. In particular, I guess that's how I interpreted the discussion on page 51 of version 1.2 of the manual in FAQ 6.6. I now note that in the later examples calls to getHarmonicFaceValue are demonstrated. However, I never got that far into the examples, just far enough to be dangerous. > > >> >> Based on how the solver is thinking about the problem, I've concluded that >> the right way to visualize the results is by plotting big dots whose colors >> correspond to temperatures at the cell centers, and then connect the dots by >> lines whose widths are proportional to the conductivities between the >> cells. My question is this: since i'm using a rectangular non-square mesh, >> do I need to adjust the face values I stored by some geometric parameter to >> get the right conductivities for my visualization? >> > > I'm a little confused. Let me get it straight. You are solving the heat > equation on a regular square or rectangular mesh. Correct? You want to plot > dots with color at the cell centers. You then want to drawlines between cell > centers with widths that are proportional to the size of the conductivities > at the faces. One thing is that it might be nicer to make the length of the > lines proportional to the conductivity. In answer to your question, the > conductivity at the faces is correct as calculated by getHarmonicFaceValues > so I'm not sure why that needs to be modified. > Sorry, this is horribly explained. The core of the confusion I'm generating is that I'm confusing conductance and conductivity. What I want to show are conductances, which should be the face value conductivity times the face width divided by the distance between the adjoining cell centers. Is that correct? BTW, I'm using widths instead of lengths to represent conductances because it lets me put the circles where I like. If I use line lengths, they start to push my circles around (or I suppose become curves).
