-
Hello, I am trying to get access to solution values at all neighbour nodes of a given node. I can not work out how to do this for nodes that are on the boundary of a processor, i.e. a neighbour is on a different processor. I have had a dig around the old mailing list but could not find an answer, could someone point me in the right direction please? What I have managed so far is that I can find out what the neighbour nodes are using
from which I can then find the degree of freedom for the variable of interest at that node. I do not know how to go from this to the solution values for degree of freedom that don't exist in current_solution. I'm guessing that I need to localise these solution values to make use of them, if so is there a method in LibMesh to do this? Or is there another way I'm missing to achieve this? Any help greatly appreciated! Thanks, Alex |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 1 reply
-
We localize things to current_local_solution for you, but the catch is that we have somewhat restrictive defaults regarding what gets localized, in this "algebraic ghosting". Unless you change the settings, each processor gets access to DoF coefficients for side-neighbors of its own elements, but not any other point-neighbors. The easiest way for you to override that would be by adding a more expansive "ghosting functor" to the algebraic ghosting functors used by the DofMap of the system for which you want more values localized. |
Beta Was this translation helpful? Give feedback.
We localize things to current_local_solution for you, but the catch is that we have somewhat restrictive defaults regarding what gets localized, in this "algebraic ghosting". Unless you change the settings, each processor gets access to DoF coefficients for side-neighbors of its own elements, but not any other point-neighbors.
The easiest way for you to override that would be by adding a more expansive "ghosting functor" to the algebraic ghosting functors used by the DofMap of the system for which you want more values localized.
DofMap::add_algebraic_ghosting_functor()
is the method to add a new functor to that set, and you probably want to pass ashared_ptr<GhostPointNeighbors>
to it.