Andrew,
> I've had similar problems with hanging nodes that occur on faces where I
> have Dirichlet constraints. My way of handling this was to create separate
> ConstraintMatrices for hanging node and Dirichlet constraints and then do a
> customised merge. The customised merge allows you (the user) to decide
> which set of constraints should dominate. I don't think this decision
> should be made by the library.
Right now if ConstraintMatrix::merge is called and both objects have a
constraint for the same DoF, an exception is thrown. I think it would not be
unreasonable to extend the function in the direction you already have, i.e.
class ConstraintMatrix {
enum MergeDecision {
no_conflicts_allowed,
left_object_wins,
right_object_wins };
void merge (const ConstraintMatrix &,
const MergeDecision = no_conflicts_allowed);
};
Would that fit what you want? Want to help implement it?
Best
W.
--
-------------------------------------------------------------------------
Wolfgang Bangerth email: [email protected]
www: http://www.math.tamu.edu/~bangerth/
_______________________________________________
dealii mailing list http://poisson.dealii.org/mailman/listinfo/dealii