FastFieldSolvers Forum
FastFieldSolvers Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ
 All Forums
 FastFieldSolvers
 FasterCap and FastCap2
 microstrip coupler mesh refinement problem

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
abhowmick22 Posted - Jun 14 2012 : 22:15:11
Hi, I am trying to estimate the quasi static capacitances of a 3line microstrip coupler with dimensions of the order of micrometers. I am using generic input file interface. However, I am not getting a meaningful capacitance matrix. I am pretty sure about my model coz I viewed it in the Fastmodel window. Here is the output of my final iteration with auto settings and auto preconditioner in the run menu.


Iteration number #10 ***************************

***************************************
Increasing the geometric refinement.. 
Refinement completed
Mesh refinement (-m): 7626.73
***************************************
Computing the links.. 
Number of panels after refinement: 2456
Number of links to be computed: 115902
Done computing links
***************************************
Precond Type(s) (-p): Jacobi 
Capacitance matrix is:
Dimension 4 x 4
g1_cond1  6.11054e-015 0 0 -1.#IND 
g1_cond2  0 3.51746e-015 0 -1.#IND 
g1_cond3  0 0 6.11054e-015 -1.#IND 
g2_gndplane  0 0 0 1.#INF 
Warning: capacitance matrix has a non-negative off-diagonal element at row 1 col 2
Warning: capacitance matrix has a non-negative off-diagonal element at row 1 col 3
Warning: capacitance matrix has a non-negative off-diagonal element at row 2 col 1
Warning: capacitance matrix has a non-negative off-diagonal element at row 2 col 3
Warning: capacitance matrix has a non-negative off-diagonal element at row 3 col 1
Warning: capacitance matrix has a non-negative off-diagonal element at row 3 col 2
Warning: capacitance matrix has a non-negative off-diagonal element at row 4 col 1
Warning: capacitance matrix has a non-negative off-diagonal element at row 4 col 2
Warning: capacitance matrix has a non-negative off-diagonal element at row 4 col 3

Weighted Frobenius norm of the difference between capacitance (auto option): -1.#IND

Solve statistics:
Number of input panels: 52
Number of panels after refinement: 2456
Number of potential estimates: 57951
Number of links: 115902
Max recursion level: 32
Max Mesh relative refinement value: 7626.29
Iteration time: 0.321000s (0 days, 0 hours, 0 mins, 0 s)
Iteration allocated memory: 13272 kilobytes

Outputting refined geometry in FastCap compatible format..
  generating list file "C:\Documents and Settings\All Users\Documents\FastFieldSolvers\FasterCap\coupler_ref.lst"
Done

Total allocated memory: 13272 kilobytes


I have tried out modifying all the settings manually as well as writing the geometry file in metre units but then fastcap just takes too long to carry out mesh refinement and gets stuck. I am not sure whether this is a mesh refinement problem or something else, please suggest some ways to debug this. Also, should I use some other software to generate a finer mesh? I have attached my project files alongside.


strips.qui
0 conductor strips
Q cond1  0.00 0.00 0.0000005  0.000045 0.00 0.0000005  0.000045 0.0001 0.0000005  0.0 0.0001 0.0000005
Q cond2  0.000075 0.00 0.0000005  0.00013 0.00 0.0000005  0.00013 0.0001 0.0000005  0.000075 0.0001 0.0000005  
Q cond3  0.00016 0.00 0.0000005  0.000205 0.00 0.0000005  0.000205 0.0001 0.0000005  0.00016 0.0001 0.0000005


dielectric_side.qui
0 dielectric substrate
Q diel -0.00025 -0.00025 0.0  -0.00025 0.00025 0.0  -0.00025 0.00025 -0.00012  -0.00025 -0.00025 -0.00012
Q diel 0.000705 -0.00025 0.0  0.000705 0.00025 0.0  0.000705 0.00025 -0.00012  0.000705 -0.00025 -0.00012
Q diel -0.00025 0.00025 0.0  0.000705 0.00025 0.0  0.000705 0.00025 -0.00012  -0.00025 0.00025 -0.00012
Q diel -0.00025 -0.00025 0.0  0.000705 -0.00025 0.0  0.000705 -0.00025 -0.00012  -0.00025 -0.00025 -0.00012
Q diel -0.00025 -0.00025 0.0  0.000705 -0.00025 0.0  0.000705 0.00025 0.0  -0.00025 0.00025 0.0
Q diel -0.00025 -0.00025 -0.00012  0.000705 -0.00025 -0.00012  0.000705 0.00025 -0.00012  -0.00025 0.00025 -0.00012

gnd.qui
0 ground plane
Q gndplane  -0.00025 -0.00025 -0.0001205 0.000705 -0.00025 -0.0001205 0.000705 0.00025 -0.0001205 -0.00025 0.00025 -0.0001205 

coupler.lst
* 3 line microstrip coupler
* 3 conductor lines surrounded by air
C strips.qui 1.0 0.0 0.0 0.0
*conducting ground plane
C gnd.qui 1.0 0.0 0.0 0.0 
*Dielectric 
D dielectric_side.qui 1.0 11.7 0.0 0.0 0.0 0.0 0.0 -0.00006 -


Thanks,
Abhishek
1   L A T E S T    R E P L I E S    (Newest First)
Enrico Posted - Jul 10 2012 : 00:34:08
First of all, thank you for your question. It touches some important points about FasterCap usage.

There are four main issues with your input file, let's see how to deal with all of them. The explanation is a bit long, but the solution in the end is relatively easy.

First, yes, dimensions count. If you define too small geometrical entities, you may fall below the tolerance threshold set for the machine precision, especially when FasterCap finely refines the elements. So I recommend to scale the structure, anyway FasterCap will warn you if the dimensions are too small:


Warning: self-potential calculation equal to zero found during potential calculation
         This may be caused by the presence of very small panels (sides around 0.000010).
         Remark: the precision of the result is affected.


Second, I expect you are trying to simulate a slab of dielectric with contacts on the front and a ground plate on the back. You modeled the conductors using a infinitesimally thin plate floating at a very short distance from the surface of the dielectric. This is not the best way to represent a conductor, that has a finite thickness, however thin. In general, you should try to stick to the physical representation of your structure.
The correct way to represent a conductor embedded in two different dielectrics is to model it as a closed body, and split the faces according to the dielectric to which they are in contact with. Then in the list file, the faces are joined with a '+' command at the end of the conductor 'C' statement, while for each 'C' you specify the reference relative permittivity. This is shown for instance in the FasterCap sample file 'capacitor.lst', or reported here below for the modified list file for your example (I also added colors to help the visualization):


* 3 line microstrip coupler
* 3 conductor lines surrounded by air
*
* strip 1
C strip_thin_top_sid.qui 1.0 0.0 0.0 0.0 + 0xdddd00ff
C strip_thin_bot.qui 10.7 0.0 0.0 0.0  0xdddd00ff
*
* strip 2
C strip_thick_top_sid.qui 1.0 0.075 0.0 0.0 + 0xdddd00ff
C strip_thick_bot.qui 10.7 0.075 0.0 0.0 0xdddd00ff
*
* strip 3
C strip_thin_top_sid.qui 1.0 0.16 0.0 0.0 + 0xdddd00ff
C strip_thin_bot.qui 10.7 0.16 0.0 0.0 0xdddd00ff
*
*Dielectric 
D dielectric_sides.qui 1.0 10.7 0.0 0.0 -0.12 0.0 0.0 -0.06 - 0x92d050ff
D dielectric_top.qui 1.0 10.7 0.0 0.0 0.0 0.0 0.0 -0.06 - 0x92d050ff
*
*conducting ground plane
C gnd_top.qui 10.7 0.0 0.0 -0.12 + 0xdddd00ff
C gnd_bot_sid.qui 1.0 0.0 0.0 -0.1205 0xdddd00ff



Third, you are trying to simulate a structure with very high geometrical ratios. That is, the width of the dielectric is 0.905, while the conductive contacts float just 0.0005 over the dielectric. This is a geometrical ratio of about 1:1000, that can cause issues in the correct potential integrals calculation as well as in the convergence of the solution. The first point is because the mutual potential integrals are almost singular, and require proper numerical treatment. The second point is because thin large structures, like a large area capacitor with a small gap between the plates, are known to be badly conditioned, thus leading to a slow convergence of iterative methods for matrix solution (i.e. many iterations before converging).
This point is well addressed in the new FasterCap 3 release. The software has been enhanced to deal with high geometrical rations. However, you still have to take care of two important tunings. The first one refers to the manual tuning of the 'Common Settings' parameter 'Direct potential interaction coefficient to mesh refinement ratio (-d)'. If you observe that the automatic runs tend not to converge, and maybe are impacted by non diagonally dominant / positive offdiagonal entries warnings on the resulting matrix, you may want to decrease this parameter. For the case at hand, a good value is 1 instead of the default 3. The second one is relative to the preconditioner choice. The two-levels preconditioner may not work well for high geometrical ratios. You may want to remove the 'Automatic preconditioner usage (-ap)' from the 'Automatic Settings', and manually force a Jacobi preconditioner only.
Following these recommendations, your output will be (reference input files at the bottom of the message):


Running FasterCap version 3.0.3
Copyright 2012 Enrico Di Lorenzo, w*w.fastfieldsolvers.com, all rights reserved
Starting capacitance extraction with the following parameters:
Input file: C:\Documenti\Codice\_Runs\ar\abhishek\coupler_full_short.lst
Auto calculation with max error: 0.01
Remark: Auto option overrides all other Manual settings

Solution scheme (-g): Collocation, GMRES tolerance (-t): 0.005
Out-of-core free memory to link memory condition (-f): 5
Potential interaction coefficient to mesh refinement ratio (-d): 1
Mesh curvature (-mc): 3
Number of input panels to solver engine: 3080

Iteration number #0 ***************************

***************************************
Refining the geometry.. 
Refinement completed
Mesh refinement (-m): 1e+032
***************************************
Computing the links.. 
Number of panels after refinement: 3080
Number of links to be computed: 283932
Done computing links
***************************************
Precond Type(s) (-p): Jacobi 
GMRES Iteration: 0 1 2 3 4 5 6 
GMRES Iteration: 0 1 2 3 4 5 6 
GMRES Iteration: 0 1 2 3 4 5 
GMRES Iteration: 0 1 2 3 4 5 6 
Capacitance matrix is:
Dimension 4 x 4
g1_1  1.41821e-011 -2.8304e-012 -1.0198e-013 -1.25345e-011 
g2_1  -2.64233e-012 1.63059e-011 -2.92363e-012 -1.31656e-011 
g3_1  -1.28876e-013 -3.04982e-012 1.39255e-011 -1.04852e-011 
g4_1  -1.03808e-011 -9.5748e-012 -1.00869e-011 1.05127e-010 
Warning: capacitance matrix is not diagonally dominant due to row 1
Warning: capacitance matrix is not diagonally dominant due to row 2


Solve statistics:
Number of input panels: 34 of which 24 conductors and 10 dielectric
Number of input panels to solver engine: 3080
Number of panels after refinement: 3080
Number of potential estimates: 141966
Number of links: 283932
Max recursion level: 26
Max Mesh relative refinement value: 0.215406
Iteration time: 0.471000s (0 days, 0 hours, 0 mins, 0 s)
Iteration allocated memory: 13736 kilobytes

Iteration number #1 ***************************

***************************************
Increasing the geometric refinement.. 
Refinement completed
Mesh refinement (-m): 0.152315
***************************************
Computing the links.. 
Number of panels after refinement: 3407
Number of links to be computed: 1021390
Done computing links
***************************************
Precond Type(s) (-p): Jacobi 
GMRES Iteration: 0 1 2 3 4 5 6 7 
GMRES Iteration: 0 1 2 3 4 5 6 
GMRES Iteration: 0 1 2 3 4 5 6 7 
GMRES Iteration: 0 1 2 3 4 5 6 7 8 
Capacitance matrix is:
Dimension 4 x 4
g1_1  1.41162e-011 -2.92326e-012 -2.5809e-013 -8.75055e-012 
g2_1  -3.01336e-012 1.63146e-011 -2.97269e-012 -8.29372e-012 
g3_1  -2.64645e-013 -2.88751e-012 1.41761e-011 -9.45813e-012 
g4_1  -1.04159e-011 -1.00358e-011 -1.0802e-011 1.01741e-010 

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

Solve statistics:
Number of input panels: 34 of which 24 conductors and 10 dielectric
Number of input panels to solver engine: 3080
Number of panels after refinement: 3407
Number of potential estimates: 510695
Number of links: 1021390
Max recursion level: 32
Max Mesh relative refinement value: 0.152314
Iteration time: 0.971000s (0 days, 0 hours, 0 mins, 0 s)
Iteration allocated memory: 13937 kilobytes

Iteration number #2 ***************************

***************************************
Increasing the geometric refinement.. 
Delta in refined panel and link count w.r.t. previous iteration less than 10%
(Panels # 3602, Links # 1136850)
Automatically increasing the refinement parameters
Refinement completed
Mesh refinement (-m): 0.0761571
***************************************
Computing the links.. 
Number of panels after refinement: 3943
Number of links to be computed: 1246656
Done computing links
***************************************
Precond Type(s) (-p): Jacobi 
GMRES Iteration: 0 1 2 3 4 5 6 7 8 9 
GMRES Iteration: 0 1 2 3 4 5 6 7 8 
GMRES Iteration: 0 1 2 3 4 5 6 7 8 9 
GMRES Iteration: 0 1 2 3 4 5 6 7 8 9 10 
Capacitance matrix is:
Dimension 4 x 4
g1_1  1.40878e-011 -2.94428e-012 -2.87105e-013 -8.90224e-012 
g2_1  -3.00482e-012 1.61463e-011 -3.0032e-012 -8.27155e-012 
g3_1  -2.80909e-013 -2.93214e-012 1.40733e-011 -9.07739e-012 
g4_1  -1.02747e-011 -9.76244e-012 -1.04258e-011 1.02538e-010 

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

Solve statistics:
Number of input panels: 34 of which 24 conductors and 10 dielectric
Number of input panels to solver engine: 3080
Number of panels after refinement: 3943
Number of potential estimates: 623328
Number of links: 1246656
Max recursion level: 34
Max Mesh relative refinement value: 0.0761569
Iteration time: 1.492000s (0 days, 0 hours, 0 mins, 1 s)
Iteration allocated memory: 26539 kilobytes

Total allocated memory: 26539 kilobytes
Total time: 2.934000s (0 days, 0 hours, 0 mins, 2 s)



Fourth, the dielectric constant ratios are quite high (relative dielectric constant is 10.7). This is a known precision issue, described also in the FastCap2 papers. However as you can see above, if the geometry is physically consistent, FasterCap is able to deal with the structure with no particular issue. On the other hand, you may notice that in this case FastCap2 has problems in converging to ANY result (you can try to run FastCap2 on the refined output).

Best Regards,
Enrico


strip_thin_top_sid.qui

0 0.045mX0.1mX0.0005m cube (nx=1 ny=1 nz=1 e=1)
* xo = 0, yo = 0, zo = 0
* bottom panel omitted
* view from -x, -y, +z
* front left
Q 1 4.50000e-002 1.00000e-001 0.00000e+000  4.50000e-002 0.00000e+000 0.00000e+000 4.50000e-002 0.00000e+000 5.00000e-004  4.50000e-002 1.00000e-001 5.00000e-004
* front right
Q 1 0.00000e+000 1.00000e-001 0.00000e+000  4.50000e-002 1.00000e-001 0.00000e+000 4.50000e-002 1.00000e-001 5.00000e-004  0.00000e+000 1.00000e-001 5.00000e-004
* back left
Q 1 4.50000e-002 0.00000e+000 0.00000e+000  0.00000e+000 0.00000e+000 0.00000e+000 0.00000e+000 0.00000e+000 5.00000e-004  4.50000e-002 0.00000e+000 5.00000e-004
* back right
Q 1 0.00000e+000 0.00000e+000 0.00000e+000  0.00000e+000 1.00000e-001 0.00000e+000 0.00000e+000 1.00000e-001 5.00000e-004  0.00000e+000 0.00000e+000 5.00000e-004
* top
Q 1 0.00000e+000 0.00000e+000 5.00000e-004  4.50000e-002 0.00000e+000 5.00000e-004 4.50000e-002 1.00000e-001 5.00000e-004  0.00000e+000 1.00000e-001 5.00000e-004


strip_thin_bot.qui

0 0.045mX0.1mX0.0005m cube (nx=1 ny=1 nz=1 e=1)
* xo = 0, yo = 0, zo = 0
* top panel omitted
* all side panels omitted
* view from -x, -y, +z
* bottom
Q 1 0.00000e+000 0.00000e+000 0.00000e+000  4.50000e-002 0.00000e+000 0.00000e+000 4.50000e-002 1.00000e-001 0.00000e+000  0.00000e+000 1.00000e-001 0.00000e+000


strip_thick_top_sid.qui

0 0.055mX0.1mX0.0005m cube (nx=1 ny=1 nz=1 e=1)
* xo = 0, yo = 0, zo = 0
* bottom panel omitted
* view from -x, -y, +z
* front left
Q 1 5.50000e-002 1.00000e-001 0.00000e+000  5.50000e-002 0.00000e+000 0.00000e+000 5.50000e-002 0.00000e+000 5.00000e-004  5.50000e-002 1.00000e-001 5.00000e-004
* front right
Q 1 0.00000e+000 1.00000e-001 0.00000e+000  5.50000e-002 1.00000e-001 0.00000e+000 5.50000e-002 1.00000e-001 5.00000e-004  0.00000e+000 1.00000e-001 5.00000e-004
* back left
Q 1 5.50000e-002 0.00000e+000 0.00000e+000  0.00000e+000 0.00000e+000 0.00000e+000 0.00000e+000 0.00000e+000 5.00000e-004  5.50000e-002 0.00000e+000 5.00000e-004
* back right
Q 1 0.00000e+000 0.00000e+000 0.00000e+000  0.00000e+000 1.00000e-001 0.00000e+000 0.00000e+000 1.00000e-001 5.00000e-004  0.00000e+000 0.00000e+000 5.00000e-004
* top
Q 1 0.00000e+000 0.00000e+000 5.00000e-004  5.50000e-002 0.00000e+000 5.00000e-004 5.50000e-002 1.00000e-001 5.00000e-004  0.00000e+000 1.00000e-001 5.00000e-004


strip_thick_bot.qui

0 0.055mX0.1mX0.0005m cube (nx=1 ny=1 nz=1 e=1)
* xo = 0, yo = 0, zo = 0
* top panel omitted
* all side panels omitted
* view from -x, -y, +z
* bottom
Q 1 0.00000e+000 0.00000e+000 0.00000e+000  5.50000e-002 0.00000e+000 0.00000e+000 5.50000e-002 1.00000e-001 0.00000e+000  0.00000e+000 1.00000e-001 0.00000e+000


dielectric_sides.qui

0 0.955mX0.5mX0.12m cube (nx=1 ny=1 nz=1 e=1)
* xo = -0.25, yo = -0.25, zo = 0
* top panel omitted
* bottom panel omitted
* view from -x, -y, +z
* front left
Q 1 7.05000e-001 2.50000e-001 0.00000e+000  7.05000e-001 -2.50000e-001 0.00000e+000 7.05000e-001 -2.50000e-001 1.20000e-001  7.05000e-001 2.50000e-001 1.20000e-001
* front right
Q 1 -2.50000e-001 2.50000e-001 0.00000e+000  7.05000e-001 2.50000e-001 0.00000e+000 7.05000e-001 2.50000e-001 1.20000e-001  -2.50000e-001 2.50000e-001 1.20000e-001
* back left
Q 1 7.05000e-001 -2.50000e-001 0.00000e+000  -2.50000e-001 -2.50000e-001 0.00000e+000 -2.50000e-001 -2.50000e-001 1.20000e-001  7.05000e-001 -2.50000e-001 1.20000e-001
* back right
Q 1 -2.50000e-001 -2.50000e-001 0.00000e+000  -2.50000e-001 2.50000e-001 0.00000e+000 -2.50000e-001 2.50000e-001 1.20000e-001  -2.50000e-001 -2.50000e-001 1.20000e-001


dielectric_top.qui

0 dielectric top (with gaps)
* 
Q 1 -0.25 -0.25 0.0    0.0 -0.25 0.0    0.0 0.25 0.0    -0.25 0.25 0.0
Q 1 0.205 -0.25 0.0    0.705 -0.25 0.0    0.705 0.25 0.0  0.205 0.25 0.0
Q 1 0.0 -0.25 0.00    2.05e-001 -0.25 0.0    2.05e-001 0.0 0.0  0.0 0.0 0.0
Q 1 0.0 0.1 0.0    2.05e-001 0.1 0.0   2.05e-001  0.25 0.0    0.0  0.25 0.0
Q 1 0.045 0.0 0.0    0.075 0.0 0.0    0.075 0.1 0.0     0.045 0.1 0.0
Q 1 0.13 0.0 0.0    0.16 0.0 0.0    0.16 0.1 0.0     0.13 0.1 0.0


gnd_top.qui

0 0.955mX0.5mX0.0005m cube (nx=1 ny=1 nz=1 e=1)
* xo = -0.25, yo = -0.25, zo = 0
* top panel omitted
* all side panels omitted
* view from -x, -y, +z
* bottom
Q 1 -2.50000e-001 -2.50000e-001 0.00000e+000  7.05000e-001 -2.50000e-001 0.00000e+000 7.05000e-001 2.50000e-001 0.00000e+000  -2.50000e-001 2.50000e-001 0.00000e+000


gnd_bot_sid.qui

0 0.955mX0.5mX0.0005m cube (nx=1 ny=1 nz=1 e=1)
* xo = -0.25, yo = -0.25, zo = 0
* top panel omitted
* view from -x, -y, +z
* front left
Q 1 7.05000e-001 2.50000e-001 0.00000e+000  7.05000e-001 -2.50000e-001 0.00000e+000 7.05000e-001 -2.50000e-001 
5.00000e-004  7.05000e-001 2.50000e-001 5.00000e-004
* front right
Q 1 -2.50000e-001 2.50000e-001 0.00000e+000  7.05000e-001 2.50000e-001 0.00000e+000 7.05000e-001 2.50000e-001 5.00000e-004  -2.50000e-001 2.50000e-001 5.00000e-004
* back left
Q 1 7.05000e-001 -2.50000e-001 0.00000e+000  -2.50000e-001 -2.50000e-001 0.00000e+000 -2.50000e-001 -2.50000e-001 5.00000e-004  7.05000e-001 -2.50000e-001 5.00000e-004
* back right
Q 1 -2.50000e-001 -2.50000e-001 0.00000e+000  -2.50000e-001 2.50000e-001 0.00000e+000 -2.50000e-001 2.50000e-001 5.00000e-004  -2.50000e-001 -2.50000e-001 5.00000e-004
* bottom
Q 1 -2.50000e-001 -2.50000e-001 0.00000e+000  7.05000e-001 -2.50000e-001 0.00000e+000 7.05000e-001 2.50000e-001 0.00000e+000  -2.50000e-001 2.50000e-001 0.00000e+000


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