Hi, Folks --

I am working on a code in which I need to make use of a non-standard 
parallel distribution of elements to processors.  Because this 
distribution seems likely not to be well-suited for most operations, I 
perform most operations using whatever data distribution is determined 
by libMesh.

To setup vectors to allow me to access the data needed in the 
"non-standard" distribution, I determine the collection of elements 
which are required on each processor and then create a ghosted vector 
which sets the ghost DOFs to be whatever DOFs are associated with the 
elements of this second parallel distribution.

This approach usually seems to work, but I have run into some problems 
when the problem includes periodic boundary conditions.  These problems 
appear to be related to failing to enforce periodic DOF constraints in 
solution vectors.  I've tried adding additional calls to 
enforce_constraints_exactly() before operations where it seems important 
for periodic copies of values to be synchronized, but I now get 
assertion failures, e.g.:

Assertion `it!=_global_to_local_map.end()' failed.
[2] /Users/griffith/sfw/libmesh/include/numerics/petsc_vector.h, line 
1070, compiled Apr 26 2010 at 09:53:59
terminate called after throwing an instance of 'libMesh::LogicError'
   what():  Error in libMesh internal logic

Similar assertion failures do not seem to occur when I call 
enforce_constraints_exactly() on vectors for which I have not mucked 
around with the ghost DOF indices.

Are there specific ghost DOFs that are required if I wish to enforce DOF 
constraints, e.g., periodic boundary conditions?

Thanks,

-- Boyce

------------------------------------------------------------------------------

_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to