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

Reply via email to