Closed sunethwarna closed 4 years ago
@RiccardoRossi @roigcarlo @philbucher @adityaghantasala I am not sure who should I be tagging about this issue. I tagged only few I know of.
I found a better way to do this without having to introduce additional ghost nodes, hence closing :)
Description I want to calculate nodal normal shape derivatives to make adjoint bossak scheme to work with slip conditions (in the
SensitivityBuilder
). Currently, nodal normals for nodes with SLIP flag is calculated as follows.When shape derivatives are calculated for nodal normals, first I will calculate shape derivatives for condition normals. Then I need to transfer these condition normal shape sensitivities to nodes. Lets look at the following example in MPI. (All of them are surface triangles with SLIP true)
The solid black ones are local nodes for that rank. Grey one is a ghost node. Red and Green ones belong to different ranks than the current rank. If I want to calculate nodal norm shape derivative for middle most node, it will have shape derivatives w.r.t. all of the outer nodes as well because of step 2 described above. I will have to calculate normal shape derivative contributions from each condition and put them in a vector variable in nodes and then assemble them. In order to do proper assembly, I need to have a pre-defined order of normal shape derivatives (according to nodes).
Up to now, I have investigated and I see three potential ways of achieveing this.
FindGlobalNodalNeighboursProcess
and doing the assembly of nodal normal shape derivatives by my-selfI am not sure whether 2nd or 3rd way is the best.. However, if I am to implement 2nd approach, I have following concerns/questions.
RetrieveGlobalIndexedPointersMap
as inFindGlobalNodalNeighboursProcess
, It is a GlobalPointer, what is the proper way to convert them to ghost nodes?)NODAL_CONDITION_NEIGHBOURS
? otherwise for some reason if some one runs the current default find global nodal neighbors process, it will overwrite condition neighbors with element nodal neighbors.I would like to have opinions/solutions for this problem. Thanks all in advance :).