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
