The mentioned error seems to be fixed in development version of DOLFIN. Your code passes ok - it just refines elsewhere than necessary. Switching the inequality sign in
cell_markers[c] = gamma[c.index()] > gamma_0 seems to behave better. FEniCS 1.6.0 including Debian/Ubuntu binary packages should be released soon. Jan On Wed, 8 Jul 2015 10:40:01 +0000 Drew Parsons <d.pars...@murdoch.edu.au> wrote: > I apologise for that, I missed a couple of details when I prepared a > minimum test case. The variable should have been grad_u not Efield. > Fixing that, the test case (in 2-D) does run successfully. > > I've clarified that my problem comes from trying to solve in 1D rather > than 2D, starting from a UnitIntervalMesh instead of UnitSquareMesh. > > I've double checked that the attached script gives the error > Vertex index (7) out of range [0, 7). > after identifying the refinement conditions > 2 cells out of 4 marked for refinement (50.0%). > > Drew > > On Wed, 2015-07-08 at 11:42 +0200, Jan Blechta wrote: > > Attached script does not reproduce alleged problem. Instead it fails > > with message > > > > Traceback (most recent call last): > > File "demo_adaptive-poisson.py", line 74, in <module> > > gamma = abs(Efield.vector().array()) > > NameError: name 'Efield' is not defined > > > > Could you fix it to reproduce the problem? > > > > Jan > > > > > > On Mon, 6 Jul 2015 11:41:20 +0000 > > Drew Parsons <d.pars...@murdoch.edu.au> wrote: > > > > > Hi Fenics Folk, > > > > > > I'm not expert in Fenics/Dolfin, I'm evaluating to see if it can > > > perform better than a calculation I've currently got implemented > > > in octave (matlab). > > > > > > My problem in octave is that it fails to find the solution to > > > Poisson's equation when the electric field is extremely large. It > > > uses an adaptive spacing (1D mesh) but it complains that it can't > > > make > > > intervals any finer and reached the iteration limit. Perhaps > > > Fenics > > > can do a better job? > > > > > > So I'm testing your adaptive Poisson example, > > > /usr/share/dolfin/demo/undocumented/adaptive-poisson/ > > > (maybe the documented auto-adaptive-poisson is better for me, but > > > anyway). > > > > > > The demo works fine. It uses "gamma" as the criterion for mesh > > > refinement, based on curvatures. > > > > > > I've replaced gamma in the example with the absolute value of the > > > gradient, > > > grad_u = project(grad(u), VectorFunctionSpace(mesh, > > > "Lagrange", 1)) gamma = abs(Efield.vector().array()) > > > > > > The error estimate E (E=gamma*gamma) doesn't make sense then, but > > > mesh > > > refinement should still work, right? > > > > > > Mesh refinement does work twice, but in the third iteration it > > > fails > > > with the error: > > > *** Error: Unable to add cell using mesh editor. > > > *** Reason: Vertex index (13) out of range [0, 11). > > > *** Where: This error was encountered inside MeshEditor.cpp. > > > > > > The value of cell_markers going into refine() seems sensible, "3 > > > cells > > > out of 7 marked for refinement (42.9%)." So I don't understand > > > why refine() would fail like this. > > > > > > So I wanted to check with you if this is a normal error or not. > > > If it > > > is normal than please tell me so and I'll keep studying the Fenics > > > system. > > > > > > I'm attaching my python file, which is identical to the one in the > > > adaptive-poisson example, apart from the change in definition of > > > gamma > > > (and a couple of print statements). > > > > > > I'm using DOLFIN version: 1.5.0 on Debian unstable. > > > > > > Thanks, > > > > > > Drew Parsons > > > > > _______________________________________________ fenics mailing list fenics@fenicsproject.org http://fenicsproject.org/mailman/listinfo/fenics