<div dir="ltr"><div>After serveral days of trying to build a similar model like "Magnetodynamics with cohomology conditions", I would like to ask you kindly for help. Is it possible to calculate only a slice of such a problem using cohomology conditions? The goal is to reduce the number of elements in piecewise symmetric problems like in an induction heating process with several shunts around the inductor.</div>
<div><br></div><div>Please find below my .geo-file.</div><div><br></div><div>I would be greatefull for any help.</div><div><br></div><div>Maximilian <br></div><div><br></div><div>/*+++++++++++++++++++++++++++++++++++++++++++++</div>
<div>++++++++++++ .GEO +++++++++++</div><div>+++++++++++++++++++++++++++++++++++++++++++++*/</div><div><br></div><div><br></div><div><br></div><div><br></div><div>Mesh.Algorithm3D = 4;</div><div>// General.RotationCenterX=270;</div>
<div>// General.RotationCenterY=0;</div><div>// General.RotationCenterX=360;</div><div>freq=50;<span class="" style="white-space:pre"> </span>// frequenz </div><div>curr=4242*Sqrt(2);<span class="" style="white-space:pre"> </span>// Stromstärke </div>
<div>eps=1.e-6;</div><div><br></div><div>xs1=0.25;<span class="" style="white-space:pre"> </span>// Radius Schmelze unter der Schräge </div><div>xs2=0.325;<span class="" style="white-space:pre"> </span>// großer Radius Schmelze </div>
<div>y_nenn=1;<span class="" style="white-space:pre"> </span>// Nennhöhe </div><div>ys1=0.180;<span class="" style="white-space:pre"> </span>// höhe der Schräge </div><div><br></div><div>wz=1;<span class="" style="white-space:pre"> </span>// windungszahl</div>
<div>wd=0.004;<span class="" style="white-space:pre"> </span>// windungsabstand</div><div>xw1=0.425;<span class="" style="white-space:pre"> </span>// innenradius ind</div><div>xw11=xw1+0.00825;<span class="" style="white-space:pre"> </span>// außenradius eckiger teil</div>
<div>hw=0.0195;<span class="" style="white-space:pre"> </span>// höhe ind</div><div>rw1=0.0065;<span class="" style="white-space:pre"> </span>// innenradius runder teil</div><div>rw2=rw1+0.00325;<span class="" style="white-space:pre"> </span>// außenradius runder teil</div>
<div>h1=0;<span class="" style="white-space:pre"> </span>// untere Z- Position der ersten Windung</div><div>h2=hw;<span class="" style="white-space:pre"> </span>// obere Z- Position der ersten Windung</div><div>phi=Pi/100;<span class="" style="white-space:pre"> </span>// Rotationswinkel</div>
<div><br></div><div><br></div><div>rair=3*y_nenn;<span class="" style="white-space:pre"> </span>// Radius Airbox</div><div>rinf=4*y_nenn;<span class="" style="white-space:pre"> </span>// Radius Infinity</div><div><br></div>
<div>Point(1)={0,0 ,0, 0.01};</div><div>Point(2)={xs2,0 ,0, 0.01};</div><div>Point(3)={0,0 ,y_nenn, 0.01};</div><div>Point(4)={xs2,0 ,y_nenn, 0.01};</div><div><br></div><div><br></div><div><br></div><div>// Einsatz</div><div>
einsatz_in[]={};</div><div>einsatz_out[]={};</div><div>vol_Einsatz[] = {};</div><div><br></div><div>Line(1) = {1,2};</div><div>Line(2) = {2,4};</div><div>Line(3) = {3,4};</div><div>Line(4) = {1,3};</div><div><br></div><div>
Line Loop(5) = {1,2,-3,-4} ;</div><div>Plane Surface(1) = {5} ;</div><div>tmp[] = {1};</div><div>einsatz_in[]=tmp[0];</div><div><br></div><div>tmp[] = Extrude { {0,0,y_nenn}, {0,0,0} , phi}{ Surface {tmp[0]}; Layers {0.02}; };</div>
<div>vol_Einsatz[] = tmp[1];</div><div>einsatz_out[]=tmp[0];</div><div><br></div><div>// Induktor</div><div>wz=20;<span class="" style="white-space:pre"> </span>// windungszahl</div><div>wd=0.004;<span class="" style="white-space:pre"> </span>// windungsabstand</div>
<div>xw1=0.425;<span class="" style="white-space:pre"> </span>// innenradius ind</div><div>xw11=xw1+0.00825;<span class="" style="white-space:pre"> </span>// außenradius eckiger teil</div><div>hw=0.0195;<span class="" style="white-space:pre"> </span>// höhe ind</div>
<div>rw1=0.0065;<span class="" style="white-space:pre"> </span>// innenradius runder teil</div><div>rw2=rw1+0.00325;<span class="" style="white-space:pre"> </span>// außenradius runder teil</div><div>wg=0;<span class="" style="white-space:pre"> </span></div>
<div><br></div><div>// coil winding</div><div>in[]={};</div><div>out[]={};</div><div>vol_Induktor[] = {};</div><div>loop[]={};</div><div>For t In {1:wz}</div><div><br></div><div>p=newp;</div><div>Point(p+1)={xw1,0 ,wg, 0.005};</div>
<div>Point(p+2)={xw11,0 ,wg, 0.005};</div><div>Point(p+3)={xw1,0 ,hw+wg, 0.005};</div><div>Point(p+4)={xw11,0 ,hw+wg, 0.005};</div><div><br></div><div>l=newl;</div><div>Line(l+1) = {p+1,p+2};</div><div>Line(l+2) = {p+3,p+4};</div>
<div>Line(l+3) = {p+1,p+3};</div><div>Line(l+4) = {p+2,p+4};</div><div><br></div><div>ll=newll;</div><div>Line Loop(ll)={l+1, l+4, -(l+2), -(l+3)};</div><div><br></div><div><br></div><div>s=news;</div><div><br></div><div>
Plane Surface(s) = {ll};</div><div>tmp[] = {s};</div><div>in[]+=tmp[0];</div><div><br></div><div><br></div><div>tmp[] = Extrude { {0,0,y_nenn}, {0,0,0} , phi}{ Surface {tmp[0]}; Layers {0.02}; };</div><div>vol_Induktor[] += tmp[1];</div>
<div>out[]+=tmp[0];</div><div><br></div><div>wg = t*(hw+wd);</div><div>loop[]+={ll};</div><div>EndFor</div><div><br></div><div><br></div><div>// Air</div><div>air_in[] = {};</div><div>air_out[] = {};</div><div>vol_air[] = {};</div>
<div><br></div><div>p=newp;</div><div><br></div><div>Point(p+1)={0,0 ,-3*y_nenn, 0.5};</div><div>Point(p+2)={4*y_nenn,0 ,-3*y_nenn, 0.5};</div><div>Point(p+3)={0,0 ,4*y_nenn, 0.5};</div><div>Point(p+4)={4*y_nenn,0 ,4*y_nenn, 0.5};</div>
<div><br></div><div>l=newl;</div><div>Line(l+1) = {p+1,p+2};</div><div>Line(l+2) = {p+3,p+4};</div><div>Line(l+3) = {p+1,1};</div><div>Line(l+4) = {3,p+3};</div><div>Line(l+5) = {p+2,p+4};</div><div><br></div><div>ll=newll;</div>
<div>Line Loop(ll)={l+3, 1, 2, -3, l+4, l+2, -(l+5), -(l+1)};</div><div><br></div><div>Line Loop(ll+2)={l+3, 4, l+4, l+2, -(l+5), -(l+1)};</div><div>s=news;</div><div>loop[]+=ll;</div><div>Plane Surface(s) = loop[];</div>
<div><br></div><div>tmp[] = {s};</div><div>air_in[]+=tmp[0];</div><div><br></div><div>tmp[] = Extrude { {0,0,y_nenn}, {0,0,0} , phi}{ Surface {tmp[0]}; Layers {0.02}; };</div><div>vol_air[] += tmp[1];</div><div>air_out[]+=tmp[0];</div>
<div><br></div><div>Einsatz = 10000;</div><div>Induktor = 20000;</div><div>Air = 30000;</div><div><br></div><div>SKIN_Einsatz = 11000;</div><div>Einsatz_OUT = 12000;</div><div>Einsatz_IN = 13000;</div><div>SKIN_Induktor = 22000;</div>
<div>OUT = 220000;</div><div>IN = 200002;</div><div>Inf_Air = 33000;</div><div>Air_IN=34000;</div><div>Air_OUT=35000;</div><div><br></div><div>Physical Volume(Induktor) = {vol_Induktor[]};</div><div>Physical Volume(Einsatz) = {vol_Einsatz[]};</div>
<div>Physical Volume(Air) = {vol_air};</div><div><br></div><div>Physical Surface(IN)= in[];</div><div>Physical Surface(OUT)= out[];</div><div>skin_induktor[]={};</div><div>skin_induktor[]=CombinedBoundary{ Volume{vol_Induktor[]}; };</div>
<div>skin_induktor[] -= {in[], out[]};</div><div>Physical Surface(SKIN_Induktor) = skin_induktor[];</div><div>skin_einsatz[] = {};</div><div>skin_einsatz[] = Boundary { Volume{vol_Einsatz[]}; };</div><div>skin_einsatz[] -= {einsatz_in[], einsatz_out[]};</div>
<div>Physical Surface(Einsatz_IN)= einsatz_in[];</div><div>Physical Surface(Einsatz_OUT)= einsatz_out[];</div><div>Physical Surface(SKIN_Einsatz) = skin_einsatz[];</div><div><br></div><div>Physical Line(999999) = {84,4, 85};</div>
<div>// axis[]={56, 4, 55};</div><div>Physical Surface(Inf_Air) = {90, 97, 93}; // , 61, 113}; </div><div><br></div><div><br></div><div><br></div><div><br></div><div>Physical Surface(Air_IN)= air_in[];</div><div>Physical Surface(Air_OUT)= air_out[];</div>
<div><br></div><div>// Cohomology computation for the A-V method</div><div>Cohomology(1) {{Induktor},{IN,OUT}};</div><div>Cohomology(1) {{Einsatz,},{Einsatz_IN,Einsatz_OUT}}; </div></div>