# triangular faces have -1 as 4. point.

69 views
Skip to first unread message

Hendrik Mohrmann

unread,
Aug 1, 2013, 10:30:56 AM8/1/13
to sfepy...@googlegroups.com
Hello.
I got the following error message, when I run sfepy with my mesh

  File "/home/rasputin/Uni/sfepy/sfepy/fem/domain.py", line 73, in _region_leaf
    if aux[0] == -1: # Triangular faces have -1 as 4. point.
  IndexError: index 0 is out of bounds for axis 0 with size 0

How would I trace the error? Is it an error from the mesh, so do I have to change the mesh in some way? I checked the .mesh file and there are at least no negative values as suggested by the comment.
I have very basic knowledge about the stuff I am trying to do and I constantly fear that the answers to my questions are very trivial. I just modified one of the given navier-stokes examples and try to run it with my own geometry of a micromixing device. I created the mesh with gmsh and tried the optimize 3D and optimize 3D (Netgen) (without really knowing what they do), but that did not change the error.

Your help would be very much appreciated.

Best, Hendrik

Robert Cimrman

unread,
Aug 1, 2013, 10:59:09 AM8/1/13
to sfepy...@googlegroups.com
Hi Hendrik,
You export the mesh in .mesh (medit) format, right? Make sure that the mesh
contains only the volume elements (in 3D) - try removing faces/edges etc.

If that does not help, send me the mesh off-list.

r.

Hendrik Mohrmann

unread,
Aug 1, 2013, 11:18:18 AM8/1/13
to sfepy...@googlegroups.com
Great, that helped for that issue! Now I got the next error. Sfepy is giving up on my stupid attempts :)


...
sfepy:     fluid
sfepy: ...done in 0.00 s
warp violation 0.000000e+00 at (iel: 0, iqp: 0)!
warp violation 0.000000e+00 at (iel: 0, iqp: 1)!
warp violation 0.000000e+00 at (iel: 0, iqp: 2)!
warp violation -2.282583e-320 at (iel: 0, iqp: 3)!
mem_free_mem(): error exit!
mem_free_mem(): error exit!
mem_free_mem(): error exit!
mem_free_mem(): error exit!
mem_free_mem(): error exit!
mem_free_mem(): error exit!
sfepy: giving up!
Traceback (most recent call last):
  File "./simple.py", line 146, in <module>
    main()
  File "./simple.py", line 143, in main
    app()
  File "/home/rasputin/Uni/sfepy/sfepy/applications/application.py", line 29, in call_basic
    return self.call(**kwargs)
  File "/home/rasputin/Uni/sfepy/sfepy/applications/pde_solver_app.py", line 213, in call
    nls_status=nls_status)
  File "/home/rasputin/Uni/sfepy/sfepy/solvers/ts_solvers.py", line 29, in __call__
    state = problem.solve(state0=state0, nls_status=nls_status)
  File "/home/rasputin/Uni/sfepy/sfepy/fem/problemDef.py", line 933, in solve
    vec = solvers.nls(vec0)
  File "/home/rasputin/Uni/sfepy/sfepy/solvers/nls.py", line 278, in __call__
    vec_r = fun( vec_x )
  File "/home/rasputin/Uni/sfepy/sfepy/fem/evaluate.py", line 52, in eval_residual
    vec_r = self.problem.equations.eval_residuals(vec)
  File "/home/rasputin/Uni/sfepy/sfepy/fem/equations.py", line 583, in eval_residuals
    self.evaluate(mode='weak', dw_mode='vector', asm_obj=out)
  File "/home/rasputin/Uni/sfepy/sfepy/fem/equations.py", line 526, in evaluate
    asm_obj=asm_obj)
  File "/home/rasputin/Uni/sfepy/sfepy/fem/equations.py", line 753, in evaluate
    ret_status=True)
  File "/home/rasputin/Uni/sfepy/sfepy/terms/terms.py", line 1457, in evaluate
    fargs = self.call_get_fargs(_args, kwargs)
  File "/home/rasputin/Uni/sfepy/sfepy/terms/terms.py", line 1278, in call_get_fargs
    fargs = self.get_fargs(*args, **kwargs)
  File "/home/rasputin/Uni/sfepy/sfepy/terms/termsNavierStokes.py", line 54, in get_fargs
    vg, _ = self.get_mapping(state)
  File "/home/rasputin/Uni/sfepy/sfepy/terms/terms.py", line 1205, in get_mapping
    return_key=return_key)
  File "/home/rasputin/Uni/sfepy/sfepy/fem/fields_base.py", line 1036, in get_mapping
    return_mapping=True)
  File "/home/rasputin/Uni/sfepy/sfepy/fem/fea.py", line 349, in describe_geometry
    ori=self.ori)
  File "/home/rasputin/Uni/sfepy/sfepy/fem/mappings.py", line 270, in get_mapping
    cmap.describe(self.coors, self.conn, bf_g, ebf_g, weights)
  File "mappings.pyx", line 101, in sfepy.fem.extmods.mappings.CMapping.describe (sfepy/fem/extmods/mappings.c:2778)
ValueError: ccore error (see above)
 

Another question: Wouldn't it be helpful to post this in a public forum, so everyone would have these helpful information if they google the problem?

Robert Cimrman

unread,
Aug 1, 2013, 11:31:46 AM8/1/13
to sfepy...@googlegroups.com
Could you send me a complete problem description file + mesh so that I can try it?

r.

Hendrik Mohrmann

unread,
Aug 2, 2013, 3:48:07 AM8/2/13
to sfepy...@googlegroups.com
Here they are. Thanks again for your help.

Regards, Hendrik
micromixer.mesh
navier_stokes_mixer.py

Robert Cimrman

unread,
Aug 2, 2013, 4:35:32 AM8/2/13
to sfepy...@googlegroups.com
On 08/02/2013 09:48 AM, Hendrik Mohrmann wrote:
> Here they are. Thanks again for your help.
>
> Regards, Hendrik

The mesh is 3D, but contains only a (partial?) surface made of triangles - no
3D elements like tetrahedrons.

You can see that yourself by running

$ ./postproc.py micromixer.mesh --wireframe

SfePy should definitely die more gracefully in this case. I will add some
checks and hopefully helpful error messages.

r.

Hendrik Mohrmann

unread,
Aug 2, 2013, 5:45:15 AM8/2/13
to sfepy...@googlegroups.com
Oh, I see. Obviously, that won't work. If I do the mesh again and have all tetrahedrals, I get the previous error message "Index 0 out of bounds for axis 0 with size 0". The inlet planes of the mixer are at x=0. Would it help to shift all coordinates to positive values?!

h.

Robert Cimrman

unread,
Aug 2, 2013, 6:25:20 AM8/2/13
to sfepy...@googlegroups.com
On 08/02/2013 11:45 AM, Hendrik Mohrmann wrote:
> Oh, I see. Obviously, that won't work. If I do the mesh again and have all
> tetrahedrals, I get the previous error message "Index 0 out of bounds for
> axis 0 with size 0". The inlet planes of the mixer are at x=0. Would it
> help to shift all coordinates to positive values?!

That would not help - shifting the mesh does not matter. Can you send me the
corrected mesh as well?

r.

Hendrik Mohrmann

unread,
Aug 2, 2013, 7:30:20 AM8/2/13
to sfepy...@googlegroups.com

That would not help - shifting the mesh does not matter. Can you send me the
corrected mesh as well?

r.

 
Here it is. Gmsh saves them with edges which I remove manually in a text editor.

h.
mixertest.mesh
mixertest_including_edges.mesh

Robert Cimrman

unread,
Aug 2, 2013, 8:00:15 AM8/2/13
to sfepy...@googlegroups.com
Ok. I had to make some more edits:

1. removed all triangles
2. all tetrahedrons except one were present two times (with material ids 1 and
66) - I removed all with id 1.

This fixed the error. The mesh is attached.

However, this mesh cannot be used for the actual computation, as there are no
inner vertices, so essentially all degrees of freedom are fixed by boundary
conditions except at inlet and outlet. The mesh needs to be refined.

After running

./script/convert_mesh.py mixertest.mesh mixertest2.mesh -r 2

(use mixertest2.mesh) I have also removed the ebc_3 (Outlet condition), as that
made the solution impossible (incompressibility, same inlet and outlet
velocities, different areas...). Then reduced the inlet velocity to 0.01... and
it works (*). The problem is that sfepy does not have a good flow solver -
Ankit Mahato (our GSoC student) is working on that, so hopefully we will have
something usable in not so distant future.

So it's a bit complicated :]

r.

(*) The boundary regions need to be fixed so that the walls include the
boundary vertices of inlet and outlet, as currently the fluid escapes the domain...

mixertest.mesh

Hendrik Mohrmann

unread,
Aug 2, 2013, 8:31:46 AM8/2/13
to sfepy...@googlegroups.com
Robert, you're my hero! That works just fine! I hope I can continue myself from hereon. The outlet ebc and the missing refinement were indeed quite stupid.

Robert Cimrman

unread,
Aug 2, 2013, 8:46:56 AM8/2/13
to sfepy...@googlegroups.com
Hth!
Reply all
Reply to author
Forward
0 new messages