I have had reports that gmsh periodic boundaries come with relatively large coordinate variations for points that should match. I'll add a user tolerance to the periodic bc computation at some point.
To test issues with periodic boundary conditions , the first step is to check master-slave pairs by visualising them using the function
You can find it in dolfin/mesh/PeriodicBoundaryComputation.h. Send the computed MeshFunction for different dims (ie., vertices, edges, faces) to a VTK file. All entities will have index 0, 1 or 2, which corresponds to slave, master, nothing (I can't remember the precise order). You will easily spot any entities that do not match up.
I have had reports that gmsh periodic boundaries come with relatively large coordinate variations for points that should match. I'll add a user tolerance to the periodic bc computation at some point.
To test issues with periodic boundary conditions , the first step is to check master-slave pairs by visualising them using the function
static MeshFunction< std::size_ t> PeriodicBoundar yComputation: : masters_ slaves( ....... )
You can find it in dolfin/ mesh/PeriodicBo undaryComputati on.h. Send the computed MeshFunction for different dims (ie., vertices, edges, faces) to a VTK file. All entities will have index 0, 1 or 2, which corresponds to slave, master, nothing (I can't remember the precise order). You will easily spot any entities that do not match up.
Garth