Newer
Older
case 248:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3151 "Gmsh.y"

Christophe Geuzaine
committed
{
extr.mesh.QuadToTri = QUADTRI_DBL_1;
}

Christophe Geuzaine
committed
break;
case 249:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3155 "Gmsh.y"

Christophe Geuzaine
committed
{
extr.mesh.QuadToTri = QUADTRI_DBL_1_RECOMB;
}

Christophe Geuzaine
committed
break;
case 250:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3159 "Gmsh.y"

Christophe Geuzaine
committed
{
extr.mesh.QuadToTri = QUADTRI_SNGL_1;
}

Christophe Geuzaine
committed
break;
case 251:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3163 "Gmsh.y"

Christophe Geuzaine
committed
{
extr.mesh.QuadToTri = QUADTRI_SNGL_1_RECOMB;
}

Christophe Geuzaine
committed
break;
case 252:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3167 "Gmsh.y"
yymsg(0, "Surface %d already exists", num);
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);
}
}
case 253:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3186 "Gmsh.y"
{
if(!strcmp((yyvsp[(2) - (6)].c), "Index"))
extr.mesh.BoundaryLayerIndex = (yyvsp[(4) - (6)].d);
else if(!strcmp((yyvsp[(2) - (6)].c), "View"))
extr.mesh.ViewIndex = (yyvsp[(4) - (6)].d);
Free((yyvsp[(2) - (6)].c));
}
case 254:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3198 "Gmsh.y"
}
case 255:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3202 "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));
}
case 256:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3217 "Gmsh.y"
}
case 257:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3221 "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));
}
case 258:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3233 "Gmsh.y"
{
(yyval.l) = List_Create(1, 1, sizeof(double));
}
case 259:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3237 "Gmsh.y"
{
(yyval.l) = (yyvsp[(2) - (2)].l);
}
case 260:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3242 "Gmsh.y"
}
case 261:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3246 "Gmsh.y"
}
case 262:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3253 "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;
}
}
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));
}
case 263:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3309 "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);
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));
}
case 264:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3379 "Gmsh.y"
yymsg(1, "Elliptic Surface is deprecated: use Transfinite instead (with smoothing)");
}
case 265:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3384 "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{
it != GModel::current()->lastRegion(); it++){
(*it)->meshAttributes.Method = MESH_TRANSFINITE;
}
}
List_Delete(tmp);
}
8337
8338
8339
8340
8341
8342
8343
8344
8345
8346
8347
8348
8349
8350
8351
8352
8353
8354
8355
8356
8357
8358
8359
8360
8361
8362
8363
8364
8365
8366
8367
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));
}
case 266:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3451 "Gmsh.y"

Christophe Geuzaine
committed
{
if(!(yyvsp[(2) - (3)].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->QuadTri = TRANSFINITE_QUADTRI_1;
}
}
else{

Christophe Geuzaine
committed
8395
8396
8397
8398
8399
8400
8401
8402
8403
8404
8405
8406
8407
8408
8409
8410
8411
8412
8413
8414
8415
8416
it != GModel::current()->lastRegion(); it++)
(*it)->meshAttributes.QuadTri = TRANSFINITE_QUADTRI_1;
}
List_Delete(tmp);
}
else{
for(int i = 0; i < List_Nbr((yyvsp[(2) - (3)].l)); i++){
double d;
List_Read((yyvsp[(2) - (3)].l), i, &d);
Volume *v = FindVolume((int)d);
if(v)
v->QuadTri = TRANSFINITE_QUADTRI_1;
else{
GRegion *gr = GModel::current()->getRegionByTag((int)d);
if(gr)
gr->meshAttributes.QuadTri = TRANSFINITE_QUADTRI_1;
else
yymsg(1, "Unknown region %d", (int)d);
}
}
List_Delete((yyvsp[(2) - (3)].l));
}
}

Christophe Geuzaine
committed
break;
case 267:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3487 "Gmsh.y"
{
for(int i = 0; i < List_Nbr((yyvsp[(4) - (7)].l)); i++){
double d;
List_Read((yyvsp[(4) - (7)].l), i, &d);
CTX::instance()->mesh.algo2d_per_face[(int)d] = (int)(yyvsp[(6) - (7)].d);
}
}
break;
case 268:
/* Line 1806 of yacc.c */
#line 3496 "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);
}
8450
8451
8452
8453
8454
8455
8456
8457
8458
8459
8460
8461
8462
8463
8464
8465
8466
8467
8468
8469
8470
8471
8472
8473
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));
}
case 269:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3539 "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{
GFace *gf = GModel::current()->getFaceByTag(j);
if(gf)
gf->meshAttributes.transfiniteSmoothing = (int)(yyvsp[(5) - (6)].d);
else
yymsg(1, "Unknown surface %d", (int)(yyvsp[(5) - (6)].d));
}
case 270:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3564 "Gmsh.y"
if(List_Nbr((yyvsp[(5) - (6)].l)) != List_Nbr((yyvsp[(3) - (6)].l))){
yymsg(0, "Number of master (%d) different from number of slave (%d) lines",
List_Nbr((yyvsp[(5) - (6)].l)), List_Nbr((yyvsp[(3) - (6)].l)));
else{
for(int i = 0; i < List_Nbr((yyvsp[(3) - (6)].l)); i++){
double d_master, d_slave;
List_Read((yyvsp[(5) - (6)].l), i, &d_master);
List_Read((yyvsp[(3) - (6)].l), i, &d_slave);
int j_master = (int)d_master;
int j_slave = (int)d_slave;
Curve *c_slave = FindCurve(abs(j_slave));
if(c_slave){
}
else{
GEdge *ge = GModel::current()->getEdgeByTag(abs(j_slave));
if(ge) ge->setMeshMaster(j_master);
else yymsg(0, "Unknown line %d", j_slave);
}
}
}
List_Delete((yyvsp[(3) - (6)].l));
List_Delete((yyvsp[(5) - (6)].l));
}
case 271:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3592 "Gmsh.y"
if (List_Nbr((yyvsp[(5) - (12)].l)) != List_Nbr((yyvsp[(10) - (12)].l))){
yymsg(0, "Number of master surface edges (%d) different from number of "
"slave (%d) edges", List_Nbr((yyvsp[(10) - (12)].l)), List_Nbr((yyvsp[(5) - (12)].l)));
int j_master = (int)(yyvsp[(8) - (12)].d);
int j_slave = (int)(yyvsp[(3) - (12)].d);
Surface *s_slave = FindSurface(abs(j_slave));
if(s_slave){
s_slave->meshMaster = j_master;
for (int i = 0; i < List_Nbr((yyvsp[(5) - (12)].l)); i++){
double dm, ds;
List_Read((yyvsp[(5) - (12)].l), i, &ds);
s_slave->edgeCounterparts[(int)ds] = (int)dm;
}
}
else{
GFace *gf = GModel::current()->getFaceByTag(abs(j_slave));
if(gf){
gf->setMeshMaster(j_master);
for (int i = 0; i < List_Nbr((yyvsp[(5) - (12)].l)); i++){
double dm, ds;
List_Read((yyvsp[(5) - (12)].l), i, &ds);
List_Read((yyvsp[(10) - (12)].l), i, &dm);
gf->edgeCounterparts[(int)ds] = (int)dm;
}
}
else yymsg(0, "Unknown surface %d", j_slave);
}
List_Delete((yyvsp[(5) - (12)].l));
List_Delete((yyvsp[(10) - (12)].l));
}
case 272:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3635 "Gmsh.y"
setSurfaceEmbeddedPoints(s, (yyvsp[(3) - (10)].l));
}
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));
}
}
case 273:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3658 "Gmsh.y"
setSurfaceEmbeddedCurves(s, (yyvsp[(3) - (10)].l));
}
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));
}
}
case 274:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3681 "Gmsh.y"
}
case 275:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3684 "Gmsh.y"
}
case 276:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3693 "Gmsh.y"
ReplaceAllDuplicates();
}
case 277:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3697 "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));
}
case 278:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3707 "Gmsh.y"
if(List_Nbr((yyvsp[(4) - (6)].l)) >= 2){
double d;
List_Read((yyvsp[(4) - (6)].l), 0, &d);
Vertex *target = FindPoint((int)d);
if(!target)
yymsg(0, "Could not find Point %d", (int)d);
else{
double x = target->Pos.X, y = target->Pos.Y, z = target->Pos.Z;
for(int i = 1; i < List_Nbr((yyvsp[(4) - (6)].l)); i++){
List_Read((yyvsp[(4) - (6)].l), i, &d);
Vertex *source = FindPoint((int)d);
if(!source) yymsg(0, "Could not find Point %d", (int)d);
if(target && source){
source->Typ = target->Typ;
source->Pos.X = x;
source->Pos.Y = y;
source->Pos.Z = z;
source->boundaryLayerIndex = target->boundaryLayerIndex;
}
ExtrudeParams::normalsCoherence.push_back(SPoint3(x, y, z));
}
}
else
yymsg(0, "Need at least two points to merge");
ReplaceAllDuplicates();
List_Delete((yyvsp[(4) - (6)].l));
}
case 279:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3741 "Gmsh.y"
{ (yyval.c) = (char*)"Homology"; }
case 280:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3742 "Gmsh.y"
{ (yyval.c) = (char*)"Cohomology"; }
case 281:
/* Line 1806 of yacc.c */
#line 3747 "Gmsh.y"
Matti Pellika
committed
std::vector<int> domain, subdomain, dim;
GModel::current()->addHomologyRequest((yyvsp[(1) - (2)].c), domain, subdomain, dim);
}
case 282:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3752 "Gmsh.y"
{
Matti Pellika
committed
std::vector<int> domain, subdomain, dim;
for(int i = 0; i < List_Nbr((yyvsp[(3) - (5)].l)); i++){
double d;
List_Read((yyvsp[(3) - (5)].l), i, &d);
domain.push_back((int)d);
Matti Pellika
committed
GModel::current()->addHomologyRequest((yyvsp[(1) - (5)].c), domain, subdomain, dim);
List_Delete((yyvsp[(3) - (5)].l));
}
case 283:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3763 "Gmsh.y"
Matti Pellika
committed
std::vector<int> domain, subdomain, dim;
for(int i = 0; i < List_Nbr((yyvsp[(3) - (7)].l)); i++){
double d;
List_Read((yyvsp[(3) - (7)].l), i, &d);
domain.push_back((int)d);
}
for(int i = 0; i < List_Nbr((yyvsp[(5) - (7)].l)); i++){
double d;
List_Read((yyvsp[(5) - (7)].l), i, &d);
subdomain.push_back((int)d);
}
Matti Pellika
committed
GModel::current()->addHomologyRequest((yyvsp[(1) - (7)].c), domain, subdomain, dim);
List_Delete((yyvsp[(3) - (7)].l));
List_Delete((yyvsp[(5) - (7)].l));
}
case 284:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3780 "Gmsh.y"
Matti Pellika
committed
{
std::vector<int> domain, subdomain, dim;
for(int i = 0; i < List_Nbr((yyvsp[(6) - (10)].l)); i++){
Matti Pellika
committed
double d;
Matti Pellika
committed
domain.push_back((int)d);
}
for(int i = 0; i < List_Nbr((yyvsp[(8) - (10)].l)); i++){
Matti Pellika
committed
double d;
Matti Pellika
committed
subdomain.push_back((int)d);
}
for(int i = 0; i < List_Nbr((yyvsp[(3) - (10)].l)); i++){
Matti Pellika
committed
double d;
Matti Pellika
committed
dim.push_back((int)d);
}
GModel::current()->addHomologyRequest((yyvsp[(1) - (10)].c), domain, subdomain, dim);
List_Delete((yyvsp[(6) - (10)].l));
List_Delete((yyvsp[(8) - (10)].l));
List_Delete((yyvsp[(3) - (10)].l));
}
case 285:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3807 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (1)].d); }
case 286:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3808 "Gmsh.y"
{ (yyval.d) = (yyvsp[(2) - (3)].d); }
case 287:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3809 "Gmsh.y"
{ (yyval.d) = -(yyvsp[(2) - (2)].d); }
case 288:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3810 "Gmsh.y"
{ (yyval.d) = (yyvsp[(2) - (2)].d); }
break;
case 289:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3811 "Gmsh.y"
{ (yyval.d) = !(yyvsp[(2) - (2)].d); }
case 290:
/* Line 1806 of yacc.c */
#line 3812 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) - (yyvsp[(3) - (3)].d); }
case 291:
/* Line 1806 of yacc.c */
#line 3813 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) + (yyvsp[(3) - (3)].d); }
Matti Pellika
committed
break;
case 292:
Matti Pellika
committed
/* Line 1806 of yacc.c */
#line 3814 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) * (yyvsp[(3) - (3)].d); }
case 293:
/* Line 1806 of yacc.c */
#line 3816 "Gmsh.y"
yymsg(0, "Division by zero in '%g / %g'", (yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d));
}
case 294:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3822 "Gmsh.y"
{ (yyval.d) = (int)(yyvsp[(1) - (3)].d) % (int)(yyvsp[(3) - (3)].d); }
case 295:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3823 "Gmsh.y"
{ (yyval.d) = pow((yyvsp[(1) - (3)].d), (yyvsp[(3) - (3)].d)); }
case 296:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3824 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) < (yyvsp[(3) - (3)].d); }
case 297:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3825 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) > (yyvsp[(3) - (3)].d); }
case 298:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3826 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) <= (yyvsp[(3) - (3)].d); }
case 299:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3827 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) >= (yyvsp[(3) - (3)].d); }
case 300:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3828 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) == (yyvsp[(3) - (3)].d); }
case 301:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3829 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) != (yyvsp[(3) - (3)].d); }
case 302:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3830 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) && (yyvsp[(3) - (3)].d); }
case 303:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3831 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (3)].d) || (yyvsp[(3) - (3)].d); }
case 304:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3832 "Gmsh.y"
{ (yyval.d) = (yyvsp[(1) - (5)].d) ? (yyvsp[(3) - (5)].d) : (yyvsp[(5) - (5)].d); }
case 305:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3833 "Gmsh.y"
{ (yyval.d) = exp((yyvsp[(3) - (4)].d)); }
case 306:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3834 "Gmsh.y"
{ (yyval.d) = log((yyvsp[(3) - (4)].d)); }
case 307:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3835 "Gmsh.y"
{ (yyval.d) = log10((yyvsp[(3) - (4)].d)); }
case 308:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3836 "Gmsh.y"
{ (yyval.d) = sqrt((yyvsp[(3) - (4)].d)); }
case 309:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3837 "Gmsh.y"
{ (yyval.d) = sin((yyvsp[(3) - (4)].d)); }

Christophe Geuzaine
committed
case 310:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3838 "Gmsh.y"
{ (yyval.d) = asin((yyvsp[(3) - (4)].d)); }
case 311:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3839 "Gmsh.y"
{ (yyval.d) = cos((yyvsp[(3) - (4)].d)); }
case 312:

Christophe Geuzaine
committed
/* Line 1806 of yacc.c */
#line 3840 "Gmsh.y"
{ (yyval.d) = acos((yyvsp[(3) - (4)].d)); }