[CIG-SHORT] RuntimeError: Determinant of Jacobian

Charles Williams willic3 at gmail.com
Tue May 6 14:18:29 PDT 2014


Hi Marcelo,

The smallest Jacobian (1.5e-3) is pretty small, especially if you’re still using the default normalization (1 km) for PyLith.  It’s hard to know how to improve your mesh quality without knowing how you generated it.  Also, what are the dimensions of your mesh?  There are many strategies for improving mesh quality, and I believe I discussed one or two the other day on this list.

I think you have two options at this point:

1.  Improve the mesh quality in Cubit (look in the manual and on this list for strategies).
2.  Change the default normalization in PyLith (this is described in the PyLith manual).

In either case, you should make sure your mesh is of sufficient quality.  I think the simplest (and probably most diagnostic) metric to use is condition number.  Ideally, you would like each cell to have a condition number less than 2, but in some cases slightly larger values can still work.

Cheers,
Charles


On 7/05/2014, at 9:09 am, Marcelo Contreras <marcontk at gmail.com> wrote:

> Hi Charles,
> 
>        Ok, from cubit’s menu “validate the mesh <— metric : Jacobian”  there isn't bad elements (attached figure).  I tried with some comand to smooth the mesh but without success, in most cases some elements were eliminated. I don't know how should I do it. ¿Do you know? 
> 
> best regards
> Marcelo. 
> 
> <Captura de pantalla 2014-05-06 a la(s) 16.42.00.png>
> 
> 
> El 06-05-2014, a las 1:05, Charles Williams <willic3 at gmail.com> escribió:
> 
>> Hi Marcelo,
>> 
>> The first thing I would do is check the mesh quality in Cubit.  It seems likely you have at least one poorly-formed element.  If you do, you should try smoothing the mesh to improve the quality.  Let me know what happens.
>> 
>> Cheers,
>> Charles
>> 
>> 
>> On 6/05/2014, at 4:38 pm, Marcelo Contreras <marcontk at gmail.com> wrote:
>> 
>>> 
>>> Hi Charles,
>>> 
>>>       I’m following  examples/3d/tet4 in the version 1.9. I generated a mesh like in attached figure and in pylith1.9 can’t fix de error :  
>>> 
>>> RuntimeError: Determinant of Jacobian (2.20698e-11) for cell 4857 is smaller than minimum permissible value (1e-06)!
>>> The two most likely causes of this are highly distorted cells and nondimensionalization with a length scale that is much larger than the dimensions of the cells.
>>> 
>>>    ¿Do you know the problem? ¿How can I fix it? … I attached some files for give you more details.
>>> 
>>> 
>>> 
>>> best regards
>>> Marcelo.
>>> 
>>> <step03.cfg>
>>> <pylithapp.cfg>
>>> <falla_cortical_3d_07.1_02.exo>
>>> 
>>> <Captura de pantalla 2014-05-06 a la(s) 0.20.30.png>
>>> 
>>> 
>>> 
>>> 
>>> marcont at OSXmate~/pylith190/modelos/test_viscoelastic: pylith step03.cfg
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/utils/PetscManager.py:64:initialize
>>>  -- petsc(info)
>>>  -- Initialized PETSc.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/apps/PyLithApp.py:94:main
>>>  -- pylithapp(debug)
>>>  -- [0] CPU time: 0:01.14, Memory usage: 31.27 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/meshio/MeshIOObj.py:55:read
>>>  -- meshiocubit(info)
>>>  -- Reading finite-element mesh
>>>  >> meshio/MeshIOCubit.cc:142:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Reading 2349 vertices.
>>>  >> meshio/MeshIOCubit.cc:197:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Reading 10395 cells in 3 blocks.
>>>  >> meshio/MeshIOCubit.cc:257:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Found 8 node sets.
>>>  >> meshio/MeshIOCubit.cc:285:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Reading node set 'BOUNDARY_XM' with id 1 containing 177 nodes.
>>>  >> meshio/MeshIOCubit.cc:285:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Reading node set 'BOUNDARY_XP' with id 2 containing 173 nodes.
>>>  >> meshio/MeshIOCubit.cc:285:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Reading node set 'BOUNDARY_YM' with id 3 containing 168 nodes.
>>>  >> meshio/MeshIOCubit.cc:285:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Reading node set 'BOUNDARY_YP' with id 4 containing 167 nodes.
>>>  >> meshio/MeshIOCubit.cc:285:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Reading node set 'BOUNDARY_ZM' with id 5 containing 391 nodes.
>>>  >> meshio/MeshIOCubit.cc:285:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Reading node set 'BOUNDARY_ZP' with id 6 containing 424 nodes.
>>>  >> meshio/MeshIOCubit.cc:285:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Reading node set 'FAULT' with id 7 containing 140 nodes.
>>>  >> meshio/MeshIOCubit.cc:285:<unknown>
>>>  -- meshiocubit(info)
>>>  -- Reading node set 'LIM_VISCOELAST' with id 8 containing 395 nodes.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/topology/MeshImporter.py:119:create
>>>  -- meshimporter(info)
>>>  -- Adjusting topology.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/topology/MeshGenerator.py:115:_adjustTopology
>>>  -- meshimporter(info)
>>>  -- Counting vertices for fault 'FAULT'.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/topology/MeshGenerator.py:125:_adjustTopology
>>>  -- meshimporter(info)
>>>  -- Adjusting topology for fault 'FAULT' with 140 vertices.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/apps/PyLithApp.py:106:main
>>>  -- pylithapp(debug)
>>>  -- [0] CPU time: 0:01.40, Memory usage: 39.05 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/TimeDependent.py:92:preinitialize
>>>  -- timedependent(info)
>>>  -- Pre-initializing problem.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:390:_setupMaterials
>>>  -- implicit(info)
>>>  -- Pre-initializing materials.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:391:_setupMaterials
>>>  -- implicit(debug)
>>>  -- [0] CPU time: 0:01.40, Memory usage: 39.12 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/feassemble/FIATSimplex.py:152:initialize
>>>  -- fiatsimplex(info)
>>>  -- Cell geometry: 
>>>  -- <pylith.feassemble.CellGeometry.GeometryTet3D; proxy of <Swig Object of type 'pylith::feassemble::GeometryTet3D *' at 0x1053a8480> >
>>>  -- Vertices: 
>>>  -- [[-1. -1. -1.]
>>>  [ 1. -1. -1.]
>>>  [-1.  1. -1.]
>>>  [-1. -1.  1.]]
>>>  -- Quad pts:
>>>  -- [[-0.5 -0.5 -0.5]]
>>>  -- Quad wts:
>>>  -- [ 1.33333333]
>>>  -- Basis fns @ quad pts ):
>>>  -- [[ 0.25  0.25  0.25  0.25]]
>>>  -- Basis fn derivatives @ quad pts:
>>>  -- [[[ -5.00000000e-01  -5.00000000e-01  -5.00000000e-01]
>>>   [  5.00000000e-01   0.00000000e+00   1.38777878e-17]
>>>   [  0.00000000e+00   5.00000000e-01   0.00000000e+00]
>>>   [  0.00000000e+00   0.00000000e+00   5.00000000e-01]]]
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:400:_setupMaterials
>>>  -- implicit(debug)
>>>  -- [0] CPU time: 0:01.48, Memory usage: 40.24 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:404:_setupMaterials
>>>  -- implicit(info)
>>>  -- Added elasticity integrator for material 'ELASTICO1'.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/feassemble/FIATSimplex.py:152:initialize
>>>  -- fiatsimplex(info)
>>>  -- Cell geometry: 
>>>  -- <pylith.feassemble.CellGeometry.GeometryTet3D; proxy of <Swig Object of type 'pylith::feassemble::GeometryTet3D *' at 0x105950930> >
>>>  -- Vertices: 
>>>  -- [[-1. -1. -1.]
>>>  [ 1. -1. -1.]
>>>  [-1.  1. -1.]
>>>  [-1. -1.  1.]]
>>>  -- Quad pts:
>>>  -- [[-0.5 -0.5 -0.5]]
>>>  -- Quad wts:
>>>  -- [ 1.33333333]
>>>  -- Basis fns @ quad pts ):
>>>  -- [[ 0.25  0.25  0.25  0.25]]
>>>  -- Basis fn derivatives @ quad pts:
>>>  -- [[[ -5.00000000e-01  -5.00000000e-01  -5.00000000e-01]
>>>   [  5.00000000e-01   0.00000000e+00   1.38777878e-17]
>>>   [  0.00000000e+00   5.00000000e-01   0.00000000e+00]
>>>   [  0.00000000e+00   0.00000000e+00   5.00000000e-01]]]
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:400:_setupMaterials
>>>  -- implicit(debug)
>>>  -- [0] CPU time: 0:01.49, Memory usage: 40.25 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:404:_setupMaterials
>>>  -- implicit(info)
>>>  -- Added elasticity integrator for material 'ELASTICO2'.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/feassemble/FIATSimplex.py:152:initialize
>>>  -- fiatsimplex(info)
>>>  -- Cell geometry: 
>>>  -- <pylith.feassemble.CellGeometry.GeometryTet3D; proxy of <Swig Object of type 'pylith::feassemble::GeometryTet3D *' at 0x105950b70> >
>>>  -- Vertices: 
>>>  -- [[-1. -1. -1.]
>>>  [ 1. -1. -1.]
>>>  [-1.  1. -1.]
>>>  [-1. -1.  1.]]
>>>  -- Quad pts:
>>>  -- [[-0.5 -0.5 -0.5]]
>>>  -- Quad wts:
>>>  -- [ 1.33333333]
>>>  -- Basis fns @ quad pts ):
>>>  -- [[ 0.25  0.25  0.25  0.25]]
>>>  -- Basis fn derivatives @ quad pts:
>>>  -- [[[ -5.00000000e-01  -5.00000000e-01  -5.00000000e-01]
>>>   [  5.00000000e-01   0.00000000e+00   1.38777878e-17]
>>>   [  0.00000000e+00   5.00000000e-01   0.00000000e+00]
>>>   [  0.00000000e+00   0.00000000e+00   5.00000000e-01]]]
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:400:_setupMaterials
>>>  -- implicit(debug)
>>>  -- [0] CPU time: 0:01.51, Memory usage: 40.28 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:404:_setupMaterials
>>>  -- implicit(info)
>>>  -- Added elasticity integrator for material 'VISCOSO'.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:420:_setupBC
>>>  -- implicit(info)
>>>  -- Pre-initializing boundary conditions.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:421:_setupBC
>>>  -- implicit(debug)
>>>  -- [0] CPU time: 0:01.51, Memory usage: 40.28 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:439:_setupBC
>>>  -- implicit(info)
>>>  -- Added boundary condition 'BOUNDARY_XP' as a constraint.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:439:_setupBC
>>>  -- implicit(info)
>>>  -- Added boundary condition 'BOUNDARY_XM' as a constraint.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:444:_setupBC
>>>  -- implicit(debug)
>>>  -- [0] CPU time: 0:01.52, Memory usage: 40.29 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:459:_setupInterfaces
>>>  -- implicit(info)
>>>  -- Pre-initializing interior interfaces.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/faults/FaultCohesiveKin.py:108:preinitialize
>>>  -- faultcohesivekin(info)
>>>  -- Pre-initializing fault 'FAULT'.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/feassemble/FIATSimplex.py:152:initialize
>>>  -- fiatsimplex(info)
>>>  -- Cell geometry: 
>>>  -- <pylith.feassemble.CellGeometry.GeometryTri3D; proxy of <Swig Object of type 'pylith::feassemble::GeometryTri3D *' at 0x105958810> >
>>>  -- Vertices: 
>>>  -- [[-1. -1.]
>>>  [ 1. -1.]
>>>  [-1.  1.]]
>>>  -- Quad pts:
>>>  -- [[-1. -1.]
>>>  [ 1. -1.]
>>>  [-1.  1.]]
>>>  -- Quad wts:
>>>  -- [ 0.66666667  0.66666667  0.66666667]
>>>  -- Basis fns @ quad pts ):
>>>  -- [[  1.00000000e+00   2.77555756e-17   0.00000000e+00]
>>>  [  2.77555756e-17   1.00000000e+00   0.00000000e+00]
>>>  [  5.55111512e-17   5.55111512e-17   1.00000000e+00]]
>>>  -- Basis fn derivatives @ quad pts:
>>>  -- [[[-0.5 -0.5]
>>>   [ 0.5  0. ]
>>>   [ 0.   0.5]]
>>> 
>>>  [[-0.5 -0.5]
>>>   [ 0.5  0. ]
>>>   [ 0.   0.5]]
>>> 
>>>  [[-0.5 -0.5]
>>>   [ 0.5  0. ]
>>>   [ 0.   0.5]]]
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:468:_setupInterfaces
>>>  -- implicit(info)
>>>  -- Added interface condition 'FAULT' as an integrator.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:479:_setupInterfaces
>>>  -- implicit(debug)
>>>  -- [0] CPU time: 0:01.53, Memory usage: 40.36 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:188:preinitialize
>>>  -- implicit(info)
>>>  -- Pre-initializing output.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/apps/PyLithApp.py:112:main
>>>  -- pylithapp(debug)
>>>  -- [0] CPU time: 0:01.54, Memory usage: 40.36 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Problem.py:150:verifyConfiguration
>>>  -- timedependent(info)
>>>  -- Verifying compatibility of problem configuration.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/TimeDependent.py:117:initialize
>>>  -- timedependent(info)
>>>  -- Initializing problem.
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:497:_initialize
>>>  -- implicit(debug)
>>>  -- [0] CPU time: 0:01.55, Memory usage: 40.44 MB
>>>  >> /Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py:500:_initialize
>>>  -- implicit(info)
>>>  -- Initializing integrators.
>>> Fatal error. Calling MPI_Abort() to abort PyLith application.
>>> Traceback (most recent call last):
>>>   File "/Users/marcont/pylith190/lib/python2.7/site-packages/pylith/apps/PetscApplication.py", line 65, in onComputeNodes
>>>     self.main(*args, **kwds)
>>>   File "/Users/marcont/pylith190/lib/python2.7/site-packages/pylith/apps/PyLithApp.py", line 116, in main
>>>     self.problem.initialize()
>>>   File "/Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/TimeDependent.py", line 119, in initialize
>>>     self.formulation.initialize(self.dimension, self.normalizer)
>>>   File "/Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Implicit.py", line 127, in initialize
>>>     self._initialize(dimension, normalizer)
>>>   File "/Users/marcont/pylith190/lib/python2.7/site-packages/pylith/problems/Formulation.py", line 504, in _initialize
>>>     integrator.initialize(totalTime, numTimeSteps, normalizer)
>>>   File "/Users/marcont/pylith190/lib/python2.7/site-packages/pylith/feassemble/ElasticityImplicit.py", line 56, in initialize
>>>     ModuleElasticityImplicit.initialize(self, self.mesh())
>>>   File "/Users/marcont/pylith190/lib/python2.7/site-packages/pylith/feassemble/feassemble.py", line 420, in initialize
>>>     def initialize(self, *args): return _feassemble.IntegratorElasticity_initialize(self, *args)
>>> RuntimeError: Determinant of Jacobian (2.20698e-11) for cell 4857 is smaller than minimum permissible value (1e-06)!
>>> The two most likely causes of this are highly distorted cells and nondimensionalization with a length scale that is much larger than the dimensions of the cells.
>>> 
>>> application called MPI_Abort(MPI_COMM_WORLD, -1) - process 0
>>> /Users/marcont/pylith190/bin/nemesis: mpirun: exit 255
>>> /Users/marcont/pylith190/bin/pylith: /Users/marcont/pylith190/bin/nemesis: exit 1
>>> 
>>> 
>>> 
>>> 
>> 
>> Charles A. Williams
>> Scientist
>> GNS Science
>> 1 Fairway Drive, Avalon
>> PO Box 30368
>> Lower Hutt  5040
>> New Zealand
>> ph (office): 0064-4570-4566
>> fax (office): 0064-4570-4600
>> C.Williams at gns.cri.nz
>> 
> 

Charles A. Williams
Scientist
GNS Science
1 Fairway Drive, Avalon
PO Box 30368
Lower Hutt  5040
New Zealand
ph (office): 0064-4570-4566
fax (office): 0064-4570-4600
C.Williams at gns.cri.nz

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geodynamics.org/pipermail/cig-short/attachments/20140507/b8723f9c/attachment-0001.html>


More information about the CIG-SHORT mailing list