[Gmsh] Constrained Delaunay. Generating mesh using line boundaries

Oleg Kmechak ofcrashbash at gmail.com
Mon Nov 5 18:46:16 CET 2018


Dear All,

I am trying to generate mesh using api functions  setElements and setNodes.
But encountering few problems.

Mesh should be generated on square region inside of each are boundary
lines(this structures looks similar to binary tree or simple biological
tree with root bounded to square boundary).

Proof of concept I have done using *geo *module:

gmsh::initialize();
model::add("square");
geo::addPoint(0, 0, 0, 0.1, 1);
geo::addPoint(0.5, 0, 0, 0.1, 2);
geo::addPoint(1, 0, 0, 0.1, 3);
geo::addPoint(1, 1, 0, 0.1, 4);
geo::addPoint(0, 1, 0, 0.1, 5);
geo::addPoint(0.5, 0.2, 0, 0.1, 6);
geo::addLine(1, 2, 1);
geo::addLine(2, 3, 2);
geo::addLine(3, 4, 3);
geo::addLine(4, 5, 4);
geo::addLine(5, 1, 5);
geo::addLine(2, 6, 6);
geo::addLine(6, 2, 7);
geo::addCurveLoop({1, 2, 3, 4, 5, 6, 7}, 1);
geo::addPlaneSurface({1}, 6);
geo::synchronize();
model::mesh::generate(2);

pay attention on these two lines its workaround to generate mesh properly

geo::addLine(2, 6, 6);
geo::addLine(6, 2, 7);

For me is more convenient to use setElements and setNodes, there is even
nice example discrete.cpp which creates "by hand" two mesh triangles.
I also tried to create(adopting the discrete.cpp sample)  "by hand" region
using line elements.
but it fails saying next:

*Error : Wrong type of element for Surface 1 *

I used next code:
model::addDiscreteEntity(2, 1);

msh::setNodes(2, 1,
 {1, 2, 3, 4},
{0., 0., 0., //node 1
1., 0., 0., //node 2
 1., 1., 0., //node 3
0., 1., 0.}); //node 4

msh::setElements(2, 1,
{1},//line element
{{1,2,3,4}},//line tags
{{1,2,2,3,3,4,4,1}}); //lines
model::mesh::generate(2);


Also I tried instead of line elements(1) to use point elements(15), error
was the same.
How to generate such mesh without using geo module?

With regards,
Oleg Kmechak
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://onelab.info/pipermail/gmsh/attachments/20181105/bbf8d24e/attachment.html>


More information about the gmsh mailing list