FastFieldSolvers Forum
FastFieldSolvers Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
 All Forums
 FastFieldSolvers
 FastHenry2
 Customized Ground Plane
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

Sven

Germany
8 Posts

Posted - Mar 19 2020 :  12:24:32  Show Profile  Reply with Quote
Hello together,

I am right now working on RLC extraction of PCBs.
So far most of it works with FastHenry. But I do have some troubles with customized groundplanes.

As I read in the documentation you can only create rectangular planes and cut some holes into them.
But I often use polygons in EAGLE for example to create ground planes with more than four edges.

So I'd like to ask you, if there is a possibilty to create groundplanes in different sizes apart from rectangular.

Thank you very much for your help in advance.

Best
Sven

Enrico

447 Posts

Posted - Mar 20 2020 :  12:01:14  Show Profile  Reply with Quote
Hi Sven,

you can actually create rectangular planes and cut holes on the sides, so that you modify the shape of the plane itself. For instance, if you want a L shaped ground plane, you can cut out a rectangular hole in one quadrant.

The source code may even be modified adding customized hole shapes (e.g. if you want a triangular hole), it had been created with hooks to ease this task. Of course this requires some coding (btw this is one of the services we can provide in terms of customization).

The only rule you MUST respect for a ground plane is not to divide it into two or more non-connected areas, e.g you should not split a ground plane in two.

If you need more complex shapes, another option (but more impacting in terms of model creation) is to use different ground planes and stick them together exposing the nodes at the sides and connect them through .equiv statements.

Last resort you have is using a 'manually' created ground plane, i.e. in your input file you define all the segments that compose the ground plane. Unfortunately while this approach works there is a huge drawback if the plane is composed by a large number of segments. FastHenry must find all the paths for the meshes connecting the ports. If you use a ground plane, the algorithm for doing that within the plane is relatively simple (including the presence of holes). If you specify a large array of perpendicular segments instead you need to find all the paths and this is not an O(N) problem. This impacts specifically the preconditioner.

Another option is instead using VoxHenry. This works for any shape but you are constrained by the granularity of the voxels you define (the voxel is the 3D equivalent of a pixel, i.e. a cube). At present VoxHenry is not so evolved as FastHenry but the Octave/Matlab version is fully available and we have the beta version of the C++ code.
If you are interested please contact me privately (see 'contact us' page), we can discuss the options on how we can support you if you are interested in consultancy.

Best Regards,
Enrico


Go to Top of Page

Sven

Germany
8 Posts

Posted - Mar 20 2020 :  18:40:05  Show Profile  Reply with Quote
Hello Enrico,

again: thank you very much for your reply.

OK, this might work in my application.
In order to cut holes into the plane I already use the holes directive. I just add further holes in order to cut out the outer shapes.

BTW: How do I best choose the values for seg1 and seg2?

Best
Sven
Go to Top of Page

Enrico

447 Posts

Posted - Mar 23 2020 :  15:49:14  Show Profile  Reply with Quote
Hello Sven,

the values for seg1 and seg2 depend on your frequency of application. Please see the User's manual that you can find in the embedded online help in the Windows version, or on our page ht*ps://w*w.fastfieldsolvers.com/documentation.htm (replace the * with the correct characters, this is an anti-spam measure).

Best Regards,
Enrico
Go to Top of Page

Sven

Germany
8 Posts

Posted - Mar 27 2020 :  13:26:01  Show Profile  Reply with Quote
Hello Enrico,

I already searched through the documentation but the only thing about segmentation I encounter is the segmentation of segments (with nhinc and nwinc).
So do I need to set the minimum size of a segment in a groundplane through the same procedure as for the elements?

Or do I get something wrong?

Sven
Go to Top of Page

Enrico

447 Posts

Posted - Mar 28 2020 :  18:09:50  Show Profile  Reply with Quote
Hi Sven,

for the ground plane there is no 'nwinc' and 'nhinc' has a special use, as reported in the user's guide:

quote:
nhinc and rh can be used to specify a number of filaments for discretization of each segment along the thickness (See Section 1.3.2). This could be used for modelling nonuniform current across the thickness. If nhinc is omitted, the value of 1 is usedregardless of the .Default setting. If rh is omitted, the default value is used.


The number of segments you use for discretizing the ground plane depend on how accurately you need to model the 2D current flow in the ground plane. This is important to accurately model the proximity effect; you should use segments of similar dimension to the structures that are nearby the ground plane. In doubt, you can visualize the current flow (this unfortunately is not straightforward as of today, as requires you to output a vector file and use SciLab or MatLab/Octave to see the current flows; see the manual for the examples at low and high frequency). The nhinc parameter is instead related to the skin depth.

Best Regards,
Enrico

Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
FastFieldSolvers Forum © 2020 FastFieldSolvers S.R.L. Go To Top Of Page
Powered By: Snitz Forums 2000 Version 3.4.06