Hi,

„conformal“ means that the mesh should be unique for interfaces between 
touching bodies.
In order to achieve that, you need to make sure that no interface between 
bodies is duplicated.
If you have a smaller surface on top of a larger one, you have to define the 
larger surface with the boundary line of the smaller one as a hole - that is 
what you did with surfaces 200 and 201.
Then just define your rectangular volume using both surfaces. You don’t need to 
make a compound or the like.

HTH,

Matthias

Von: I+D Magna Medic [mailto:ingenie...@magnamedic.com]
Gesendet: Dienstag, 6. Oktober 2015 12:23
An: gmsh@geuz.org
Betreff: [Gmsh] Conformal surfaces.


Dear gMeshers,

I want to build three volumes as input mesh for my solver software (ELMER).  In 
order to make the current flow I've been adviced to make the surfaces between 
them "conformal".

The structure is very simple: a rectangular parallelepiped (30cm x 30 cm x 20 
cm height) and two cilinders touching that body on the top and bottom faces. 
The cilinders act as electrodes (3mm height , 22 cm diameter).

The only thing that I need to know is how to make the coincident surfaces 
"conformal". I think that this means that they should be exactly equal or maybe 
the same surface.

My geo file looks like this: (for simplicity I'll detail the bottom cilinder 
only)

R = 0.11;

Point(1) = {-0.15, -0.15, -0.1, 0.1}; //Bottom face for parallelepiped
Point(2) = {0.15, -0.15, -0.1, 0.1};
Point(3) = {0.15, 0.15, -0.1, 0.1};
Point(4) = {-0.15, 0.15, -0.1, 0.1};
Line(1) = {3, 4};
Line(2) = {4, 1};
Line(3) = {1, 2};
Line(4) = {2, 3};
Line Loop(100) = {1, 2, 3, 4};

Point(5) = { 0, 0, -0.10, 0.1}; //Center for the base of the cilinder
Point(6) = { R, 0, -0.10, 0.1};
Point(7) = { 0, -R, -0.10, 0.1};
Point(8) = {-R, 0, -0.10, 0.1};
Point(9) = { 0, R, -0.10, 0.1};
//Arcs
Circle(5) = {6, 5, 7};
Circle(6) = {7, 5, 8};
Circle(7) = {8, 5, 9};
Circle(8) = {9, 5, 6};
Line Loop(101)= {5, 6, 7, 8};

Now I tried several strategies without good results.

If I make a compound surface, the new one is different than the base of the 
cilinder, let me explain:

Plane Surface (200) = {100, 101};
Plane Surface (201) = {101};
Compound Surface (203) = {200, 201};

The mesh generated by the surface 203 is quite different from those generated 
by 200 or 201. Then I tried:

boundMaster[] = Boundary{Surface{203};};
boundSlave[] = Boundary{Surface{201};};
Periodic Surface 201 {boundSlave[]} = 203 {boundMaster[]};

But this throws an error because boundMaster is empty, this surprised me. And 
if I try to select boundaries by hand gMSH throws "Impossible to take 
boundaries of entity 203 (of type 307)".

My second trial was:

Plane Surface (200) = {100}; //Base of the parallelepiped
Plane Surface (201) = {101}; //Base of the cilinder

boundMaster[] = Boundary{Surface{200};};
boundSlave[] = Boundary{Surface{201};};
Periodic Surface 201 {boundSlave[]} = 200 {boundMaster[]};

This trows: (even if create circles "In Surface 200")

Error : parallel planes do not intersect
Error : parallel planes do not intersect
Error : Only rotations or translations can currently be computed automatically 
for periodic faces: face 201 not meshed.

What would you do?

Thanks in advance, this is halting my work and any help would be appreciated.




_____________________________________________________________________
ERBE Elektromedizin GmbH
Firmensitz: 72072 Tuebingen
Geschaeftsfuehrer: Christian O. Erbe, Reiner Thede
Registergericht: Stuttgart HRB 380137

_______________________________________________
gmsh mailing list
gmsh@geuz.org
http://www.geuz.org/mailman/listinfo/gmsh

Reply via email to