Newer
Older
Extrude_ProtudeSurface(ROTATE,(int)yyvsp[-8].d,0.,0.,0.,
yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL);
Extrude_ProtudeSurface(TRANSLATE_ROTATE,(int)yyvsp[-10].d,yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],
yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],yyvsp[-4].v[0],yyvsp[-4].v[1],yyvsp[-4].v[2],yyvsp[-2].d,0,NULL);
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
int vol = NEWREG();
Extrude_ProtudeSurface(TRANSLATE,(int)yyvsp[-8].d,yyvsp[-6].v[0],yyvsp[-6].v[1],yyvsp[-6].v[2],
0.,0.,0.,0.,0.,0.,0.,vol,&extr);
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
int vol = NEWREG();
Extrude_ProtudeSurface(ROTATE,(int)yyvsp[-12].d,0.,0.,0.,
yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,vol,&extr);
extr.mesh.ExtrudeMesh = false;
extr.mesh.Recombine = false;
int vol = NEWREG();
Extrude_ProtudeSurface(TRANSLATE_ROTATE,(int)yyvsp[-14].d,yyvsp[-12].v[0],yyvsp[-12].v[1],yyvsp[-12].v[2],
yyvsp[-10].v[0],yyvsp[-10].v[1],yyvsp[-10].v[2],yyvsp[-8].v[0],yyvsp[-8].v[1],yyvsp[-8].v[2],yyvsp[-6].d,vol,&extr);
double d;
extr.mesh.ExtrudeMesh = true;
extr.mesh.NbLayer = List_Nbr(yyvsp[-6].l);
if(List_Nbr(yyvsp[-6].l) == List_Nbr(yyvsp[-4].l) && List_Nbr(yyvsp[-6].l) == List_Nbr(yyvsp[-2].l)){
extr.mesh.NbElmLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
extr.mesh.ZonLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
extr.mesh.hLayer = (double*)Malloc(extr.mesh.NbLayer*sizeof(double));
for(int i=0;i<List_Nbr(yyvsp[-6].l);i++){
List_Read(yyvsp[-6].l,i,&d);
extr.mesh.NbElmLayer[i] = (d>0)?(int)d:1;
extr.mesh.ZonLayer[i] = (int)d;
List_Read(yyvsp[-2].l,i,&d);
extr.mesh.hLayer[i] = d;
}
}
else{

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong layer definition {%d, %d, %d}",
List_Nbr(yyvsp[-6].l), List_Nbr(yyvsp[-4].l), List_Nbr(yyvsp[-2].l));
List_Delete(yyvsp[-6].l);
List_Delete(yyvsp[-4].l);
List_Delete(yyvsp[-2].l);
double d;
extr.mesh.ExtrudeMesh = true;
extr.mesh.NbLayer = List_Nbr(yyvsp[-4].l);
if(List_Nbr(yyvsp[-4].l) == List_Nbr(yyvsp[-2].l)){
extr.mesh.NbElmLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
extr.mesh.ZonLayer = (int*)Malloc(extr.mesh.NbLayer*sizeof(int));
extr.mesh.hLayer = (double*)Malloc(extr.mesh.NbLayer*sizeof(double));
for(int i=0;i<List_Nbr(yyvsp[-4].l);i++){
List_Read(yyvsp[-4].l,i,&d);
extr.mesh.NbElmLayer[i] = (d>0)?(int)d:1;
extr.mesh.ZonLayer[i] = 0;
List_Read(yyvsp[-2].l,i,&d);
extr.mesh.hLayer[i] = d;
}
}
else{

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong layer definition {%d, %d}",
List_Nbr(yyvsp[-4].l), List_Nbr(yyvsp[-2].l));
}
List_Delete(yyvsp[-4].l);
List_Delete(yyvsp[-2].l);
Curve *c;
for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
List_Read(yyvsp[-3].l,i,&d);
j = (int)fabs(d);
c = FindCurve(j,THEM);
if(!c)

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Curve %d", j);
c->Method = TRANSFINI;
c->ipar[0] = (yyvsp[-1].d>2)?(int)yyvsp[-1].d:2;
c->ipar[1] = sign(d);
c->dpar[0] = 1.0;
Curve *c;
for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
List_Read(yyvsp[-6].l,i,&d);
j = (int)fabs(d);
c = FindCurve(j,THEM);
if(!c)

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Curve %d", j);
c->Method = TRANSFINI;
c->ipar[0] = (yyvsp[-4].d>2)?(int)yyvsp[-4].d:2;
c->ipar[1] = sign(d); /* Progresion : code 1 ou -1 */
c->dpar[0] = fabs(yyvsp[-1].d);
Curve *c;
for(i=0;i<List_Nbr(yyvsp[-6].l);i++){
List_Read(yyvsp[-6].l,i,&d);
j = (int)fabs(d);
c = FindCurve(j,THEM);
if(!c)

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Curve %d", j);
c->Method = TRANSFINI;
c->ipar[0] = (yyvsp[-4].d>2)?(int)yyvsp[-4].d:2;
c->ipar[1] = 2*sign(d); /* Bump : code 2 ou -2 */
c->dpar[0] = fabs(yyvsp[-1].d);
Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
if(!s)

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Surface %d", (int)yyvsp[-4].d);
s->Method = TRANSFINI;
k = List_Nbr(yyvsp[-1].l);
if(k!=3 && k!=4){

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Transfinite Surface %d: "
"%d points instead of 3 or 4" , yyvsp[-4].d, k) ;
for(i=0;i<k;i++){
List_Read(yyvsp[-1].l,i,&d);
j = (int)fabs(d);
s->ipar[i] = j;
Surface *s = FindSurface((int)yyvsp[-4].d,THEM);
if(!s)

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Surface %d", (int)yyvsp[-4].d);
s->Method = ELLIPTIC;
k = List_Nbr(yyvsp[-1].l);
if(k != 4)

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Elliptic Surface %d: "
"%d points instead of 4" , yyvsp[-4].d, k) ;
else{
for(i=0;i<k;i++){
List_Read(yyvsp[-1].l,i,&d);
j = (int)fabs(d);
s->ipar[i] = j;
Volume *v = FindVolume((int)yyvsp[-4].d,THEM);
if(!v)

Christophe Geuzaine
committed
yymsg(WARNING, "Unknown Volume %d", (int)yyvsp[-4].d);
v->Method = TRANSFINI;
k = List_Nbr(yyvsp[-1].l);
if(k!=6 && k!=8)

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Transfinite Volume %d: "
"%d points instead of 6 or 8" , yyvsp[-4].d, k) ;
for(i=0;i<k;i++){
List_Read(yyvsp[-1].l,i,&d);
j = (int)fabs(d);
v->ipar[i] = j;
Surface *s;
for(i=0;i<List_Nbr(yyvsp[-3].l);i++){
List_Read(yyvsp[-3].l,i,&d);
j = (int)d;
s = FindSurface(j,THEM);
s->Recombine = 1;
s->RecombineAngle = (yyvsp[-1].d > 0 && yyvsp[-1].d < 90) ? yyvsp[-1].d : 90;
Surface *s;
for(i=0;i<List_Nbr(yyvsp[-1].l);i++){
List_Read(yyvsp[-1].l,i,&d);
j = (int)d;
s = FindSurface(j,THEM);
s->Recombine = 1;
s->RecombineAngle = 30.;
}
{ yyval.d = yyvsp[-2].d - yyvsp[0].d ; ;
{ yyval.d = yyvsp[-2].d + yyvsp[0].d ; ;
{ yyval.d = yyvsp[-2].d * yyvsp[0].d ; ;
break;}
case 343:

Christophe Geuzaine
committed
yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d);
else
yyval.d = yyvsp[-2].d / yyvsp[0].d ;
{ yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d ; ;
{ yyval.d = pow(yyvsp[-2].d,yyvsp[0].d) ; ;
{ yyval.d = yyvsp[-2].d < yyvsp[0].d ; ;
{ yyval.d = yyvsp[-2].d > yyvsp[0].d ; ;
{ yyval.d = yyvsp[-2].d <= yyvsp[0].d ; ;
{ yyval.d = yyvsp[-2].d >= yyvsp[0].d ; ;
{ yyval.d = yyvsp[-2].d == yyvsp[0].d ; ;
{ yyval.d = yyvsp[-2].d != yyvsp[0].d ; ;
{ yyval.d = yyvsp[-2].d && yyvsp[0].d ; ;
{ yyval.d = yyvsp[-2].d || yyvsp[0].d ; ;
{ yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ;
{ yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ;
{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ;
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
{ yyval.d = atan2(yyvsp[-3].d,yyvsp[-1].d); ;
{ yyval.d = fmod(yyvsp[-3].d,yyvsp[-1].d); ;
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
{ yyval.d = ParUtil::Instance()->rank(); ;
{ yyval.d = ParUtil::Instance()->size(); ;
break;}
case 401:
TheSymbol.Name = yyvsp[0].c ;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[0].c) ;

Christophe Geuzaine
committed
else
yyval.d = *(double*)List_Pointer_Fast(pSymbol->val, 0) ;
;
break;}
TheSymbol.Name = yyvsp[-3].c ;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-3].c) ;
yyval.d = 0. ;
}
else{
if((pd = (double*)List_Pointer_Test(pSymbol->val, (int)yyvsp[-1].d)))
yyval.d = *pd ;
else{

Christophe Geuzaine
committed
yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-3].c, (int)yyvsp[-1].d) ;
TheSymbol.Name = yyvsp[-1].c ;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-1].c) ;

Christophe Geuzaine
committed
else
yyval.d = (*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[0].i) ;
TheSymbol.Name = yyvsp[-4].c ;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-4].c) ;
yyval.d = 0. ;
}
else{
if((pd = (double*)List_Pointer_Test(pSymbol->val, (int)yyvsp[-2].d)))

Christophe Geuzaine
committed
yyval.d = (*pd += yyvsp[0].i) ;

Christophe Geuzaine
committed
yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-4].c, (int)yyvsp[-2].d) ;
if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-2].c))){

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-2].c);

Christophe Geuzaine
committed
if(!(pNumOpt = (double (*) (int, int, double))Get_NumberOption(yyvsp[0].c, pNumCat))){

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown numeric option '%s.%s'", yyvsp[-2].c, yyvsp[0].c);

Christophe Geuzaine
committed
else
yyval.d = pNumOpt(0, GMSH_GET, 0);

Christophe Geuzaine
committed
if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-5].c))){

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-5].c);

Christophe Geuzaine
committed
if(!(pNumOpt = (double (*) (int, int, double))Get_NumberOption(yyvsp[0].c, pNumCat))){

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown numeric option '%s[%d].%s'", yyvsp[-5].c, (int)yyvsp[-3].d, yyvsp[0].c);

Christophe Geuzaine
committed
else
yyval.d = pNumOpt((int)yyvsp[-3].d, GMSH_GET, 0);
if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-3].c))){

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-3].c);

Christophe Geuzaine
committed
if(!(pNumOpt = (double (*) (int, int, double))Get_NumberOption(yyvsp[-1].c, pNumCat))){

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown numeric option '%s.%s'", yyvsp[-3].c, yyvsp[-1].c);

Christophe Geuzaine
committed
else
yyval.d = pNumOpt(0, GMSH_SET|GMSH_GUI, pNumOpt(0, GMSH_GET, 0)+yyvsp[0].i);

Christophe Geuzaine
committed
if(!(pNumCat = Get_NumberOptionCategory(yyvsp[-6].c))){

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown numeric option class '%s'", yyvsp[-6].c);

Christophe Geuzaine
committed
if(!(pNumOpt = (double (*) (int, int, double))Get_NumberOption(yyvsp[-1].c, pNumCat))){

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown numeric option '%s[%d].%s'", yyvsp[-6].c, (int)yyvsp[-4].d, yyvsp[-1].c);

Christophe Geuzaine
committed
else
yyval.d = pNumOpt((int)yyvsp[-4].d, GMSH_SET|GMSH_GUI, pNumOpt((int)yyvsp[-4].d, GMSH_GET, 0)+yyvsp[0].i);
memcpy(yyval.v, yyvsp[0].v, 5*sizeof(double)) ;
for(i=0 ; i<5 ; i++) yyval.v[i] = -yyvsp[0].v[i] ;
for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[0].v[i];
for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i] ;
for(i=0 ; i<5 ; i++) yyval.v[i] = yyvsp[-2].v[i] + yyvsp[0].v[i] ;
yyval.v[0]=yyvsp[-9].d; yyval.v[1]=yyvsp[-7].d; yyval.v[2]=yyvsp[-5].d; yyval.v[3]=yyvsp[-3].d; yyval.v[4]=yyvsp[-1].d;
yyval.v[0]=yyvsp[-7].d; yyval.v[1]=yyvsp[-5].d; yyval.v[2]=yyvsp[-3].d; yyval.v[3]=yyvsp[-1].d; yyval.v[4]=1.0;
yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; yyval.v[2]=yyvsp[-1].d; yyval.v[3]=0.0; yyval.v[4]=1.0;
yyval.v[0]=yyvsp[-5].d; yyval.v[1]=yyvsp[-3].d; yyval.v[2]=yyvsp[-1].d; yyval.v[3]=0.0; yyval.v[4]=1.0;
yyval.l=yyvsp[-1].l;
yyval.l = List_Create(2,1,sizeof(List_T*)) ;
List_Add(yyval.l, &(yyvsp[0].l)) ;
{
List_Add(yyval.l, &(yyvsp[0].l)) ;
;
break;}
case 427:
yyval.l = List_Create(2,1,sizeof(double)) ;
List_Add(yyval.l, &(yyvsp[0].d)) ;
yyval.l=yyvsp[-1].l;
for(i=0 ; i<List_Nbr(yyval.l) ; i++){
pd = (double*)List_Pointer(yyval.l, i);
(*pd) = - (*pd);
yyval.l = List_Create(2,1,sizeof(double)) ;
for(d=yyvsp[-2].d ; (yyvsp[-2].d<yyvsp[0].d)?(d<=yyvsp[0].d):(d>=yyvsp[0].d) ; (yyvsp[-2].d<yyvsp[0].d)?(d+=1.):(d-=1.))
List_Add(yyval.l, &d) ;
yyval.l = List_Create(2,1,sizeof(double)) ;
if(!yyvsp[0].d || (yyvsp[-4].d<yyvsp[-2].d && yyvsp[0].d<0) || (yyvsp[-4].d>yyvsp[-2].d && yyvsp[0].d>0)){

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong increment in '%g:%g:%g'", yyvsp[-4].d, yyvsp[-2].d, yyvsp[0].d) ;
List_Add(yyval.l, &(yyvsp[-4].d)) ;
}
else
for(d=yyvsp[-4].d ; (yyvsp[0].d>0)?(d<=yyvsp[-2].d):(d>=yyvsp[-2].d) ; d+=yyvsp[0].d)
List_Add(yyval.l, &d) ;
yyval.l = List_Create(2,1,sizeof(double)) ;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c) ;
d = 0.0 ;
List_Add(yyval.l, &d);
}
else{
for(i = 0 ; i < List_Nbr(pSymbol->val) ; i++)
List_Add(yyval.l, (double*)List_Pointer_Fast(pSymbol->val, i)) ;
yyval.l = List_Create(2,1,sizeof(double)) ;
TheSymbol.Name = yyvsp[-2].c ;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c) ;
for(i = 0 ; i < List_Nbr(pSymbol->val) ; i++){
d = - *(double*)List_Pointer_Fast(pSymbol->val, i);
List_Add(yyval.l, &d) ;
}
yyval.l = List_Create(2,1,sizeof(double)) ;
TheSymbol.Name = yyvsp[-5].c ;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-5].c) ;
}
else{
for(i = 0 ; i < List_Nbr(yyvsp[-2].l) ; i++){
j = (int)(*(double*)List_Pointer_Fast(yyvsp[-2].l, i));
if((pd = (double*)List_Pointer_Test(pSymbol->val, j)))
List_Add(yyval.l, pd) ;
else

Christophe Geuzaine
committed
yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-5].c, j) ;
yyval.l = List_Create(2,1,sizeof(double)) ;
TheSymbol.Name = yyvsp[-5].c ;
if (!(pSymbol = (Symbol*)List_PQuery(Symbol_L, &TheSymbol, CompareSymbols))) {

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-5].c) ;
}
else{
for(i = 0 ; i < List_Nbr(yyvsp[-2].l) ; i++){
j = (int)(*(double*)List_Pointer_Fast(yyvsp[-2].l, i));
if((pd = (double*)List_Pointer_Test(pSymbol->val, j))){
List_Add(yyval.l, &d) ;
}
else

Christophe Geuzaine
committed
yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-5].c, j) ;
}
}
List_Delete(yyvsp[-2].l);
yyval.l = List_Create(2,1,sizeof(double)) ;
List_Add(yyval.l, &(yyvsp[0].d)) ;
for(i=0 ; i<List_Nbr(yyvsp[0].l) ; i++){
List_Read(yyvsp[0].l, i, &d) ;
List_Add(yyval.l, &d) ;
}
yyval.u = PACK_COLOR((int)yyvsp[-7].d, (int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d);
yyval.u = PACK_COLOR((int)yyvsp[-5].d, (int)yyvsp[-3].d, (int)yyvsp[-1].d, 255);
yyval.u = Get_ColorForString(ColorString, -1, yyvsp[0].c, &flag);