>> >> I would hope that the solver can handle the case of multiple constraints >> on a dof. > > Nope. The solver should easily handle multiple constraints > *affecting* a dof, but since we write each constraint row into the > matrix in place of the row corresponding to some dof's test function, > we need to have a way of choosing which dof gets used for which > constraint.
Ah, OK. Yes, I can see that makes things trickier since it doesn't seem like there's a general way to choose which dof to overwrite with the constraint row. >> If the constraints are consistent, then the solver should do >> the right thing (i.e. completely fix the corner position in your >> example), and if the constraints are inconsistent, then the solver >> should complain about an ill-posed system. (The "double normal >> displacement on a corner node" would be a good test case for this.) > > The first nasty case I can think of is the combination of a simple > constraint on a vertical or horizontal wall (deltax = 0 or deltay = 0, > obviously gets applied to the deltax dof or the deltay dof > respectively) with a previously applied compound constraint on a > neighboring diagonal wall. Do we try to make sure that the compound > constraint gets set on the dof which won't be subsequently > constrained? Do we try to "move" compound constraints automatically > when we're overwriting them? This does sound nasty... Do you see a good general solution here? This makes me wonder if I should use Lagrange multipliers (via SCALAR variables) to impose the type of constraint I have in mind instead. That way we add the extra constraint rows to the system rather than modifying existing rows, which seems like it would avoid some complications. Though the downside of Lagrange multipliers is that it adds dofs to the system and turns it into a saddle-point problem, so certainly not a free lunch! David ------------------------------------------------------------------------------ Put Bad Developers to Shame Dominate Development with Jenkins Continuous Integration Continuously Automate Build, Test & Deployment Start a new project now. Try Jenkins in the cloud. http://p.sf.net/sfu/13600_Cloudbees _______________________________________________ Libmesh-devel mailing list Libmesh-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-devel