Dirichlet conditions for passive elements (set with the keywords VarName Condition Passive = Logical in Body Forces) are not taken into account anymore due to changes in how Dirichlet conditions are set.
Lines 4700 to 4728 of SolverUtils.F90 take care of the matrix entries for the passive elements and enforce the previous values as Dirichlet conditions; However, Dirichlet conditions in the body forces are set before this;
To my understanding, the lines 4714-4719
Code: Select all
s=0._dp
DO l=1,NDOFs
m=NDOFs*(k-1)+l
s=s+ABS(A % Values(A % Diag(m)))
END DO
IF (s>EPSILON(s)) CYCLE
- also belonging to an active element
- already had Dirichlet conditions applied within the body forces with the keyword VarName Condition Passive = Logical
However, this test will not work anymore in case Dirichlet conditions have been already set as the matrix values for dirichlet conditions are now applied after this.
I think that adding the test:
Code: Select all
IF (A % ConstrainedDOF(m)) CYCLE
Code: Select all
CALL SetSinglePoint(k,l,Solver % Variable % Values(m),.FALSE.)
fabien