Implicit in the DofConstraintRow usage are two assumptions:

A) The coefficient on the dof_id corresponding to the index of the row
is 1.  (or -1, if you think of all the coefficients being on the same
"side" of the equation)

B) There is only one row for each dof_id.

For a homogeneous Dirichlet constraint (assuming you don't want to
just use DirichletBoundary?) all you should need to add as a user
constraint is an empty row for that dof id.

For a multipoint constraint it can be easy, hard, or impossible.

If there are no other interacting constraints then you can add a row
on either id, with a single coefficient of 1.0 corresponding to the
other id.  Just assign the row to the lowest id or something
consistent between processors in parallel.

If there are other non-redundant constraints on one of
those ids then you have to be careful to add the constraint to the
other id so as not to overwrite anything.  This is hard in parallel
when you're at a point where not all processors know about all
constraints.

If there are other non-redundant constraints on both ids then there's
no non-destructive way to add the constraint you want, and you needed
to assign the other constraints to different rows in the first place.
See the periodic BC code for some brain-melting logic for this sort of
problem.
---
Roy

------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to