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. <br>
<br>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).<br>
<br>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.<br>
<br>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.<br>
<br>The two largest contributors to the 57 minutes are preprocessing (especially generating GroupsOfNodesOf, 27.5 minutes) and generating the system of equations (29 minutes).<br><br>What is GetDP doing during all that time? Are these operations inherently this time-consuming? <br>
<br>John<br>