| 048b7b1e | 17-Sep-2014 |
Toby Isaac <tisaac@ices.utexas.edu> |
Plex: protect against field projection with height > 0.
The function DMPlexProjectFieldLocal() relies on PetscDS more than PetscDualSpace, so using PetscDualSpaceGetHeightSubspace() won't work.
DMP
Plex: protect against field projection with height > 0.
The function DMPlexProjectFieldLocal() relies on PetscDS more than PetscDualSpace, so using PetscDualSpaceGetHeightSubspace() won't work.
DMPlexProjectField() isn't used anywhere, and it isn't clear to me why it looks its implementation is so different from DMPlexProjectFunction(). It has added complexity because it uses field jets instead of field values to evaluation the functions, but it tries to project the resulting functions back into the original discretization space. If I'm using P_1 Lagrange finite elements, and I want to calculate a function involving its spatial derivatives, would I want to project that function into a P_0 discontinuous approximation space?
Anyway, no support for now.
Plex: fixes to recently added (squash this)
show more ...
|
| daea54ce | 18-Sep-2014 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'knepley/fix-submesh-crossedge'
* knepley/fix-submesh-crossedge: Plex: Do not check hybrid cells when classifying sides of a mesh split - This is not strictly necessary I think, but i
Merge branch 'knepley/fix-submesh-crossedge'
* knepley/fix-submesh-crossedge: Plex: Do not check hybrid cells when classifying sides of a mesh split - This is not strictly necessary I think, but is true Plex: Loop edges cannot be cross edges - Loop edges have the same endpoint twice and exist on the endpoints of clamped edges
show more ...
|
| 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 ...
|
| a17985de | 16-Sep-2014 |
Toby Isaac <tisaac@ices.utexas.edu> |
Plex: rename Constraints as Anchors for clarity.
Now that there are DMGet/SetConstraints() functions, some clarity is needed:
DMGet/SetConstraints() are any type of linear constraints that are cons
Plex: rename Constraints as Anchors for clarity.
Now that there are DMGet/SetConstraints() functions, some clarity is needed:
DMGet/SetConstraints() are any type of linear constraints that are considered part of the global-to-local map.
DMPlexGet/SetAnchors() are linear constraints that make a point's dofs linear dependent on the dofs of a set of anchor points.
DMPlexGet/SetTree() are anchor constraints that derive from a hierarchically refined mesh.
show more ...
|