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