The treatment of Dirichlet conditions was today updated at "devel" branch. The following mainly involves those writing their own modules. In short, before the conditions were usually set directly to the matrix structures when the conditions where found. Now all the conditions are stored to A % Dvalues and a flag is raised at A % ConstraintDOF (here A is the stiffness matrix). Only at the end the matrix structure itself is manipulated.The initial motivation for the change was the new treatment of orphan nodes in parallel introduced some time ago. There has been a risk that such orphans could be inconsistently treated in unfortunately partitionings. The new way requires the two vectors but has also several advantages:The conditions are always communicated in parallel Setting up symmetric conditions is much more efficient Scaling need not to be considered while finding the conditions. Only when manipulating the matrix do we need to know about the scaling.The code is simplified in many places and will be easier to further develop.When direct manipulation of CRS matrices is eliminated the way the conditions are treated may be changed more easily in the future.All the tests pass now but of course user codes may have problems. So what should you do?
I didn't find the right solution from the Internet.
Ultima editare 06 iunie 2018