Newer
Older
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);
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;
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);
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);
s->Method = TRANSFINI;

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Transfinite Surface %d: "
s->Method = ELLIPTIC;

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Elliptic Surface %d: "
v->Method = TRANSFINI;

Christophe Geuzaine
committed
yymsg(GERROR, "Wrong definition of Transfinite Volume %d: "
s->Recombine = 1;
s->RecombineAngle = (yyvsp[-1].d > 0 && yyvsp[-1].d < 90) ? yyvsp[-1].d : 90;
s->Recombine = 1;
}
#line 3470 "Gmsh.y"
{ yyval.d = yyvsp[-2].d * yyvsp[0].d; ;
break;}
case 367:
#line 3472 "Gmsh.y"
if(!yyvsp[0].d)
yymsg(GERROR, "Division by zero in '%g / %g'", yyvsp[-2].d, yyvsp[0].d);
else
yyval.d = yyvsp[-2].d / yyvsp[0].d;
#line 3478 "Gmsh.y"
{ yyval.d = (int)yyvsp[-2].d % (int)yyvsp[0].d; ;
#line 3479 "Gmsh.y"
{ yyval.d = pow(yyvsp[-2].d, yyvsp[0].d); ;
#line 3482 "Gmsh.y"
{ yyval.d = yyvsp[-2].d <= yyvsp[0].d; ;
#line 3483 "Gmsh.y"
{ yyval.d = yyvsp[-2].d >= yyvsp[0].d; ;
#line 3484 "Gmsh.y"
{ yyval.d = yyvsp[-2].d == yyvsp[0].d; ;
#line 3485 "Gmsh.y"
{ yyval.d = yyvsp[-2].d != yyvsp[0].d; ;
#line 3486 "Gmsh.y"
{ yyval.d = yyvsp[-2].d && yyvsp[0].d; ;
#line 3487 "Gmsh.y"
{ yyval.d = yyvsp[-2].d || yyvsp[0].d; ;
#line 3488 "Gmsh.y"
{ yyval.d = yyvsp[-4].d? yyvsp[-2].d : yyvsp[0].d; ;
#line 3499 "Gmsh.y"
{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
#line 3507 "Gmsh.y"
{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
#line 3508 "Gmsh.y"
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
#line 3509 "Gmsh.y"
{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
#line 3521 "Gmsh.y"
{ yyval.d = atan2(yyvsp[-3].d, yyvsp[-1].d);;
#line 3529 "Gmsh.y"
{ yyval.d = fmod(yyvsp[-3].d, yyvsp[-1].d); ;
#line 3530 "Gmsh.y"
{ yyval.d = sqrt(yyvsp[-3].d*yyvsp[-3].d+yyvsp[-1].d*yyvsp[-1].d); ;
#line 3531 "Gmsh.y"
{ yyval.d = yyvsp[-1].d*(double)rand()/(double)RAND_MAX; ;
#line 3542 "Gmsh.y"
{ yyval.d = ParUtil::Instance()->rank(); ;
#line 3543 "Gmsh.y"
{ yyval.d = ParUtil::Instance()->size(); ;
break;}
case 425:
#line 3548 "Gmsh.y"
Symbol TheSymbol;
TheSymbol.Name = yyvsp[0].c;
Symbol *pSymbol;
yymsg(GERROR, "Unknown variable '%s'", yyvsp[0].c);
yyval.d = 0.;

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

Christophe Geuzaine
committed
else
yyval.d = (*(double*)List_Pointer_Fast(pSymbol->val, 0) += yyvsp[0].i);
Symbol TheSymbol;
TheSymbol.Name = yyvsp[-4].c;
Symbol *pSymbol;
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-4].c);
yyval.d = 0.;
if((pd = (double*)List_Pointer_Test(pSymbol->val, (int)yyvsp[-2].d)))
yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-4].c, (int)yyvsp[-2].d);
yyval.d = 0.;
double (*pNumOpt)(int num, int action, double value);
StringXNumber *pNumCat;
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);
double (*pNumOpt)(int num, int action, double value);
StringXNumber *pNumCat;

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);
double (*pNumOpt)(int num, int action, double value);
StringXNumber *pNumCat;
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);
double (*pNumOpt)(int num, int action, double value);
StringXNumber *pNumCat;

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);
for(int i = 0; i < 5; i++) yyval.v[i] = yyvsp[-2].v[i] - yyvsp[0].v[i];
for(int 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));
;
break;}
case 452:
#line 3790 "Gmsh.y"
{
List_Add(yyval.l, &(yyvsp[0].l));
;
break;}
case 453:
#line 3798 "Gmsh.y"
yyval.l = List_Create(2, 1, sizeof(double));
List_Add(yyval.l, &(yyvsp[0].d));
pd = (double*)List_Pointer(yyval.l, i);
(*pd) = - (*pd);
yyval.l = List_Create(2, 1, sizeof(double));
for(double 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);
if(!yyvsp[0].d || (yyvsp[-4].d < yyvsp[-2].d && yyvsp[0].d < 0) || (yyvsp[-4].d > yyvsp[-2].d && yyvsp[0].d > 0)){
yymsg(GERROR, "Wrong increment in '%g:%g:%g'", yyvsp[-4].d, yyvsp[-2].d, yyvsp[0].d);
List_Add(yyval.l, &(yyvsp[-4].d));
for(double 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);
// 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);
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);
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);
}
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);
}
// FIXME: The syntax for this is ugly: we get double semi-colons
// at the end of the line
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);
}
yyval.l = List_Create(2, 1, sizeof(double));
Symbol TheSymbol;
TheSymbol.Name = yyvsp[-2].c;
Symbol *pSymbol;
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c);
double d = 0.0;
List_Add(yyval.l, &d);
}
else{
for(int 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));
Symbol TheSymbol;
TheSymbol.Name = yyvsp[-2].c;
Symbol *pSymbol;
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-2].c);
double d = 0.0;
for(int i = 0; i < List_Nbr(pSymbol->val); i++){
double d = - *(double*)List_Pointer_Fast(pSymbol->val, i);
List_Add(yyval.l, &d);
yyval.l = List_Create(2, 1, sizeof(double));
Symbol TheSymbol;
TheSymbol.Name = yyvsp[-5].c;
Symbol *pSymbol;
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-5].c);
double d = 0.0;
for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
int j = (int)(*(double*)List_Pointer_Fast(yyvsp[-2].l, i));
double *pd;
if((pd = (double*)List_Pointer_Test(pSymbol->val, j)))
yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-5].c, j);
yyval.l = List_Create(2, 1, sizeof(double));
Symbol TheSymbol;
TheSymbol.Name = yyvsp[-5].c;
Symbol *pSymbol;
yymsg(GERROR, "Unknown variable '%s'", yyvsp[-5].c);
double d = 0.0;
for(int i = 0; i < List_Nbr(yyvsp[-2].l); i++){
int j = (int)(*(double*)List_Pointer_Fast(yyvsp[-2].l, i));
double *pd;
if((pd = (double*)List_Pointer_Test(pSymbol->val, j))){
yymsg(GERROR, "Uninitialized variable '%s[%d]'", yyvsp[-5].c, j);
yyval.l = List_Create(2, 1, sizeof(double));
List_Add(yyval.l, &(yyvsp[0].d));