>>> 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?
>
> I think it should always be safe to "move" a constraint onto a
> not-yet-constrained dof.  The only remaining catch is the interaction
> with PeriodicBoundary constraints, where the constraints can involve
> more than one processor at once.

OK, that approach doesn't sound too nasty...


>
>> 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!
>
> I'd prefer to try to get the compound constraints working, but I'll
> understand if you want to back out.

OK. I do like the sound of compound constraints, so I'm happy to work on 
this too. Sounds like your "move the constraint" approach could work well.

Do you have a first item on the to-do list here? Maybe getting it to 
work in the case where we don't have any "conflicting constraints" first?

As I said, I'm happy to work on this (though I'm not too familiar with 
the guts of the constraint code...)


> If you do want to futz with the
> Lagrange multiplier formulation, try playing around with the PETSc
> fieldsplit stuff I recently hooked us up to?  I was never able to make
> it more efficient than tuned block Jacobi + ILU on incompressible flow
> problems, but it might do much better with a Schur block that only
> needs O((1/h)^{d-1}) instead of O((1/h)^d) dofs.

If I do use Lagrange multipliers for Dirichlet BCs, then I'll be sure to 
have a look at this.

Thanks,
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

Reply via email to