Newer
Older
yymsg(0, "Wrong layer definition {%d, %d, %d}", List_Nbr((yyvsp[(3) - (9)].l)),
List_Nbr((yyvsp[(5) - (9)].l)), List_Nbr((yyvsp[(7) - (9)].l)));
List_Delete((yyvsp[(3) - (9)].l));
List_Delete((yyvsp[(5) - (9)].l));
List_Delete((yyvsp[(7) - (9)].l));
;}
break;

Christophe Geuzaine
committed
#line 2844 "Gmsh.y"

Christophe Geuzaine
committed
#line 2848 "Gmsh.y"
Surface *s = Create_Surface(num, MSH_SURF_DISCRETE);
Tree_Add(GModel::current()->getGEOInternals()->Surfaces, &s);
extr.mesh.Holes[num].first = (yyvsp[(8) - (9)].d);
extr.mesh.Holes[num].second.clear();
for(int i = 0; i < List_Nbr((yyvsp[(6) - (9)].l)); i++){
double d;
List_Read((yyvsp[(6) - (9)].l), i, &d);
extr.mesh.Holes[num].second.push_back((int)d);
}

Christophe Geuzaine
committed
#line 2871 "Gmsh.y"

Christophe Geuzaine
committed
#line 2875 "Gmsh.y"
if(!strcmp((yyvsp[(2) - (3)].c), "Progression") || !strcmp((yyvsp[(2) - (3)].c), "Power"))
(yyval.v)[0] = 1.;
else if(!strcmp((yyvsp[(2) - (3)].c), "Bump"))
(yyval.v)[0] = 2.;
else{
yymsg(0, "Unknown transfinite mesh type");
(yyval.v)[0] = 1.;
(yyval.v)[1] = (yyvsp[(3) - (3)].d);
Free((yyvsp[(2) - (3)].c));

Christophe Geuzaine
committed
#line 2890 "Gmsh.y"

Christophe Geuzaine
committed
#line 2894 "Gmsh.y"
{
if(!strcmp((yyvsp[(1) - (1)].c), "Right"))
(yyval.i) = 1;
else if(!strcmp((yyvsp[(1) - (1)].c), "Left"))
(yyval.i) = -1;
else // alternated
(yyval.i) = 0;
Free((yyvsp[(1) - (1)].c));
;}
break;

Christophe Geuzaine
committed
#line 2906 "Gmsh.y"
{
(yyval.l) = List_Create(1, 1, sizeof(double));
;}
break;

Christophe Geuzaine
committed
#line 2910 "Gmsh.y"
{
(yyval.l) = (yyvsp[(2) - (2)].l);
;}
break;

Christophe Geuzaine
committed
#line 2915 "Gmsh.y"

Christophe Geuzaine
committed
#line 2919 "Gmsh.y"

Christophe Geuzaine
committed
#line 2926 "Gmsh.y"
int type = (int)(yyvsp[(6) - (7)].v)[0];
double coef = fabs((yyvsp[(6) - (7)].v)[1]);
if(!(yyvsp[(3) - (7)].l)){
List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Curves);
if(List_Nbr(tmp)){
for(int i = 0; i < List_Nbr(tmp); i++){
Curve *c;
List_Read(tmp, i, &c);
c->Method = MESH_TRANSFINITE;
c->nbPointsTransfinite = ((yyvsp[(5) - (7)].d) > 2) ? (int)(yyvsp[(5) - (7)].d) : 2;
c->typeTransfinite = type;
c->coeffTransfinite = coef;
}
}
for(GModel::eiter it = GModel::current()->firstEdge();
it != GModel::current()->lastEdge(); it++){
(*it)->meshAttributes.Method = MESH_TRANSFINITE;
(*it)->meshAttributes.nbPointsTransfinite = ((yyvsp[(5) - (7)].d) > 2) ? (int)(yyvsp[(5) - (7)].d) : 2;
(*it)->meshAttributes.typeTransfinite = type;
(*it)->meshAttributes.coeffTransfinite = coef;
List_Delete(tmp);
}
else{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){
double d;
List_Read((yyvsp[(3) - (7)].l), i, &d);
int j = (int)fabs(d);

Christophe Geuzaine
committed
for(int sign = -1; sign <= 1; sign += 2){
Curve *c = FindCurve(sign * j);
if(c){
c->Method = MESH_TRANSFINITE;
c->nbPointsTransfinite = ((yyvsp[(5) - (7)].d) > 2) ? (int)(yyvsp[(5) - (7)].d) : 2;
c->typeTransfinite = type * sign(d);
c->coeffTransfinite = coef;
}
else{
GEdge *ge = GModel::current()->getEdgeByTag(sign * j);
if(ge){
ge->meshAttributes.Method = MESH_TRANSFINITE;
ge->meshAttributes.nbPointsTransfinite = ((yyvsp[(5) - (7)].d) > 2) ? (int)(yyvsp[(5) - (7)].d) : 2;
ge->meshAttributes.typeTransfinite = type * sign(d);
ge->meshAttributes.coeffTransfinite = coef;
}
else if(sign > 0)

Christophe Geuzaine
committed
yymsg(0, "Unknown line %d", j);
}
}
}
List_Delete((yyvsp[(3) - (7)].l));

Christophe Geuzaine
committed
#line 2982 "Gmsh.y"
int k = List_Nbr((yyvsp[(4) - (6)].l));
if(k != 0 && k != 3 && k != 4){
yymsg(0, "Wrong definition of Transfinite Surface: 0, 3 or 4 points needed");
if(!(yyvsp[(3) - (6)].l)){
List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces);
if(List_Nbr(tmp)){
for(int i = 0; i < List_Nbr(tmp); i++){
Surface *s;
List_Read(tmp, i, &s);
s->Method = MESH_TRANSFINITE;
s->Recombine_Dir = (yyvsp[(5) - (6)].i);
List_Reset(s->TrsfPoints);
for(GModel::fiter it = GModel::current()->firstFace();
it != GModel::current()->lastFace(); it++){
(*it)->meshAttributes.Method = MESH_TRANSFINITE;
(*it)->meshAttributes.transfiniteArrangement = (yyvsp[(5) - (6)].i);
}
}
List_Delete(tmp);
}
else{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
double d;
List_Read((yyvsp[(3) - (6)].l), i, &d);
Surface *s = FindSurface((int)d);
if(s){
s->Method = MESH_TRANSFINITE;
s->Recombine_Dir = (yyvsp[(5) - (6)].i);
List_Reset(s->TrsfPoints);
for(int j = 0; j < k; j++){
double p;
List_Read((yyvsp[(4) - (6)].l), j, &p);
Vertex *v = FindPoint((int)fabs(p));
if(v)
List_Add(s->TrsfPoints, &v);
else
yymsg(0, "Unknown point %d", (int)fabs(p));
}
}
else{
GFace *gf = GModel::current()->getFaceByTag((int)d);
if(gf){
gf->meshAttributes.Method = MESH_TRANSFINITE;
gf->meshAttributes.transfiniteArrangement = (yyvsp[(5) - (6)].i);
for(int j = 0; j < k; j++){
double p;
List_Read((yyvsp[(4) - (6)].l), j, &p);
GVertex *gv = GModel::current()->getVertexByTag((int)fabs(p));
if(gv)
gf->meshAttributes.corners.push_back(gv);
else
yymsg(0, "Unknown point %d", (int)fabs(p));
}
}
else
yymsg(0, "Unknown surface %d", (int)d);
}
List_Delete((yyvsp[(3) - (6)].l));
List_Delete((yyvsp[(4) - (6)].l));

Christophe Geuzaine
committed
#line 3052 "Gmsh.y"
yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)");

Christophe Geuzaine
committed
#line 3057 "Gmsh.y"
int k = List_Nbr((yyvsp[(4) - (5)].l));
if(k != 0 && k != 6 && k != 8){
yymsg(0, "Wrong definition of Transfinite Volume: "
"%d points instead of 6 or 8", k);
if(!(yyvsp[(3) - (5)].l)){
List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Volumes);
if(List_Nbr(tmp)){
for(int i = 0; i < List_Nbr(tmp); i++){
Volume *v;
List_Read(tmp, i, &v);
v->Method = MESH_TRANSFINITE;
List_Reset(v->TrsfPoints);
}
}
else{
for(GModel::riter it = GModel::current()->firstRegion();
it != GModel::current()->lastRegion(); it++){
(*it)->meshAttributes.Method = MESH_TRANSFINITE;
}
}
List_Delete(tmp);
}
7280
7281
7282
7283
7284
7285
7286
7287
7288
7289
7290
7291
7292
7293
7294
7295
7296
7297
7298
7299
7300
7301
7302
7303
7304
7305
7306
7307
7308
7309
7310
for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){
double d;
List_Read((yyvsp[(3) - (5)].l), i, &d);
Volume *v = FindVolume((int)d);
if(v){
v->Method = MESH_TRANSFINITE;
List_Reset(v->TrsfPoints);
for(int i = 0; i < k; i++){
double p;
List_Read((yyvsp[(4) - (5)].l), i, &p);
Vertex *vert = FindPoint((int)fabs(p));
if(vert)
List_Add(v->TrsfPoints, &vert);
else
yymsg(0, "Unknown point %d", (int)fabs(p));
}
}
else{
GRegion *gr = GModel::current()->getRegionByTag((int)d);
if(gr){
gr->meshAttributes.Method = MESH_TRANSFINITE;
for(int i = 0; i < k; i++){
double p;
List_Read((yyvsp[(4) - (5)].l), i, &p);
GVertex *gv = GModel::current()->getVertexByTag((int)fabs(p));
if(gv)
gr->meshAttributes.corners.push_back(gv);
else
yymsg(0, "Unknown point %d", (int)fabs(p));
}
}
yymsg(0, "Unknown volume %d", (int)d);
List_Delete((yyvsp[(3) - (5)].l));
List_Delete((yyvsp[(4) - (5)].l));

Christophe Geuzaine
committed
#line 3124 "Gmsh.y"
if(!(yyvsp[(3) - (5)].l)){
List_T *tmp = Tree2List(GModel::current()->getGEOInternals()->Surfaces);
if(List_Nbr(tmp)){
for(int i = 0; i < List_Nbr(tmp); i++){
Surface *s;
List_Read(tmp, i, &s);
s->Recombine = 1;
s->RecombineAngle = (yyvsp[(4) - (5)].i);
}
7336
7337
7338
7339
7340
7341
7342
7343
7344
7345
7346
7347
7348
7349
7350
7351
7352
7353
7354
7355
7356
7357
7358
7359
7360
for(GModel::fiter it = GModel::current()->firstFace();
it != GModel::current()->lastFace(); it++){
(*it)->meshAttributes.recombine = 1;
(*it)->meshAttributes.recombineAngle = (yyvsp[(4) - (5)].i);
}
}
List_Delete(tmp);
}
else{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){
double d;
List_Read((yyvsp[(3) - (5)].l), i, &d);
Surface *s = FindSurface((int)d);
if(s){
s->Recombine = 1;
s->RecombineAngle = (yyvsp[(4) - (5)].i);
}
else{
GFace *gf = GModel::current()->getFaceByTag((int)d);
if(gf){
gf->meshAttributes.recombine = 1;
gf->meshAttributes.recombineAngle = (yyvsp[(4) - (5)].i);
}
else
yymsg(1, "Unknown surface %d", (int)d);
List_Delete((yyvsp[(3) - (5)].l));

Christophe Geuzaine
committed
#line 3167 "Gmsh.y"
double d;
List_Read((yyvsp[(3) - (6)].l), i, &d);
int j = (int)d;
Surface *s = FindSurface(j);
if(s){
s->TransfiniteSmoothing = (int)(yyvsp[(5) - (6)].d);
}
else{
gf->meshAttributes.transfiniteSmoothing = (int)(yyvsp[(5) - (6)].d);
else
}
List_Delete((yyvsp[(3) - (6)].l));
;}
break;

Christophe Geuzaine
committed
#line 3193 "Gmsh.y"
}
else{
GFace *gf = GModel::current()->getFaceByTag((int)(yyvsp[(8) - (10)].d));
if(gf){
for(int i = 0; i < List_Nbr((yyvsp[(3) - (10)].l)); i++){
int iPoint;
List_Read((yyvsp[(3) - (10)].l), i, &iPoint);
GVertex *gv = GModel::current()->getVertexByTag(iPoint);
if(gv)
gf->addEmbeddedVertex(gv);
else
yymsg(0, "Unknown point %d", iPoint);
}
}
else
yymsg(0, "Unknown surface %d", (int)(yyvsp[(8) - (10)].d));
}

Christophe Geuzaine
committed
#line 3216 "Gmsh.y"
}
else{
GFace *gf = GModel::current()->getFaceByTag((int)(yyvsp[(8) - (10)].d));
if(gf){
for(int i = 0; i < List_Nbr((yyvsp[(3) - (10)].l)); i++){
int iCurve;
List_Read((yyvsp[(3) - (10)].l), i, &iCurve);
GEdge *ge = GModel::current()->getEdgeByTag(iCurve);
if(ge)
gf->addEmbeddedEdge(ge);
else
yymsg(0, "Unknown line %d", iCurve);
}
}
else
yymsg(0, "Unknown surface %d", (int)(yyvsp[(8) - (10)].d));
}

Christophe Geuzaine
committed
#line 3239 "Gmsh.y"

Christophe Geuzaine
committed
#line 3242 "Gmsh.y"

Christophe Geuzaine
committed
#line 3251 "Gmsh.y"
ReplaceAllDuplicates();

Christophe Geuzaine
committed
#line 3255 "Gmsh.y"
{
if(!strcmp((yyvsp[(2) - (3)].c), "Geometry"))
ReplaceAllDuplicates();
else if(!strcmp((yyvsp[(2) - (3)].c), "Mesh"))
GModel::current()->removeDuplicateMeshVertices(CTX::instance()->geom.tolerance);
else
yymsg(0, "Unknown coherence command");
Free((yyvsp[(2) - (3)].c));
;}

Christophe Geuzaine
committed
#line 3272 "Gmsh.y"
int item = 0;
List_Read(temp, i, &item);
domain.push_back(item);
}
int item = 0;
List_Read(temp2, i, &item);
subdomain.push_back(item);
}
Homology* homology = new Homology(GModel::current(), domain, subdomain);
homology->computeBettiNumbers();
delete homology;
#else
yymsg(0, "Gmsh needs to be configured with option Kbipack to use homology computation.");

Christophe Geuzaine
committed
#line 3305 "Gmsh.y"
int item = 0;
List_Read(temp, i, &item);
domain.push_back(item);
}
int item = 0;
List_Read(temp2, i, &item);
subdomain.push_back(item);
}
Homology* homology = new Homology(GModel::current(), domain, subdomain);
homology->findGenerators(fileName);
delete homology;
#else
yymsg(0, "Gmsh needs to be configured with option Kbipack to use homology computation.");

Christophe Geuzaine
committed
#line 3339 "Gmsh.y"
int item = 0;
List_Read(temp, i, &item);
domain.push_back(item);
}
int item = 0;
List_Read(temp2, i, &item);
subdomain.push_back(item);
}
Homology* homology = new Homology(GModel::current(), domain, subdomain);
homology->findDualGenerators(fileName);
delete homology;
#else
yymsg(0, "Gmsh needs to be configured with option Kbipack to use homology computation.");

Christophe Geuzaine
committed
#line 3376 "Gmsh.y"

Christophe Geuzaine
committed
#line 3377 "Gmsh.y"

Christophe Geuzaine
committed
#line 3378 "Gmsh.y"

Christophe Geuzaine
committed
#line 3379 "Gmsh.y"

Christophe Geuzaine
committed
#line 3380 "Gmsh.y"

Christophe Geuzaine
committed
#line 3381 "Gmsh.y"

Christophe Geuzaine
committed
#line 3382 "Gmsh.y"

Christophe Geuzaine
committed
#line 3383 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); ;}
break;

Christophe Geuzaine
committed
#line 3385 "Gmsh.y"
yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));

Christophe Geuzaine
committed
#line 3391 "Gmsh.y"
{ (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); ;}

Christophe Geuzaine
committed
#line 3392 "Gmsh.y"
{ (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); ;}

Christophe Geuzaine
committed
#line 3393 "Gmsh.y"

Christophe Geuzaine
committed
#line 3394 "Gmsh.y"

Christophe Geuzaine
committed
#line 3395 "Gmsh.y"

Christophe Geuzaine
committed
#line 3396 "Gmsh.y"

Christophe Geuzaine
committed
#line 3397 "Gmsh.y"

Christophe Geuzaine
committed
#line 3398 "Gmsh.y"

Christophe Geuzaine
committed
#line 3399 "Gmsh.y"

Christophe Geuzaine
committed
#line 3400 "Gmsh.y"

Christophe Geuzaine
committed
#line 3401 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); ;}

Christophe Geuzaine
committed
#line 3402 "Gmsh.y"

Christophe Geuzaine
committed
#line 3403 "Gmsh.y"

Christophe Geuzaine
committed
#line 3404 "Gmsh.y"

Christophe Geuzaine
committed
#line 3405 "Gmsh.y"

Christophe Geuzaine
committed
#line 3406 "Gmsh.y"

Christophe Geuzaine
committed
#line 3407 "Gmsh.y"

Christophe Geuzaine
committed
#line 3408 "Gmsh.y"

Christophe Geuzaine
committed
#line 3409 "Gmsh.y"

Christophe Geuzaine
committed
#line 3410 "Gmsh.y"

Christophe Geuzaine
committed

Christophe Geuzaine
committed
#line 3411 "Gmsh.y"

Christophe Geuzaine
committed
#line 3412 "Gmsh.y"
{ (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}

Christophe Geuzaine
committed
#line 3413 "Gmsh.y"

Christophe Geuzaine
committed
#line 3414 "Gmsh.y"

Christophe Geuzaine
committed
#line 3415 "Gmsh.y"

Christophe Geuzaine
committed
#line 3416 "Gmsh.y"

Christophe Geuzaine
committed
#line 3417 "Gmsh.y"

Christophe Geuzaine
committed
#line 3418 "Gmsh.y"

Christophe Geuzaine
committed
#line 3419 "Gmsh.y"
{ (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}

Christophe Geuzaine
committed
#line 3420 "Gmsh.y"
{ (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}

Christophe Geuzaine
committed
#line 3421 "Gmsh.y"
{ (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}

Christophe Geuzaine
committed
#line 3422 "Gmsh.y"
{ (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}

Christophe Geuzaine
committed
#line 3424 "Gmsh.y"

Christophe Geuzaine
committed
#line 3425 "Gmsh.y"

Christophe Geuzaine
committed
#line 3426 "Gmsh.y"

Christophe Geuzaine
committed
#line 3427 "Gmsh.y"

Christophe Geuzaine
committed
#line 3428 "Gmsh.y"

Christophe Geuzaine
committed
#line 3429 "Gmsh.y"

Christophe Geuzaine
committed
#line 3430 "Gmsh.y"

Christophe Geuzaine
committed
#line 3431 "Gmsh.y"

Christophe Geuzaine
committed
#line 3432 "Gmsh.y"

Christophe Geuzaine
committed
#line 3433 "Gmsh.y"

Christophe Geuzaine
committed
#line 3434 "Gmsh.y"
{ (yyval.d) = atan2((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d));;}

Christophe Geuzaine
committed
#line 3435 "Gmsh.y"

Christophe Geuzaine
committed
#line 3436 "Gmsh.y"

Christophe Geuzaine
committed
#line 3437 "Gmsh.y"

Christophe Geuzaine
committed
#line 3438 "Gmsh.y"

Christophe Geuzaine
committed
#line 3439 "Gmsh.y"

Christophe Geuzaine
committed
#line 3440 "Gmsh.y"

Christophe Geuzaine
committed
#line 3441 "Gmsh.y"
{ (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}

Christophe Geuzaine
committed
#line 3442 "Gmsh.y"
{ (yyval.d) = fmod((yyvsp[(3) - (6)].d), (yyvsp[(5) - (6)].d)); ;}

Christophe Geuzaine
committed
#line 3443 "Gmsh.y"
{ (yyval.d) = sqrt((yyvsp[(3) - (6)].d) * (yyvsp[(3) - (6)].d) + (yyvsp[(5) - (6)].d) * (yyvsp[(5) - (6)].d)); ;}

Christophe Geuzaine
committed
#line 3444 "Gmsh.y"
{ (yyval.d) = (yyvsp[(3) - (4)].d) * (double)rand() / (double)RAND_MAX; ;}

Christophe Geuzaine
committed
#line 3453 "Gmsh.y"

Christophe Geuzaine
committed
#line 3454 "Gmsh.y"

Christophe Geuzaine
committed
#line 3455 "Gmsh.y"

Christophe Geuzaine
committed
#line 3456 "Gmsh.y"

Christophe Geuzaine
committed
#line 3457 "Gmsh.y"

Christophe Geuzaine
committed
#line 3458 "Gmsh.y"

Christophe Geuzaine
committed
#line 3459 "Gmsh.y"

Christophe Geuzaine
committed
#line 3464 "Gmsh.y"
if(!gmsh_yysymbols.count((yyvsp[(1) - (1)].c))){
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (1)].c));
(yyval.d) = 0.;

Christophe Geuzaine
committed
else

Christophe Geuzaine
committed
#line 3477 "Gmsh.y"
sprintf(tmpstring, "%s_%d", (yyvsp[(1) - (5)].c), (int)(yyvsp[(4) - (5)].d)) ;
if(!gmsh_yysymbols.count(tmpstring)){
yymsg(0, "Unknown variable '%s'", tmpstring);
(yyval.d) = 0.;

Christophe Geuzaine
committed
#line 3489 "Gmsh.y"
int index = (int)(yyvsp[(3) - (4)].d);
if(!gmsh_yysymbols.count((yyvsp[(1) - (4)].c))){
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (4)].c));
(yyval.d) = 0.;
else if((int)gmsh_yysymbols[(yyvsp[(1) - (4)].c)].size() < index + 1){
yymsg(0, "Uninitialized variable '%s[%d]'", (yyvsp[(1) - (4)].c), index);
(yyval.d) = 0.;

Christophe Geuzaine
committed
#line 3504 "Gmsh.y"
if(!gmsh_yysymbols.count((yyvsp[(2) - (4)].c))){
yymsg(0, "Unknown variable '%s'", (yyvsp[(2) - (4)].c));
(yyval.d) = 0.;

Christophe Geuzaine
committed
#line 3514 "Gmsh.y"
if(!gmsh_yysymbols.count((yyvsp[(1) - (2)].c))){
yymsg(0, "Unknown variable '%s'", (yyvsp[(1) - (2)].c));
(yyval.d) = 0.;

Christophe Geuzaine
committed
else
(yyval.d) = (gmsh_yysymbols[(yyvsp[(1) - (2)].c)][0] += (yyvsp[(2) - (2)].i));