| e228b242 | 16-Sep-2014 |
Toby Isaac <tisaac@ices.utexas.edu> |
DM+Plex: change the collective status of default constraints, anchors, and reference tree
The default constraints, anchors, and reference tree are changed to have PETSC_COMM_SELF communicators.
The
DM+Plex: change the collective status of default constraints, anchors, and reference tree
The default constraints, anchors, and reference tree are changed to have PETSC_COMM_SELF communicators.
The reasoning is that we would like tree constraints to cause only minimal changes to the solution workflow demonstrated in snes/examples/tutorials/ex12.c. We would like to insert only the following code:
/* ... (construct/choose a reference tree) */ DMPlexSetReferenceTree(dm,refTree); /* ... (construct the tree structure) */ DMPlexSetTree(dm,...);
This means that the presence of some type of constraints may not be detected until DMPlexMatSetClosure(), within a cell loop. If that happens, the following call graph occurs:
DMPlexMatSetClosure(dm,...) calls DMGetDefaultConstraints(dm,...) calls *DMCreateDefaultConstraints_Plex(dm,...) calls DMPlexGetAnchors(dm,...) calls *DMPlexCreateAnchors_Tree(dm,...) DMPlexComputeAnchorMatrix_Tree_FromReference(dm,...) calls DMGetDefaultConstraints(refTree,...) calls *DMCreateDefaultConstraints_Plex(refTree,...) calls DMPlexGetAnchors(refTree,...) calls *DMPlexCreateAnchors_Tree(refTree,...)
The objects created in this cascade have to be local.
show more ...
|
| f7c74593 | 16-Sep-2014 |
Toby Isaac <tisaac@ices.utexas.edu> |
Plex: complete rename of constraints to anchors, make matrix construction automatic.
Now all the user has to do is set the reference tree, set the tree, and the constraint matrix is automatically co
Plex: complete rename of constraints to anchors, make matrix construction automatic.
Now all the user has to do is set the reference tree, set the tree, and the constraint matrix is automatically constructed in the call to DMGetDefaultConstraints()
show more ...
|
| 45a75d81 | 16-Sep-2014 |
Toby Isaac <tisaac@ices.utexas.edu> |
DM: allow DMGetDefaultConstraints() to take NULL arguments.
I anticipate usage where only one of the arguments, e.g. the matrix, is given, as a way to check for the presence of constraints. |
| 4c274da1 | 15-Sep-2014 |
Toby Isaac <tisaac@ices.utexas.edu> |
DM: put constraint hooks into DMGlobalToLocalEnd() and DMLocalToGlobalBegin().
I put this directly into the functions instead of into the linked list of hooks. My reasoning is that if constraints a
DM: put constraint hooks into DMGlobalToLocalEnd() and DMLocalToGlobalBegin().
I put this directly into the functions instead of into the linked list of hooks. My reasoning is that if constraints are present, they should be considered atomic with the PetscSFBcast()/PetscSFReduce(), and that allowing other user-defined hooks to come between the communication and the constraint hooks could result in the user trying to access or set constrained values before they are defined.
show more ...
|
| 9435951e | 15-Sep-2014 |
Toby Isaac <tisaac@ices.utexas.edu> |
DM: added DMGetDefaultConstraints()/DMSetDefaultConstraints().
I originally put the constraint matrix in DMPlex, but the constraint matrix implies a choice of default section, whereas the same DMPle
DM: added DMGetDefaultConstraints()/DMSetDefaultConstraints().
I originally put the constraint matrix in DMPlex, but the constraint matrix implies a choice of default section, whereas the same DMPlex should be able to be referenced by multiple DMs with different sections. This commit starts the process of moving the section-dependent components into the DM implementation.
show more ...
|
| 3a91e679 | 22-Aug-2014 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'knepley/fix-dm-composition'
* knepley/fix-dm-composition: DM: Removed code to uncompose nullspace/pmat - This was to prevent reference cycles, which happen with MatNullSpace using DM
Merge branch 'knepley/fix-dm-composition'
* knepley/fix-dm-composition: DM: Removed code to uncompose nullspace/pmat - This was to prevent reference cycles, which happen with MatNullSpace using DM Vecs, but its fragile - My current solution is to strip out DM from Vecs in a MatNullSpace, but that sucks too. Need a better solution
show more ...
|