[Gmsh] 3D model of wires affected by the skin effect
Alexis DESMOORT
Alexis.DESMOORT at student.umons.ac.be
Wed Mar 25 13:55:14 CET 2015
Dear all,
In the context of my Master Thesis, I would like to create a 3D model of wires used at high frequencies which means that the conductors will be affected by the skin effect. In order to restrict the number of elements despite this effect, I wanted to refine the mesh exclusively in the skin around the inner conductors’ edges. There will be a rough mesh beyond the skin inside the wires and a rougher mesh in the air outside the wires.
I used an Attractor and a Threshold fields to achieve this goal. Their effects lead to the proper modeling of the skin in the wires. I restricted those effects inside the conductors using a Restrict field. Nevertheless, the characteristic length in the air isn’t respected anymore and the air’s mesh seems to be affected by the fields despite the Restrict, particularly on the external boundary.
I wrote a code as a simple example (a wire in an air box) :
//Data and parameters
Xair = 0.005;
Yair = 0.005;
Zair = 0.01;
lcAir = 0.001;
lenght = 0.0075;
rWire = 0.0005;
Freq = DefineNumber [1e5, Name "Parameters/Frequence (Hz)" ];
sigma_Cu = 6e7;
skinDepth = Sqrt[1/(sigma_Cu*Pi*Freq*4e-7*Pi)];
lcwire = skinDepth/2;
//Circle definition
center = newp ; Point(newp) = {0,0,- lenght/2,lcwire};
circlePoints[] += newp; Point(newp) = {rWire,0,- lenght/2,lcwire};
circlePoints[] += newp; Point(newp) = {0,-rWire,- lenght/2,lcwire};
circlePoints[] += newp; Point(newp) = {- rWire,0,- lenght/2,lcwire};
circlePoints[] += newp; Point(newp) = {0,rWire,- lenght/2,lcwire};
edgeconds[] += newl; Circle(newl) = {circlePoints[0],center,circlePoints[1]};
edgeconds[] += newl; Circle(newl) = {circlePoints[1],center,circlePoints[2]};
edgeconds[] += newl; Circle(newl) = {circlePoints[2],center,circlePoints[3]};
edgeconds[] += newl; Circle(newl) = {circlePoints[3],center,circlePoints[0]};
circlePoints[] = {};
toSurf = newll; Line Loop (newll) = {edgeconds[]};
holesSurf[] += news; circleSurfaces_TX = news; Plane Surface(news) = {toSurf};
//Circle extrude
out[] = Extrude {0,0,lenght} {Surface{circleSurfaces_TX}; Layers{4};};
holesSurf[] += out[0];
circleVolume[] += out[1];
holesSurf[] += out[2];
holesSurf[] += out[3];
holesSurf[] += out[4];
holesSurf[] += out[5];
holes[] += newsl; Surface Loop (newsl) = {holesSurf[]};
surfEdge[] += holesSurf[];
holesSurf[] = {}; out[] = {};
//Air box definition
airPoints[] = {};
airPoints[] += newp; Point(newp) = {Xair,-Yair,-Zair,lcAir};
airPoints[] += newp; Point(newp) = {Xair,Yair,-Zair,lcAir};
airPoints[] += newp; Point(newp) = {Xair,Yair,Zair,lcAir};
airPoints[] += newp; Point(newp) = {Xair,-Yair,Zair,lcAir};
airPoints[] += newp; Point(newp) = {-Xair,-Yair,-Zair,lcAir};
airPoints[] += newp; Point(newp) = {-Xair,Yair,-Zair,lcAir};
airPoints[] += newp; Point(newp) = {-Xair,Yair,Zair,lcAir};
airPoints[] += newp; Point(newp) = {-Xair,-Yair,Zair,lcAir};
airLines[] += newl; Line(newl) = {airPoints[0],airPoints[1]};
{…}
airLines[] += newl; Line(newl) = {airPoints[3],airPoints[7]};
//Face 1
toSurf = newll; Line Loop (newll) = {airLines[0],airLines[1],airLines[2],airLines[3]};
airSurface[] += news; Plane Surface(news) = {toSurf};
{…}
//Face 6
toSurf = newll; Line Loop (newll) = {-airLines[2],-airLines[11],-airLines[9],-airLines[6]};
airSurface[] += news; Plane Surface(news) = {toSurf};
airSurfLoop = newsl; Surface Loop(newsl) = {airSurface[]};
airVolume = newv;
Volume(newv) = {airSurfLoop,holes[]};
Field[1] = Attractor;
Field[1].NNodesByEdge = 50;
Field[1].EdgesList = {edgeconds[]};
Field[2] = Threshold;
Field[2].IField = 1;
Field[2].LcMin = skinDepth/3;
Field[2].LcMax = 1.2*rWire;
Field[2].DistMin = lcwire/2;
Field[2].DistMax = rWire;
Field[2].Sigmoid = 0;
Field[2].StopAtDistMax = 1;
Field[3] = Restrict;
Field[3].IField = 2;
Field[3].FacesList = {circleSurfaces_TX[]};
Background Field = 3;
Mesh.CharacteristicLengthFromPoints=1;
Mesh.CharacteristicLengthExtendFromBoundary=0;
Mesh.CharacteristicLengthFromCurvature=0;
The result looks as following :
[cid:536fbebb-f462-43c2-bd46-f25e223e2264][cid:ae9a6672-99dd-4800-bc50-8d10d169fd15][cid:05a6a46d-0a81-4e41-9e8c-276632a9a23b]
Can someone help me to understand how can I solve this problem ?
Thank you in advance for your answer.
Regards,
Alexis Desmoort
University of Mons
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20150325/b994ae98/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: post_2.png
Type: image/png
Size: 567742 bytes
Desc: post_2.png
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20150325/b994ae98/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: post_1.png
Type: image/png
Size: 198714 bytes
Desc: post_1.png
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20150325/b994ae98/attachment-0001.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: skin_effect.png
Type: image/png
Size: 191764 bytes
Desc: skin_effect.png
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20150325/b994ae98/attachment-0002.png>