FastFieldSolvers Forum
FastFieldSolvers Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 FastFieldSolvers
 FasterCap and FastCap2
 Dielectric capacitor

Note: You must be registered in order to post a reply.
To register, click here. Registration is FREE!

Screensize:
UserName:
Password:
Antispam question: What do MOONwalk and MOONdance have in common?
Answer:
Format Mode:
Format: BoldItalicizedUnderlineStrikethrough Align LeftCenteredAlign Right Horizontal Rule Insert HyperlinkInsert EmailInsert Image Insert CodeInsert QuoteInsert List
   
Message:

* HTML is OFF
* Forum Code is ON

 
   

T O P I C    R E V I E W
tbell Posted - May 31 2019 : 16:58:40
Hi
I am modelling a parallel plate capacitor filled with a dielectric medium, and varying permittivity of the dielectric to see how capacitance varies. My input file is as follows:
* dielectric capacitor

C tplate.txt 1.0 0.0 0.0 1.1 +
C tplate.txt 5.0 0.0 0.0 1.0 +
C tplate_sides.txt 1.0 0.0 0.0 1.0
C bplate.txt 1.0 0.0 0.0 -1.1 +
C bplate.txt 5.0 0.0 0.0 -1.0 +
C bplate_sides.txt 1.0 0.0 0.0 -1.1
D dielec_sides.txt 1.0 5.0 0.0 0.0 -1.0 0.0 0.0 0.0 -

I find that as I reduce the permittivity, the capacitance scales roughly linearly
perm | cap (nF)
---------------
1.2 | 2.7
1.5 | 3.03
2.0 | 3.9
5.0 | 9.2
10.0 | 17
20.0 | 35

But if I set the relative permittivity to 1.0, I obtain a capacitance of 3.45nF, greater than the values for 1.2 and 1.5. This doesn't seem correct to me, I thought the capacitance should be smallest for no dielectric. Am I doing something wrong?
My component files are here:
* tplate

Q tplate 10.0 10.0 0.0 -10.0 10.0 0.0 -10.0 -10.0 0.0 10.0 -10.0 0.0

* tplate_sides

Q tplate -10.0 -10.0 0.0 -10.0 -10.0 0.1 10.0 -10.0 0.1 10.0 -10.0 0.0
Q tplate -10.0 10.0 0.0 -10.0 10.0 0.1 10.0 10.0 0.1 10.0 10.0 0.0
Q tplate -10.0 10.0 0.0 -10.0 10.0 0.1 -10.0 -10.0 0.1 -10.0 -10.0 0.0
Q tplate 10.0 10.0 0.0 10.0 10.0 0.1 10.0 -10.0 0.1 10.0 -10.0 0.0

* dielec_sides

Q dielec_sides -10.0 -10.0 0.0 -10.0 -10.0 2.0 10.0 -10.0 2.0 10.0 -10.0 0.0
Q dielec_sides -10.0 10.0 0.0 -10.0 10.0 2.0 10.0 10.0 2.0 10.0 10.0 0.0
Q dielec_sides -10.0 10.0 0.0 -10.0 10.0 2.0 -10.0 -10.0 2.0 -10.0 -10.0 0.0
Q dielec_sides 10.0 10.0 0.0 10.0 10.0 2.0 10.0 -10.0 2.0 10.0 -10.0 0.0

bplate is identical to tplate but differently named
5   L A T E S T    R E P L I E S    (Newest First)
Enrico Posted - Jun 04 2019 : 11:21:51
Dear Tom,

the main idea is that if you know your geometry, you can 'calibrate' the solution parameters as they will be similar from simulation to simulation.
As a strategy, you may start with some automatic simulations, and see in how many solve iterations you converge, the number of GMRES iterations, and how the values change from solve iteration to solve iteration, while considering also the '-d' parameter in case you have high geometrical ratios.

One criteria you may apply in the 'calibration' is to run the same simulation lowering -d, and/or look for the number of panels from one solve iteration to the next one. FasterCap forces to have at least +10% panels in subsequent solve iterations, but in general, a low increase in the number of panels may be a flag of local minimum. In case of doubts, you can manually run the simulation working on -m (increasing it) and see if the result changes significatively.

Once you have 'calibrated' your solution, you may run subsequent simulations with similar -m and -d parameters, as well as the preconditioner of your choice - sometimes Jacobi works best, while the two-level is better for hierarchical geometries but sometimes it may increase the number of iterations.

But, this is not a cure for long and thin triangles, as we discussed in another thread. The problem with long and thin triangles is that breaking them up does not remove the small angle; this requires a smoothing pass in the triangulation, keeping only the edges that were defining the actual contour, and not the ones that are created by the triangulation (this is a so-called constrained triangulation).

Best Regards,
Enrico
tbell Posted - Jun 03 2019 : 18:31:04
Ok I see, thank you. I think this issue may have been affecting some of my other experiments as well, as I was getting outlying and inconsistent data points for some simulations that were running significantly faster than others.

In general, how can I tell if I am hitting these local minima?

Other than thin samples needing a reduced -d parameter, are there any other situations that commonly arise that I should be aware of when selecting run parameters?

Tom
Enrico Posted - Jun 03 2019 : 17:31:45
Ok I understood your problem. I was running the simulations in manual mode, as if you know the level of refinement you want for a set of similar simulations, you can run the automatic mode only once, and use similar parameters for the others. So I ran the 5.0 case first, and re-used the parameters for the others.

Now, all the dielectric cases force some additional large panels into the simulation, that cause further refinement. You see that from the iteration numbers (the overall ones, not the GMRES iterations).

In the 1.0 case, the dielectric sides are removed - the same of course if you remove them yourself. In this case you hit a local minimum during the iterations. In general, if you have small width ratios (as in your capacitor plates, that are large and thin, even if this is not an extreme ration), we advise to lower the -d parameter. Going to 0.8 avoids the local minimum for this case.

Otherwise, you can do the same I did - run the simulation for 5.0 and then go in manual mode using the the -m parameter that is reported at the last iteration ("Max Mesh relative refinement value: 0.000243206"). You actually can use the iteration N-1 value, as at N the difference w.r.t. N-1 is less than the tolerance you set (but you did not know that before running the simulation)

Full copy&paste of last iteration follows:

Iteration number #6 ***************************

***************************************
Increasing the geometric refinement.. 
Warning: dummy dielectric-dielectric interface found in the input file, skipping
Refinement completed
Mesh refinement (-m): 0.00024336
***************************************
Computing the links.. 
Number of panels after refinement: 8832
Number of links to be computed: 5643200
Done computing links
***************************************
Precond Type(s) (-p): Two-levels, two-levels preconditioner dimension (-ps): 1024 
GMRES Iteration: 0 1 2 3 4 5 6 7 8 9 
GMRES Iteration: 0 1 2 3 4 5 6 7 8 9 
Capacitance matrix is:
Dimension 2 x 2
g1_tplate  2.6156e-009 -2.14825e-009 
g2_tplate  -2.14825e-009 2.61566e-009 

Weighted Frobenius norm of the difference between capacitance (auto option): 0.00962627

Solve statistics:
Number of input panels: 12 of which 12 conductors and 0 dielectric
Number of input panels to solver engine: 648
Number of panels after refinement: 8832
Number of potential estimates: 5325836
Number of links: 5652032 (uncompressed 78004224, compression ratio is 92.8%)
Max recursion level: 31
Max Mesh relative refinement value: 0.000243206
Iteration time: 8.564000s (0 days, 0 hours, 0 mins, 8 s)
Iteration allocated memory: 365131 kilobytes


Best Regards,
Enrico

tbell Posted - Jun 03 2019 : 16:59:07
Dear Enrico,

When I change the permittivity to 1.1,

* dielectric capacitor

C tplate.txt 1.0 0.0 0.0 1.1 +
C tplate.txt 1.1 0.0 0.0 1.0 +
C tplate_sides.txt 1.0 0.0 0.0 1.0
C bplate.txt 1.0 0.0 0.0 -1.1 +
C bplate.txt 1.1 0.0 0.0 -1.0 +
C bplate_sides.txt 1.0 0.0 0.0 -1.1
D dielec_sides.txt 1.0 1.1 0.0 0.0 -1.0 0.0 0.0 0.0 -

I obtain:

g1_tplate 3.01806e-009 -2.54257e-009
g2_bplate -2.54291e-009 3.02228e-009

When it is set to 1.0 (dummy) or removed, I obtain:

g1_tplate 3.90724e-009 -3.45337e-009
g2_bplate -3.45263e-009 3.90729e-009

So the capacitances have increased upon removing the dielectric, which seems unphysical.
Did you obtain these same values?
Best regards,
Tom
Enrico Posted - Jun 03 2019 : 16:01:43
Dear Tom,

I'm not able to replicate your issue. Actually FasterCap warns you about a dummy dielectric interface,and removes that. FastCap does not realize it is dummy, but I still get results in line with the expectations. Could you share the offending input file? (the one you attach for relative permittivity = 5.0 works, and changing to 1.0 gives the results I expected).

Best Regards,
Enrico

FastFieldSolvers Forum © 2020 FastFieldSolvers S.R.L. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.06