Newer
Older
}
yyval.l = List_Create(1, 1, sizeof(Shape));
List_Add(yyval.l, &TheShape);
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;
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.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);
for(i = 0; i < List_Nbr(yyvsp[-3].l); i++){
List_Read(yyvsp[-3].l, i, &d);
j = (int)fabs(d);

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;
for(i = 0; i < List_Nbr(yyvsp[-6].l); i++){
List_Read(yyvsp[-6].l, i, &d);
j = (int)fabs(d);

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);
for(i = 0; i < List_Nbr(yyvsp[-6].l); i++){
List_Read(yyvsp[-6].l, i, &d);
j = (int)fabs(d);

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);

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) ;
j = (int)fabs(d);
s->ipar[i] = j;

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) ;
j = (int)fabs(d);
s->ipar[i] = j;

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

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Transfinite Volume %d: "
"%d points instead of 6 or 8" , yyvsp[-4].d, k) ;
j = (int)fabs(d);
v->ipar[i] = j;
for(i = 0; i < List_Nbr(yyvsp[-3].l); i++){
List_Read(yyvsp[-3].l, i, &d);
s->Recombine = 1;
s->RecombineAngle = (yyvsp[-1].d > 0 && yyvsp[-1].d < 90) ? yyvsp[-1].d : 90;
for(i = 0; i < List_Nbr(yyvsp[-1].l); i++){
List_Read(yyvsp[-1].l, i, &d);
s->Recombine = 1;
s->RecombineAngle = 30.;
}
{ yyval.d = yyvsp[-2].d - yyvsp[0].d ; ;
break;}
case 341:
{ yyval.d = yyvsp[-2].d + yyvsp[0].d ; ;
break;}
case 342:
{ 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 ; ;
break;}
case 345:
#line 2774 "Gmsh.y"
{ yyval.d = pow(yyvsp[-2].d, yyvsp[0].d) ; ;
{ yyval.d = yyvsp[-2].d < yyvsp[0].d ; ;
break;}
case 347:
{ yyval.d = yyvsp[-2].d > yyvsp[0].d ; ;
break;}
case 348:
{ yyval.d = yyvsp[-2].d <= yyvsp[0].d ; ;
break;}
case 349:
{ yyval.d = yyvsp[-2].d >= yyvsp[0].d ; ;
break;}
case 350:
{ yyval.d = yyvsp[-2].d == yyvsp[0].d ; ;
break;}
case 351:
{ yyval.d = yyvsp[-2].d != yyvsp[0].d ; ;
break;}
case 352:
{ yyval.d = yyvsp[-2].d && yyvsp[0].d ; ;
break;}
case 353:
{ yyval.d = yyvsp[-2].d || yyvsp[0].d ; ;
break;}
case 354:
{ yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d ; ;
break;}
case 355:
#line 2794 "Gmsh.y"
{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d); ;
#line 2801 "Gmsh.y"
{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
#line 2802 "Gmsh.y"
{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
break;}
case 375:
{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
break;}
case 376:
#line 2816 "Gmsh.y"
{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d); ;
#line 2823 "Gmsh.y"
{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
#line 2824 "Gmsh.y"
{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
break;}
case 396:
{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
break;}
case 397:
{ yyval.d = ParUtil::Instance()->rank(); ;
break;}
case 400:
{ yyval.d = ParUtil::Instance()->size(); ;
break;}
case 401:
TheSymbol.Name = yyvsp[0].c ;

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

Christophe Geuzaine
committed
else

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) ;

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) ;

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)) ;
;
break;}
case 410:
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;
List_Add(yyval.l, &(yyvsp[0].l)) ;
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.))
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)
7822
7823
7824
7825
7826
7827
7828
7829
7830
7831
7832
7833
7834
7835
7836
7837
7838
7839
7840
7841
7842
7843
7844
7845
7846
7847
7848
7849
7850
7851
7852
7853
7854
7855
7856
7857
7858
7859
7860
7861
7862
7863
7864
7865
7866
7867
7868
7869
7870
7871
7872
7873
7874
7875
7876
7877
#line 3095 "Gmsh.y"
{
// Returns the coordinates of a point and fills a list with it.
// This allows to ensure e.g. that relative point positions are
// always conserved
Vertex *v = FindPoint((int)yyvsp[-1].d, THEM);
yyval.l = List_Create(3, 1, sizeof(double)) ;
if(!v) {
yymsg(GERROR, "Unknown point '%d'", (int) yyvsp[-1].d) ;
double d = 0.0 ;
List_Add(yyval.l, &d);
List_Add(yyval.l, &d);
List_Add(yyval.l, &d);
}
else{
List_Add(yyval.l, &v->Pos.X) ;
List_Add(yyval.l, &v->Pos.Y) ;
List_Add(yyval.l, &v->Pos.Z) ;
}
;
break;}
case 434:
#line 3115 "Gmsh.y"
{
yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)) ;
for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
Shape *s = (Shape*) List_Pointer(yyvsp[0].l, i);
double d = s->Num;
List_Add(yyval.l, &d);
}
;
break;}
case 435:
#line 3124 "Gmsh.y"
{
yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)) ;
for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
Shape *s = (Shape*) List_Pointer(yyvsp[0].l, i);
double d = s->Num;
List_Add(yyval.l, &d);
}
;
break;}
case 436:
#line 3133 "Gmsh.y"
{
yyval.l = List_Create(List_Nbr(yyvsp[0].l), 1, sizeof(double)) ;
for(int i = 0; i < List_Nbr(yyvsp[0].l); i++){
Shape *s = (Shape*) List_Pointer(yyvsp[0].l, i);
double d = s->Num;
List_Add(yyval.l, &d);
}
;
break;}
case 437:
#line 3142 "Gmsh.y"

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c) ;
d = 0.0 ;
List_Add(yyval.l, &d);
}
else{
List_Add(yyval.l, (double*)List_Pointer_Fast(pSymbol->val, i)) ;

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c) ;
d = - *(double*)List_Pointer_Fast(pSymbol->val, i);
List_Add(yyval.l, &d) ;
}

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-5].c) ;
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) ;

Christophe Geuzaine
committed
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-5].c) ;
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);
List_Add(yyval.l, &(yyvsp[0].d)) ;
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);
;
break;}
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);