Daniel Wheeler | 8 Jul 17:08

Re: Programing Differential Equations in Fipy


Hi Zhiwen,

Hope all is well.

On Mon, Jul 7, 2008 at 4:44 PM, Zhiwen Liang <liangz@...> wrote:
> Hi all,
>
> Professor Garcia and I are working on solving some differential equations
> that look different from those that can be assembled by the regular Fipy
> terms. It would be great if you can give us some ideas.
>
> First, we are dealing with terms that are cross differentials with respect
> to different axis. For example, \frac{ \partial^2 \phi }{\partial x \partial
> y}.
>
> Second, the variables that are being solved for are embedded in several
> equations. For example, we want to solve these two equations: (Sorry they
> are not good examples.)
> \frac{\partial^2 \phi_1}{\partial x^2}+\frac{\partial^2 \phi_2}{\partial
> y^2}=0
> \frac{\partial^2 \phi_1}{\partial x \partial y}+\frac{\partial^2
> \phi_2}{\partial x \partial y}=0

We now have anisotropic diffusion, which, I think, deals with the
terms above. For example,

    \frac{\partial^2 \phi_1}{\partial x \partial y}

can be represented by,

    tensor_coeff = ((0, 1), (0, 0))
    DiffusionTerm((tensor_coeff,))

tensor_coeff refers to \Gamma_{ij} in the operator

          \partial_i  \Gamma_{ij} \partial_j

for example.

Basically, the diffusion coefficient can now be a tensor. This gives a
lot more flexibility in the equations that can be defined. We only
have one example of this usage thus far
<http://matforge.org/fipy/browser/trunk/examples/diffusion/anisotropy.py>.

For your equations above, it might be worth transforming the variables
to something like, psi_1 = phi_1 + phi_2 and psi_2 = phi_1 - phi_2.

BTW I'm assuming you are not asking a question about solving two
equations and two unknowns. Correct?

> And I wonder if there are people trying to solve for elasticity problems
> using Fipy.

There has been some chatter, but I am not sure how successful attempts
have been <http://search.gmane.org/?query=elasticity&group=gmane.comp.python.fipy>.

Cheers

--

-- 
Daniel Wheeler


Gmane