[Getdp] Floating potentials in 3D: long execution times

John_V jvillar.john at gmail.com
Wed May 25 17:54:16 CEST 2011


I am using GetDP to calculate the potential in a 3D geometry of mixed
conductors and insulators. The calculation is repeated frequently with
different charge distributions, so CPU time is important. Even though my
mesh has ~400k nodes, with some experimenting I have been able to get good
solutions in about 90 seconds, provided all the conducting surfaces have
Dirichlet boundary conditions.

I need also to be able to deal with floating conductors, however. My first
attempt at this was to treat the floating conductor as if it were a
dielectric with very large dielectric constant. The problem with this
approach is that it degrades the condition of the matrix. I have to use the
ILUP preconditioner (~12 minutes to compute) instead of the faster ILU0 one
(0.3 seconds).

The discussion of floating potentials in the manual gave me hope of a better
alternative. Bernhard Kubicek's "Capacitor2D" example on the Wiki showed the
way, The method is very elegant, based I think on basis functions for groups
of nodes as described in the paper by Dular, Legros, and Nicolet in IEEE
Trans. Magnet. 34 (1998). I have implemented this for my 3D geometry.

As I hoped, doing it this way let me return to the fast ILU0 precondition.
However, time gained here is lost elsewhere. Execution times are VERY large.
It requires a total of 57 minutes CPU time for this method on my mesh.

The two largest contributors to the 57 minutes are preprocessing (especially
generating GroupsOfNodesOf, 27.5 minutes) and generating the system of
equations (29 minutes).

What is GetDP doing during all that time? Are these operations inherently
this time-consuming?

John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/getdp/attachments/20110525/116eeb1b/attachment.html>