From: Roy S. <roy...@ic...> - 2018-01-16 15:28:30
|
On Sun, 14 Jan 2018, Jonas Ballani wrote: > I have a question regarding constrained dofs that are themselves constrained by other dofs within the same element. Apparently, this leads to a non-symmetric constrained element matrix which I illustrate here by a small example: > > I consider an element with dof indices = (0,1,2,3). I impose the following contraint rows > > { > constrained_dof_index = 0; > constraint_row[1] = 1.0; > constraint_row[2] = -1.0; > } > { > constrained_dof_index = 1; > constraint_row[0] = 1.0; > constraint_row[3] = -1.0; > } So x0 = x1 - x2 is the first constraint, and x1 = x0 - x3 is the second constraint? You're constraining DoF 0 in terms of DoF 1, *and* you're constraining DoF 1 in terms of DoF 0? I'm afraid we don't support constraint equations with cycles. You can have a sequence in which you constrain a DoF with respect to a second DoF which is itself constrained with respect to a third DoF and so on indefinitely, *except* that you can never end up at a constraint which was already referenced earlier in that sequence. I don't think that limitation would be easy to change, either. It would turn DofMap::enforce_constraints_exactly() from a simple sweep into an outright linear solve. --- Roy |