[Gmsh] gmsh Digest, Vol 124, Issue 9

Mike Singer msinger2006 at gmail.com
Sun May 5 20:42:06 CEST 2013


> Message: 1
> Date: Sat, 4 May 2013 21:59:20 -0700
> From: David Bernstein <david.bernstein at meliortechnology.com>
> To: gmsh at geuz.org
> Subject: [Gmsh] Compound Volume
> Message-ID:
>        <02129F81-CBDA-4634-B503-CBC65B4B9D03 at meliortechnology.com>
> Content-Type: text/plain; charset=ISO-8859-1
>
>
> Can someone educate me on the correct use of Compound Volume?  The .geo file below makes two unit cubes with a common face and a compound volume out of both cubes.  However, the common face is still meshed.  I though the purpose of a compound volume was to combine volumes so that interior faces are not respected by the mesher.  I know similar questions have been posted before but I haven't found a good answer so I thought I would try it again.
>
> Thanks,
> Dave
>
> a = 0.1;
>
> Point(0) = {0, 0, 0, a};
> Point(1) = {1, 0, 0, a};
> Point(2) = {1, 1, 0, a};
> Point(3) = {0, 1, 0, a};
>
> Point(4) = {0, 0, 1, a};
> Point(5) = {1, 0, 1, a};
> Point(6) = {1, 1, 1, a};
> Point(7) = {0, 1, 1, a};
>
> Point(8)  = {0, 0, 2, a};
> Point(9)  = {1, 0, 2, a};
> Point(10) = {1, 1, 2, a};
> Point(11) = {0, 1, 2, a};
>
> Line(0) = {0, 1};
> Line(1) = {1, 2};
> Line(2) = {2, 3};
> Line(3) = {3, 0};
>
> Line(4) = {4, 5};
> Line(5) = {5, 6};
> Line(6) = {6, 7};
> Line(7) = {7, 4};
>
> Line(8) = {8, 9};
> Line(9) = {9, 10};
> Line(10) = {10, 11};
> Line(11) = {11, 8};
>
> Line(12) = {0, 4};
> Line(13) = {4, 8};
> Line(14) = {1, 5};
> Line(15) = {5, 9};
>
> Line(16) = {2, 6};
> Line(17) = {6, 10};
> Line(18) = {3, 7};
> Line(19) = {7, 11};
>
> Line Loop(0) = {0, 1, 2, 3};
> Line Loop(1) = {4, 5, 6, 7};
> Line Loop(2) = {8, 9, 10, 11};
>
> Line Loop(3) = {1, 16, -5, -14};
> Line Loop(4) = {0, 14, -4, -12};
> Line Loop(5) = {2, 18, -6, -16};
> Line Loop(6) = {3, 12, -7, -18};
>
> Line Loop(7) = {4, 15, -8, -13};
> Line Loop(8) = {5, 17, -9, -15};
> Line Loop(9) = {6, 19, -10, -17};
> Line Loop(10) = {7, 13, -11, -19};
>
> Plane Surface(0) = {0};
> Plane Surface(1) = {1};
> Plane Surface(2) = {2};
> Plane Surface(3) = {3};
> Plane Surface(4) = {4};
> Plane Surface(5) = {5};
> Plane Surface(6) = {6};
> Plane Surface(7) = {7};
> Plane Surface(8) = {8};
> Plane Surface(9) = {9};
> Plane Surface(10) = {10};
>
> Surface Loop(0) = {0, 1, 3, 4, 5, 6};
> Surface Loop(1) = {1, 2, 7, 8, 9, 10};
>
> Volume(0) = {0};
> Volume(1) = {1};
>
> Compound Volume(3) = {0, 1};

> ************************************

Hi Dave,

I think you have to construct the volume from compound surfaces.
Perhaps the updated script below does what you want.

Mike


***************************

a = 0.1;

Point(0) = {0, 0, 0, a};
Point(1) = {1, 0, 0, a};
Point(2) = {1, 1, 0, a};
Point(3) = {0, 1, 0, a};

Point(4) = {0, 0, 1, a};
Point(5) = {1, 0, 1, a};
Point(6) = {1, 1, 1, a};
Point(7) = {0, 1, 1, a};

Point(8)  = {0, 0, 2, a};
Point(9)  = {1, 0, 2, a};
Point(10) = {1, 1, 2, a};
Point(11) = {0, 1, 2, a};

Line(1) = {0, 1};
Line(2) = {1, 2};
Line(3) = {2, 3};
Line(4) = {3, 0};

Line(5) = {4, 5};
Line(6) = {5, 6};
Line(7) = {6, 7};
Line(8) = {7, 4};

Line(9) = {8, 9};
Line(10) = {9, 10};
Line(11) = {10, 11};
Line(12) = {11, 8};

Line(13) = {0, 4};
Line(14) = {4, 8};
Line(15) = {1, 5};
Line(16) = {5, 9};

Line(17) = {2, 6};
Line(18) = {6, 10};
Line(19) = {3, 7};
Line(20) = {7, 11};

Line Loop(21) = {1, 2, 3, 4};
Plane Surface(22) = {21};

Line Loop(23) = {9, 10, 11, 12};
Plane Surface(24) = {23};

Line Loop(25) = {3, 19, -7, -17};
Plane Surface(26) = {25};
Line Loop(27) = {7, 20, -11, -18};
Plane Surface(28) = {27};
Compound Surface(29) = {26, 28};

Line Loop(30) = {2, 17, -6, -15};
Plane Surface(31) = {30};
Line Loop(32) = {6, 18, -10, -16};
Plane Surface(33) = {32};
Compound Surface(34) = {31, 33};

Line Loop(35) = {1, 15, -5, -13};
Plane Surface(36) = {35};
Line Loop(37) = {5, 16, -9, -14};
Plane Surface(38) = {37};
Compound Surface(39) = {36, 38};

Line Loop(40) = {4, 13, -8, -19};
Plane Surface(41) = {40};
Line Loop(42) = {8, 14, -12, -20};
Plane Surface(43) = {42};
Compound Surface(44) = {41, 43};

Surface Loop(45) = {22, 24, 29, 34, 39,  44};
Volume(46) = {45};