Hi there Andrew, I think that fe.component_to_system_index could give you what you want. You would use it in a loop over the desired faces. It takes two unsigned ints if I remember right: one is the component you want and the other which support point for that component. I forget how it handles the situation where one component has fewer support points, like pressure often does. It gives you the local_index that can be used in the standard local_dof_indices (local_index) to get the global dof index (filled using cell->get_dof_indices (local_dof_indices). The method also has an inverse (system_to_component_index) that takes the local_dof_index (on the cell) and gives you the two variables I mentioned above. You can then test to see if it is the component you are interested in but this is probably more expensive. In either case you need to use it in a loop over the desired faces.
Cheers, Michael On Tue, Mar 15, 2011 at 4:22 PM, Andrew McBride <[email protected]> wrote: > Hi all > I'm trying to implement periodic boundary conditions on pairs of opposite > faces of a cube in 3D. The problem is mixed in that each element has > vectorial (continuous) displacements, and (discontinuous) pressures and > dilatation as unknowns. I wish to impose periodicity between the > displacement degrees of freedom only. > I've adapted a 2d periodic boundary conditions algorithm. I've sorted the > faces of the element on the opposite sides based on the position of the > centroid of the elements face. The problem is now to match degrees of > freedom on opposite faces. I can determine if they are associated with the > displacements and to which local support point they correspond but this does > not give me a geometric measure to order the dof. > I can't restrict the problem to only Q_1 elements for the displacement but > it will always be Q_something. > Is there any way to use a function > like DoFTools::map_dofs_to_support_points but to restrict its operation to > only certain components? Or, if I know a dof index (local or global) can I > determine the position of the support point? In other words, is there a > function like DoFTools::map_dofs_to_support_point that only works with one > dof at a time. > I would appreciate any suggestions as I'm sure I'm not the first to do this > Thanks as ever > andrew > _______________________________________________ > dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii > > _______________________________________________ dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii
