From: Vijay S. M. <vi...@gm...> - 2008-11-07 18:13:45
|
That makes a lot more sense. I can loop over the elements depending on the flux type I use for my discretization and infer the coupled dofs I need. Thanks for the help Ben ! On Fri, Nov 7, 2008 at 11:50 AM, Benjamin Kirk <ben...@na...> wrote: >> A clarification regarding what you said: >> >>> The DofMap will add all face neighbor degrees of freedom to an element's >>> coupled dofs if >>> >>> (1) all the variables in the system are discontinuous, or >>> (2) the command line option '--implicit_neighbor_dofs' is specified. >> >> In my system, all variables use disconitnuous basis. And now I tried >> to run the code with --implicit_neighbor_dofs in command line. But I >> still get only the local element dofs and not the neighboring element >> dofs when I populate dofs with the call "dof_map.dof_indices(...)". > > Oh, I see what you want. In your case the sparsity pattern is built up > properly using the neighbor degrees of freedom, but DofMap::dof_indices(...) > will always return only the degrees of freedom an element needs to compute > the solution in that element... > >> Is this what is to be expected or did I try something else than what >> you suggested ? I just need DofMap to tell me which other dof my >> current dofs are coupled to. From what I understand, your reply >> answers that but somehow I do not see the same in my code. Am i >> missing something ? > > So, in your case, when you are computing the face contribution between > 'elem' and 'neighbor', you need DofMap::dof_indices(elem,...) and > DofMap::dof_indices(neighbor,...). This is consistent with the fact that > you will need two FiniteElement objects, one on the local element and one > for the neighbor. > > The total list of Dofs coupled to a given element will be the union of > > DofMap::dof_indices(elem,...) > DofMap::dof_indices(neighbor_0,...) > ... > DofMap::dof_indices(neighbor_N,...) > > Does that help? > > -Ben > > |