[Getdp] Current computation

Christophe Geuzaine geuzaine at acm.caltech.edu
Mon Mar 10 22:48:11 CET 2003


Hello Florin,

Florin CIUPRINA wrote:
> Hello,
> 
> I'm new with GetDP, and I'm trying to compute the global current flowing 
> through a L-shape
> conductor (3D) in electrical conduction formulation. I now that it is 
> not something new under the sky, but
> I have tried to do this using GetDP Manual
> and the very useful information found on your mailing list, and 
> unfortunately I failed. So I decided to
> bother you with a question which was already asked.
> I obtained the current density (j) and I tried to integrate it (as 
> others did) on the surfaces (named "Hot" and "Ground")
> where I imposed the Dirichlet conditions. I retained your advice that 
> Hot an Ground have to be parts of whole region
> (DomainC_Ele) and I used
> 
> DomainC_Ele = Region[{Conductor,Hot,Ground}];
> 
> I obtained the solution, but I obtained the messages
> 
> GetDP : P r o c e s s i n g . . .
> GetDP : Error     : Null determinant in 'Get_InverseMatrix'
> 
> and
> 
> GetDP : P o s t - P r o c e s s i n g . . .
> GetDP : Warning   : Zero determinant in 'Cal_PostQuantity'
> 
> and the current was null.

You get the "Null determinant in 'Get_InverseMatrix'" message because
you try to integrate on a surface (Hot, Ground) with a volume Jacobian
(which is singular in that case). You should not add Hot and Ground in
the integration domain.

> Then, tried also with DomainC_Ele without Hot and Ground
> 
> DomainC_Ele = Region[{Conductor}];
> 
> and I obtained the solution without any error message, but  the integral 
> for current on
> Hot (or Ground) was (obvious) null. What is wrong?

In this case, Hot and Ground are missing from the Support of your
FunctionSpace, which will always cause the interpolation on Hot and
Ground to return zero...

*BUT*, even with Hot and Ground specified in the Support of your
FunctionSpace, your PostOperation will still not return anything
interesting, since the interpolation of grad v on the surface will only
return its tangential component. And the potential being constant on
these surfaces (you have Dirichlet BC), you'll just get zero (again ;-).

To get the normal component, you need to somehow take into account
the volumic interpolation of the field close to the surface (you want to
compute the normal trace of j, which depends on the side of the surface
you consider). There are two ways to do it at the moment:

- define a "Cut" PostOperation close to the surface, but not on the
surface. GetDP will interpolate the value of j on this cut using the
volumic elements, which will give you what you need. The drawback is
that there is nothing in GetDP at the moment that permits to integrate
the resulting values on this cut in order to compute the global current;

- do a volume integration using the method described in Patrick's paper
(P. Dular et al, IEEE Transactions on Magnetics, Volume 34, Issue 5,
Sep 1998, Pages 3078-3081). You can find an implementation of this
method at the end of the Plate.pro file attached to this message:
http://www.geuz.org/pipermail/getdp/2003/000449.html.

Christophe

-- 
Christophe Geuzaine

Tel: (626) 395-4552    http://www.geuz.org
Fax: (626) 578-0124    mailto:geuzaine at acm.caltech.edu