<div dir="ltr">Hello, <div><br></div><div>Here's a working example based on your .geo-file with both A-V and T-Omega formulations.</div><div><br></div><div>With this geometry, you need one cohomology basis function per inductor winding, each driven with the same net current. That's essentially the only change I needed to make to the .pro-file. Note that some of the generated cohomology basis functions might be oriented to the other direction, which you can account by driving them by negative current instead.</div>

<div><br></div><div>Another possibility is to model the inductor as a massive conductor. Then, just one cohomology basis function is needed as there's just one tunnel through the air region.</div><div><br></div><div>
-- </div>
<div>Matti Pellikka, Researcher, Electromagnetics</div><div>Tampere University of Technology, Finland</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On 13 August 2013 17:01, Maximilian Szczesliwski <span dir="ltr"><<a href="mailto:maximulianszczesliwski@gmail.com" target="_blank">maximulianszczesliwski@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><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 style="white-space:pre-wrap">                </span>// frequenz </div><div>curr=4242*Sqrt(2);<span style="white-space:pre-wrap">   </span>// Stromstärke </div>

<div>eps=1.e-6;</div><div><br></div><div>xs1=0.25;<span style="white-space:pre-wrap">                       </span>// Radius Schmelze unter der Schräge </div><div>xs2=0.325;<span style="white-space:pre-wrap">                  </span>// großer Radius Schmelze </div>

<div>y_nenn=1;<span style="white-space:pre-wrap">                 </span>// Nennhöhe  </div><div>ys1=0.180;<span style="white-space:pre-wrap">                  </span>// höhe der Schräge </div><div><br></div><div>wz=1;<span style="white-space:pre-wrap">                               </span>// windungszahl</div>

<div>wd=0.004;<span style="white-space:pre-wrap">                 </span>// windungsabstand</div><div>xw1=0.425;<span style="white-space:pre-wrap">                     </span>// innenradius ind</div><div>xw11=xw1+0.00825;<span style="white-space:pre-wrap">      </span>// außenradius eckiger teil</div>

<div>hw=0.0195;<span style="white-space:pre-wrap">                        </span>// höhe ind</div><div>rw1=0.0065;<span style="white-space:pre-wrap">                   </span>// innenradius runder teil</div><div>rw2=rw1+0.00325;<span style="white-space:pre-wrap">       </span>// außenradius runder teil</div>

<div>h1=0;<span style="white-space:pre-wrap">                             </span>// untere Z- Position der ersten Windung</div><div>h2=hw;<span style="white-space:pre-wrap">                           </span>// obere Z- Position der ersten Windung</div><div>phi=Pi/100;<span style="white-space:pre-wrap">                       </span>// Rotationswinkel</div>

<div><br></div><div><br></div><div>rair=3*y_nenn;<span style="white-space:pre-wrap">          </span>// Radius Airbox</div><div>rinf=4*y_nenn;<span style="white-space:pre-wrap">           </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 style="white-space:pre-wrap">                               </span>// windungszahl</div><div>wd=0.004;<span style="white-space:pre-wrap">                 </span>// windungsabstand</div>

<div>xw1=0.425;<span style="white-space:pre-wrap">                        </span>// innenradius ind</div><div>xw11=xw1+0.00825;<span style="white-space:pre-wrap">      </span>// außenradius eckiger teil</div><div>hw=0.0195;<span style="white-space:pre-wrap">                    </span>// höhe ind</div>

<div>rw1=0.0065;<span style="white-space:pre-wrap">                       </span>// innenradius runder teil</div><div>rw2=rw1+0.00325;<span style="white-space:pre-wrap">       </span>// außenradius runder teil</div><div>wg=0;<span style="white-space:pre-wrap">                          </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>
<br>_______________________________________________<br>
getdp mailing list<br>
<a href="mailto:getdp@geuz.org">getdp@geuz.org</a><br>
<a href="http://www.geuz.org/mailman/listinfo/getdp" target="_blank">http://www.geuz.org/mailman/listinfo/getdp</a><br>
<br></blockquote></div><br></div>