Another option is that when you provide the constraint... you provide the constant (and it's stored in the constraint system).  This isn't a bad idea... and will probably use less storage.


On Oct 31, 2008, at 3:44 PM, Derek Gaston wrote:

On Oct 31, 2008, at 3:11 PM, Kirk, Benjamin (JSC-EG) wrote:

Right now the form is

U_constrained is some linear combination of U_unconstrained... 

What about generalizing it to '+constant', where the constant (which could be a function of time) is your dirichlet value?

I think you'll actually want to make it more like U_constrained = constant... but yeah... that's the idea.

We can still provide some user-friendly way to set the constant for dirichlet bcs...

Now the questions shifts to how to provide that constant.  My recommendation for now is to call a function that takes (x, y, z, t, boundary_id).  The problem is that nodes (and DOFs) don't have a boundary id.  We could add one... but then the question shifts to how to apply those boundary_id's.  My vote is that during equation_system_init() / reinit() we read the BoundaryInfo object on the mesh and apply the boundary_id of any face to all of it's nodes.  That way boundary id's are automatically propagated from "sidesets" after adaptivity.  Trying to "prolong" nodesets is a bad bad bad... I can get into why if anyone is interested.  Let me just say that I've been there... and it's not good.

What do you think?

Can we pay the price of putting an unsigned int on every node?


This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
Libmesh-devel mailing list