Even no. of nodes on curves, odd in loop - why?

Hello.

I have a surface with 4 curves. Each curve has 7 nodes, so the total for the loop should 28, but Trelis is counting 25. Hence, when I try to mesh this surface, I get the “odd no. of nodes, can’t mesh/no good” error.

I’m not sure what’s happening. I specified the same node distribution in gmsh and it worked. Can someone help me fix this please?

Thanks.

Let me see if I can help. How are the nodes distributed on the curves? For example, if I create a rectangle and set an interval of 6 on the curves, when I mesh the curves each curve has a node at each end and five nodes between them for a total of seven nodes. Here is my example:

create surface rectangle width 1 zplane
curve 1 2 3 4 interval 6
curve 1 2 3 4 scheme equal
mesh curve 1 2 3 4
list node

nodes.jpg

Because the node at each curve endpoint is shared with the adjacent curves, in my example I have have 24 nodes. Could you share a journal file with an example of what you are seeing?

curve 104 105 interval 7 preview
curve 104 105 interval 7
curve 104 105 scheme equal
mesh curve 104 105
curve 103 7 interval 7 preview
curve 103 7 scheme bias factor 1.30 preview
curve 103 7 scheme bias factor 1.30
mesh curve 103 7

After running this, each curve should have 8 nodes. 6 unique ones, so that’s 6x4=24. And 4 shared ones. So that should be a total of 28. When I select the 4 curves, I’m seeing 29 nodes. And Trelis is unable to mesh the surface because of that.

Now I could change the number nodes on one curve, but I’d prefer not to.
nodes.png

The picture is very helpful. Without having your actual model, I would guess that the curves might be over-constrained by the adjacent curves and surfaces. You might relax some of the constraints and allow Trelis’ interval matcher to do it automatically.

Here’s an example of setting too many intervals:

reset
create surf rect width 1
surf 1 copy move x -1
surf 1 copy move x 1
surf 1 copy move y 1
surf 1 copy move y -1
surf 1 copy move x 1 y 1
surf 1 copy move x -1 y 1
surf 1 copy move x -1 y -1
surf 1 copy move x 1 y -1
#Set intervals
curve in surf 2 int 2
curve in surf 3 int 3
curve in surf 4 int 4
curve in surf 5 int 5
curve in surf 6 int 6
curve in surf 7 int 7
curve in surf 8 int 8
curve in surf 9 int 9

Look at what happens to the intervals of the curves when the surrounding intervals are hard set:

intervals1.jpg

Now try to mesh the curves or surfaces:

merge all
mesh surf all

There are a lot of errors related to interval matching:

WARNING: An odd number of intervals are meshed or hard set on a loop of Surface 6 (Surface 6), scheme pave.
WARNING: An odd number of intervals are meshed or hard set on a loop of Surface 8 (Surface 8), scheme pave.

WARNING: Matching Intervals failed.
Hint: You can group the infeasible part of the problem next time via
‘Match Interval Assign Groups Infeasible’.
WARNING: Curve intervals are probably incompatibly hard-set.
Hint: label curve firmness.
WARNING: Mapping subproblem 1 of 2 was infeasible.

WARNING: Matching Intervals failed.
Hint: You can group the infeasible part of the problem next time via
‘Match Interval Assign Groups Infeasible’.
WARNING: Curve intervals are probably incompatibly hard-set.
Hint: label curve firmness.
WARNING: Mapping subproblem 2 of 2 was infeasible.
ERROR:
Matching intervals <<< UNSUCCESSFUL >>>

ERROR:
Interval assignment unsuccessful.

ERROR:
Skipping meshing, since matching intervals failed.