[Gmsh] cannot bind multiple regions to single tag
Christophe Geuzaine
cgeuzaine at ulg.ac.be
Tue Oct 10 17:26:29 CEST 2017
> On 6 Oct 2017, at 17:04, Lik Chuan Lee <likchuan at gmail.com> wrote:
>
> Hi,
>
> When I tried to join 2 volumes by "BooleanUnion" in the last line of the following code, it has an error "cannot bind multiple regions to single tag 15". Does anybody know what that error means?
>
> Thanks.
>
>
> SetFactory("OpenCASCADE");
>
> h = 2.00;
>
> LVirad = 3.0;
> LVthick = 1.0;
> LVolength = 6.0;
>
> LVorad = LVirad + LVthick;
> LVilength = LVolength - LVthick;
>
> RV_offset = 3.0;
> RVirad = 3.0;
> RVthick = 0.5;
> RVolength = 5.0;
>
> RVorad = RVirad + RVthick;
> RVilength = RVolength - RVthick;
>
> diam = LVorad+LVolength;
> bx = -LVolength;
> by = -LVolength;
>
> Box(1) = {0.0, bx, by, diam, diam, diam};
> Sphere(2) = {0.0, 0.0, 0.0, 1.0};
> Dilate {{0.0, 0.0 ,0.0}, {LVolength, LVorad, LVorad}}{
> Volume{2};
> }
>
> BooleanDifference(3) = {Volume{2}; Delete;}{Volume{1};};
>
> Sphere(4) = {0.0, 0.0, 0.0, 1.0};
> Dilate {{0.0, 0.0 ,0.0}, {LVilength, LVirad, LVirad}}{
> Volume{4};
> }
>
> BooleanDifference(5) = {Volume{4}; Delete;}{Volume{1}; Delete;};
> BooleanDifference(6) = {Volume{3}; Delete;}{Volume{5}; Delete;};
>
>
> Box(100) = {0.0, bx+RV_offset, by+RV_offset-2, RV_offset+2*RVorad, RV_offset+2*RVorad, RV_offset+RVolength+2};
> Sphere(7) = {0.0, RV_offset, 0.0, 1};
> Dilate {{0.0, RV_offset ,0.0}, {RVorad, RVorad, RVolength}}{
> Volume{7};
> }
> BooleanDifference(8) = {Volume{7}; Delete;}{Volume{100}; Delete;};
>
> Box(101) = {0.0, bx+RV_offset, by+RV_offset-2, RV_offset+2*RVirad, RV_offset+2*RVirad, RV_offset+RVilength+2};
> Sphere(9) = {0.0, RV_offset, 0.0, 1};
> Dilate {{0.0, RV_offset ,0.0}, {RVirad, RVirad, RVilength}}{
> Volume{9};
> }
> BooleanDifference(10) = {Volume{9}; Delete;}{Volume{101}; Delete;};
> BooleanDifference(11) = {Volume{8}; Delete;}{Volume{10}; Delete;};
>
>
> Sphere(13) = {0.0, 0.0, 0.0, 1.0};
> Dilate {{0.0, 0.0 ,0.0}, {LVolength-0.3, LVorad-0.3, LVorad-0.3}}{
> Volume{13};
> }
>
> BooleanDifference(14) = {Volume{11}; Delete;}{Volume{13}; Delete;};
>
>
> BooleanUnion(15) = {Volume{6}; Delete;}{Volume{14}; Delete;};
>
The boolean union will return more that one volume. So you cannot bind the result explicitly to a single tag (15). You should use the implicit form of the command:
a() = BooleanUnion{Volume{6}; Delete;}{Volume{14}; Delete;} ;
a() will contain the list of volumes.
Christophe
>
>
>
> _______________________________________________
> gmsh mailing list
> gmsh at onelab.info
> http://onelab.info/mailman/listinfo/gmsh
--
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science
http://www.montefiore.ulg.ac.be/~geuzaine
Free software: http://gmsh.info | http://getdp.info | http://onelab.info
More information about the gmsh
mailing list