kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #32074
Re: Signal integrity simulation within Kicad
On 29/11/17 19:09, Andreas Buhr wrote:
> Dear Kicad developers,
>
> I'm new to Kicad development. Maybe you could give me some starting tips?
>
> I am a 5th year PhD student at the university of Münster in Germany,
> website:
> https://www.uni-muenster.de/AMM/en/ohlberger/team/andreas_buhr.shtml
>
> I am doing mathematical research targeted at developing solvers for 3D
> Maxwell's equations in highly complex structures, such as PCBs. While
> being in an early stage, the goal is to develop a signal integrity
> solver which does a full-wave simulation of the electromagnetic fields
> and calculates S-parameters within a very short time.
>
> I would love to develop and test my algorithms within KiCad.
>
> The input which my solver needs would be an array of polygons,
> representing the copper-filled areas on each layer.
> I then want to create a 2D triangle mesh and based on that a 3D prism
> mesh for finite element analysis.
>
> What would you recommend? How to I get polygons, representing the copper
> filled areas of each layer?
> I do have some experience developing C++.
>
> thanks a lot in advance,
> best regards,
Hi Andreas,
It's absolutely fantastic to hear you're working on an SI solver and
that you want to develop it within KiCad!
For the moment, there's no one-liner way to get the entire board
geometry represented as polygons - the closest is to for each BOARD_ITEM:
BOARD_ITEM::TransformShapeWithClearanceToPolygonoid
TransformShapeWithClearanceToPolygon( SHAPE_POLY_SET& aCornerBuffer,
int aClearanceValue,
int aCircleToSegmentsCount,
double aCorrectionFactor ) const;
with aClearanceValue = 0 or 1 (= 1nm) - I'm not 100% sure if a value of
0 will be accepted and aCircleToSegments count large enough to
approximate arcs correctly.
aCornerBuffer is a SHAPE_POLY_SET object which represents a set of
polygons with holes, see qa/geometry for some example/test code.
Let me know if you need any help!
Best,
Tom
Follow ups
References