Dear all,
I have found the following behavior that seems very weird to me. The
attached code generates a non-structured but periodic cube. It works
fine when the size of the cube (L in the code) is 10, but it fails when
the size of the cube is 1, even though there are always 10 nodes per
side (l = L/10 in the code)... Is there something wrong I am doing? To
test the code, I simply run:
gmsh -3 test.geo; gmsh test.msh
Many thanks in advance for your precious help,
Martin.
On 10/13/2009 02:30 AM, Martin Genet wrote:
A solution is attached. Many thanks! Martin.
On lundi 12 octobre 2009 21:34:33, Martin Genet wrote:
Hello all!
I am trying to generate the faces of a cube with periodic meshes. However, I do
not succeed.
The code is attached. I do not get any error, but only the first two surfaces
are generated. A few points:
- I can generate each pair of surfaces independantly: the problem only occurs
when I try to generate all surfaces in the same code.
- When I change the extrude vectors (e.g. -L instead of L), everything is
alright and I get all surfaces.
- When I change the extrude vector of the second and third pairs (e.g. -L instead of
L), only the extruded surfaces are generated, and I get some "Error : Unknown source
surface 42 for extrusion".
Many thanks for your help!
Martin.
General.Terminal = 1;
L = 10;
l = L/10;
P1 = newp; Point(P1) = {0, 0, 0, l};
P2 = newp; Point(P2) = {L, 0, 0, l};
P3 = newp; Point(P3) = {L, 0, L, l};
P4 = newp; Point(P4) = {0, 0, L, l};
P5 = newp; Point(P5) = {0, L, 0, l};
P6 = newp; Point(P6) = {L, L, 0, l};
P7 = newp; Point(P7) = {L, L, L, l};
P8 = newp; Point(P8) = {0, L, L, l};
L01 = newl; Line(L01) = {P1, P2};
L02 = newl; Line(L02) = {P2, P3};
L03 = newl; Line(L03) = {P3, P4};
L04 = newl; Line(L04) = {P4, P1};
L05 = newl; Line(L05) = {P2, P6};
L06 = newl; Line(L06) = {P6, P7};
L07 = newl; Line(L07) = {P7, P3};
L08 = newl; Line(L08) = {P6, P5};
L09 = newl; Line(L09) = {P5, P8};
L10 = newl; Line(L10) = {P8, P7};
L11 = newl; Line(L11) = {P5, P1};
L12 = newl; Line(L12) = {P4, P8};
LL1 = newll; Line Loop(LL1) = { L01, L02, L03, L04};
LL2 = newll; Line Loop(LL2) = { L05, L06, L07, -L02};
LL3 = newll; Line Loop(LL3) = { L08, L09, L10, -L06};
LL4 = newll; Line Loop(LL4) = { L11, -L04, L12, -L09};
LL5 = newll; Line Loop(LL5) = { L01, L05, L08, L11};
LL6 = newll; Line Loop(LL6) = {-L03, -L07, -L10, -L12};
Geometry.AutoCoherence = 0;
S1 = news; Plane Surface(S1) = {LL1};
out[] = Extrude {0., L, 0.} { Surface{S1}; Layers{{1}, {1}}; };
S3 = out[0];
Delete {Volume {out[1]};}
Delete {Surface {out[2]};}
Delete {Surface {out[3]};}
Delete {Surface {out[4]};}
Delete {Surface {out[5]};}
S4 = news; Plane Surface(S4) = {LL4};
out[] = Extrude {L, 0., 0.} { Surface{S4}; Layers{{1}, {1}}; };
S2 = out[0];
Delete {Volume {out[1]};}
Delete {Surface {out[2]};}
Delete {Surface {out[3]};}
Delete {Surface {out[4]};}
Delete {Surface {out[5]};}
S5 = news; Plane Surface(S5) = {LL5};
out[] = Extrude {0., 0., L} { Surface{S5}; Layers{{1}, {1}}; };
S6 = out[0];
Delete {Volume {out[1]};}
Delete {Surface {out[2]};}
Delete {Surface {out[3]};}
Delete {Surface {out[4]};}
Delete {Surface {out[5]};}
Geometry.AutoCoherence = 1;
Coherence;
SL1 = newsl; Surface Loop(SL1) = {S1, -S3, S4, -S2, S5, -S6};
V1 = newv; Volume(V1) = {SL1};
// Physical Surface ( "surf" ) = { S1, S2, S3, S4, S5, S6 };
Physical Volume ( "vol" ) = { V1 };
_______________________________________________
gmsh mailing list
[email protected]
http://www.geuz.org/mailman/listinfo/gmsh