Skip to content
Snippets Groups Projects
Commit bab75432 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

comments + explain how to force getdp location (fixes #3 and #4)

parent b3257b60
No related branches found
No related tags found
No related merge requests found
......@@ -130,6 +130,7 @@ Function {
eta0 = 120*Pi ; // eta0 = Sqrt(mu0/eps0)
// FIXME: CG "Y[]" should be 0 in 3D !?
dR[] = (Flag_3Dmodel) ? Unit[ Vector[Sin[Atan2[Z[],X[]]#1], Y[], -Cos[#1]] ] : Vector[0,0,-1] ;
......
......@@ -13,19 +13,24 @@ import onelab
# create a new onelab client
c = onelab.client(__file__)
# get Gmsh and GetDP locations from Gmsh options
# get Gmsh location from Gmsh options
mygmsh = c.getString('General.ExecutableFileName')
mygetdp = ''
for s in range(9):
n = c.getString('Solver.Name' + str(s))
if(n == 'GetDP'):
mygetdp = c.getString('Solver.Executable' + str(s))
break
# Either force GetDP location, or also get it from Gmsh options: adapt the
# following line if you want to force the value:
mygetdp = '' # '/usr/local/bin/getdp'
if(not len(mygetdp)):
c.sendError('This appears to be the first time you are trying to run GetDP')
c.sendError('Please run a GetDP model interactively once with Gmsh to ' +
'initialize the solver location')
exit(0)
for s in range(9):
n = c.getString('Solver.Name' + str(s))
if(n == 'GetDP'):
mygetdp = c.getString('Solver.Executable' + str(s))
break
if(not len(mygetdp)):
c.sendError('This appears to be the first time you are trying to run GetDP')
c.sendError('Please run a GetDP model interactively once with Gmsh to ' +
'initialize the solver location; or set the location by by hand ' +
'in the python script' )
exit(0)
c.sendInfo('Will use gmsh={0} and getdp={1}'.format(mygmsh, mygetdp))
......@@ -45,17 +50,16 @@ machine_pro = c.getPath(machine + '.pro')
angles = [0, 10, 20, 30]
for angle in angles:
c.setNumber('Input/21Start rotor angle [deg]', value=angle)
# run gmsh as a subclient
c.runSubClient('myGmsh', mygmsh + ' ' + machine_geo + ' -2 -v 2')
# run getdp as a subclient
c.runSubClient('myGetDP', mygetdp + ' ' + machine_pro +
' -msh ' + machine_msh +
' -setnumber Flag_PrintFields 0 -solve Analysis -v 2')
# retrieve the torque
torque = c.getNumber('Output - Mechanics/0Torque [Nm]/rotor')
c.sendInfo('Torque={0} for angle={1}'.format(torque, angle))
......@@ -48,7 +48,7 @@ Function {
// OO2 Gander 2002, pp. 46-47
xsimin = 0;
xsimax = Pi / LC;
deltak[] = Pi;
deltak[] = Pi; // Ruyiang+Nicolas test Pi/0.06
alphastar[] = I[] * ((k[]^2 - xsimin^2) * (k[]^2 - (k[]-deltak[])^2))^(1/4);
betastar[] = ((xsimax^2 - k[]^2) * ((k[]+deltak[])^2 - k[]^2))^(1/4);
a[] = - (alphastar[] * betastar[] - k[]^2) / (alphastar[] + betastar[]);
......@@ -67,12 +67,12 @@ Group{
For idom In {0:N_DOM-1}
left = (idom-1)%N_DOM; // left boundary
right = (idom+1)%N_DOM; // right boundary
D() += idom;
Omega~{idom} = Region[((idom+1)*1000+200)];
GammaD0~{idom} = Region[{}];
If(WALLS == 1)
GammaD0~{idom} += Region[ ((idom+1)*1000+202) ];
EndIf
......@@ -84,14 +84,14 @@ Group{
If (idom == 0)
D~{idom} = {right};
Pml~{idom}~{right} = Region[{}];
PmlD0~{idom}~{right} = Region[{}];
PmlInf~{idom}~{right} = Region[{}];
Sigma~{idom}~{right} = Region[ ((idom+1)*1000+20) ];
Sigma~{idom} = Region[{Sigma~{idom}~{right}}] ;
GammaD~{idom} = Region[ ((idom+1)*1000+10) ];
Pml~{idom}~{right} += Region[ ((idom+1)*1000+300) ];
If(WALLS == 1)
......@@ -101,20 +101,20 @@ Group{
PmlInf~{idom}~{right} += Region[ ((idom+1)*1000+302) ];
EndIf
PmlInf~{idom}~{right} += Region[ ((idom+1)*1000+4) ];
BndSigma~{idom}~{right} = Region[{}];
BndSigma~{idom} = Region[{BndSigma~{idom}~{right}}] ;
BndGammaInf~{idom}~{right} = Region[{}];
BndGammaInf~{idom} = Region[{BndGammaInf~{idom}~{right}}] ;
EndIf
If (idom == N_DOM-1)
D~{idom} = {left};
Pml~{idom}~{left} = Region[{}];
PmlD0~{idom}~{left} = Region[{}];
PmlInf~{idom}~{left} = Region[{}];
Sigma~{idom}~{left} = Region[ ((idom+1)*1000+10) ];
Sigma~{idom} = Region[{Sigma~{idom}~{left}}] ;
......@@ -128,27 +128,27 @@ Group{
PmlInf~{idom}~{left} += Region[ ((idom+1)*1000+102) ];
EndIf
PmlInf~{idom}~{left} += Region[ ((idom+1)*1000+1) ];
BndSigma~{idom}~{left} = Region[{}];
BndSigma~{idom} = Region[{BndSigma~{idom}~{left}}] ;
BndGammaInf~{idom}~{left} = Region[{}];
BndGammaInf~{idom} = Region[{BndGammaInf~{idom}~{left}}] ;
EndIf
If (idom >= 1 && idom < N_DOM-1)
D~{idom} = {left, right};
Pml~{idom}~{left} = Region[{}];
Pml~{idom}~{right} = Region[{}];
PmlD0~{idom}~{left} = Region[{}];
PmlD0~{idom}~{right} = Region[{}];
PmlInf~{idom}~{left} = Region[{}];
PmlInf~{idom}~{right} = Region[{}];
Sigma~{idom}~{left} = Region[ ((idom+1)*1000+10) ];
Sigma~{idom}~{right} = Region[ ((idom+1)*1000+20) ];
Sigma~{idom} = Region[{Sigma~{idom}~{left}, Sigma~{idom}~{right}}] ;
GammaD~{idom} = Region[{}];
Pml~{idom}~{left} += Region[ ((idom+1)*1000+100) ];
Pml~{idom}~{right} += Region[ ((idom+1)*1000+300) ];
......@@ -162,11 +162,11 @@ Group{
EndIf
PmlInf~{idom}~{left} += Region[ ((idom+1)*1000+1) ];
PmlInf~{idom}~{right} += Region[ ((idom+1)*1000+4) ];
BndSigma~{idom}~{left} = Region[{}];
BndSigma~{idom}~{right} = Region[{}];
BndSigma~{idom} = Region[{BndSigma~{idom}~{left}, BndSigma~{idom}~{right}}] ;
BndGammaInf~{idom}~{left} = Region[{}];
BndGammaInf~{idom}~{right} = Region[{}];
BndGammaInf~{idom} = Region[{BndGammaInf~{idom}~{left}, BndGammaInf~{idom}~{right}}] ;
......@@ -196,7 +196,7 @@ Function{
idom = ii;
left = (idom-1)%N_DOM; // left boundary
right = (idom+1)%N_DOM; // right boundary
If (idom == 0)
kPml~{idom}~{right}[] = k[ Vector[xSigma~{idom}~{right},Y[],Z[]] ] ;
// Bermudez damping functions
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment