On Sun, 6 Apr 2014, David Knezevic wrote: > Is it possible to impose a linear constraint on the variables in a > system using a DirichletBoundary object?
Currently, no. > The case I'm thinking of is in elasticity, where you want set the > displacement in the normal (or tangential) direction on a surface. In > that case we want "n \dot (u,v,w) = normal_displacement" on the boundary. > > I've only used DirichletBoundary to impose independent conditions on > each variable, so I assume that a condition like "n \dot (u,v,w) = > normal_displacement" isn't possible yet? The lower level heterogeneous DofConstraints code will correctly impose such conditions once they've been consistently calculated for each DoF (this actually gets complicated at corners/edges...), but there's no way yet to tell the library to calculate such conditions. That's on my TODO list as well, but not high enough that I'd expect to get to it alone any time soon; I'd love to help you hash it out. > Roy: Do you have any comments on where to start, and how much work > it would require? Where to start is "what do we want the API to look like"; I'm not even sure if this can cleanly fit in DirichletBoundary or if we'd want to create some kind of new CoupledDirichletBoundary (or better-named) addition. Most of the hard work in code can be done just by yet-again cloning (or for God's sake finally refactoring) our constraint loop code. The only catch I can see is when multiple constraints apply to the same dof. E.g. if two normal displacements act on a rotated 2D corner, we want that to correctly boil down to "the corner position is completely fixed" rather than "a constraint gets ignored" or "an error gets thrown"... and I'm not even sure if that's a new catch; I recall having to deal with the same problem when DirichletBoundary and PeriodicBoundary mix. But I don't know if there's an analog here to the solution I ended up going with there. --- Roy ------------------------------------------------------------------------------ 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_APR _______________________________________________ Libmesh-devel mailing list Libmesh-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libmesh-devel