Newsgroups: sci.physics.plasma
From johncobb@uts.cc.utexas.edu Tue Jan 31 10:02:24 1995
From: johncobb@uts.cc.utexas.edu (John W. Cobb)
Organization: The University of Texas at Austin; Austin, Texas
Subject: Re: High pressure arc lamps

In article <3gjhqq$mc2@mojo.eng.umd.edu>,
Hartwig Wiesmann <lti45@ltihp71.news.rz.uni-karlsruhe.de> wrote:
>I am modelling high pressure arc lamps with a small anode-kathode distance (< 5mm).
>I am using finite elements to calculate numerically the Maxwell equations, the
>energy balance of the plasma and the electrodes including non-linear material
>functions, radiation, etc. All equations are time independent.
>Due to the non-linearity of the equations and the strong response of the material
>functions according to small variations of the temperature I have got serious
>problems: If I put all these equations together the overall systems becomes
>numerically very unstable. Is anyone out there who is working on the same or
>related field with whom I may discuss these problems a bit more detailed?
>

This is a very big question with the possiblity for a great deal of detail
that you may or may not be aware of. If I am repeating the obvious or
being too abbreviated, I apologize beforehand.

My first observation is that you will probably want to use a staggered grid
formulation for the E&M fields. In the finite-element community, I believe
they call it the "Yee method" because someone named Yee first wrote a
paper on its application to finite elements. The key is what points do you
use for the definition of your fields. If I remember correctly (I'm doing this
off of the top of my head -- so check what I say to be sure), One puts the
following quantities at the following points

type        location    example
scalers           vertex            \phi
vectors           edge        E-field
pseudo-vectors    face        B-field
pseudo-Tensors    volume            Div B

Also note that differential operators map one type onto another. For
example:
gradient: scaler  -->   vector
        pseudo-scaler   -->   pseudo-vector,
Div:      vector  -->   scaler
        pseudo-vector -->     pseudo-scaler
Curl:     vector  -->   pseudo-vector
        pseudo-vector -->     vector

These relationships follow quite naturally when you think about them. For
example, the difference between 2 vertex values of a scaler will be the
component of a vector in the direction of their difference in position, i.e.
on an edge. If you want some recent references, one place to look is at the
work of Schnack and Mikic at SAIC.

The trickier part is to look at the plasma terms. Things like density
and velocity go pretty easy, but things like off-diagonal terms of the
dielectric tensor can become involved. You can (re)derive the accurate
relationships by looking at the equations you are simulating. Each term
in the equation should be the same type. So E and Grad \phi are both
vectors and this is consistent with \phi being a scaler. E and V are
vecotrs and B is a psuedo-vector so E + v cross B is a vector (note: vector
cross psuedo-vector gives vector)

So why should you bother to do all of this "staggered grid" stuff? The
reason is that if yolu don't then things like curl grad  = 0  and
div curl = 0 are only obeyed to the accuracy level of your numerical
scheme while the staggered grid formulation preserves these relationships
down to machine accuracy. This is important because even small errors in
things like accumulated charge can dominate a simulation. This may be
the instability you are seeing. Although there are innumerable other
possibilities, if you are not careful, this is usually the one that
bites researchers first. It is very nasty and noticeable but it can
be dealt with.

If this is the problem you are having, and for some reason you do not
wish to use a staggered grid (and there are some reasons, ocaasionally) then
you will want to do something like "divergence cleaning" where you go back
and explicitly "clean up" the small, but deadly truncation error. For
example, when you calculate Curl B and store it in an array, you will
want to take the resulting vecotr field and substract off its
longitudinal part since Curl B should be diveregence-free.

I hope I've helped at least a little.

-john .w cobb

--
John W. Cobb      16% of all Perot voters believe that if Dolphins
                are so smart, they should be able to get out of
            those nets.  --Michael Moore, TV Nation