| e5e52638 | 04-Jan-2019 |
Matthew G. Knepley <knepley@gmail.com> |
DM+DS: Reorganized DS handling completely do that multiple regions can be supported - A region is labeled portion of the mesh which has the same approximation space for the solution. Note that this i
DM+DS: Reorganized DS handling completely do that multiple regions can be supported - A region is labeled portion of the mesh which has the same approximation space for the solution. Note that this is NOT the same as the label indicating the support of a field. Regions are the refinement of the field supports into unique approximation space pieces. Right now, we only support a single strategy, namely one space on the regular mesh and one on the hybrid cells, but we only have to change DMCreateDS() to extend the capability. - Now instead of using PetscDSSetDiscretization() and DMSetDS(), you use DMSetField() and DMCreateDS(). Also, you now must use DMCopyDisc(), instead of DMSetDS(), which copies both the field and DS structure to another DM. These changes have been made in all examples. - DMGetCellDS() returns the approximation space for that cell - DMGetDS() return the default space since most people will not use regions. There is still a lot of work left t generalize all methods to multiple DSes, but all old code still functions. - DMGetRegion/RegionNumDS() gets spaces by label and region number - DMCreateDS() is the setup method which makes the regions and corresponding DSes. With some work, this could be converted to a lazy initialization. - Cleaned up access to DS since now we can have more than one - Projection was improved to extract the DS for the particular cells it is iterating over - The DS are set from options during Section creation. The idea is that people using DS would also use automatic Section creation, or they would manage things themselves and call SetFromOptions manually. - I updated the subDM and superDM constructors, but they only work for a single region
show more ...
|
| b9962b3a | 22-Nov-2018 |
Stefano Zampini <stefano.zampini@gmail.com> |
DMForest: fix compiler warning
In file included from /nfs2/szampini/src/petsc/src/dm/impls/forest/p4est/pforest.c:8:0, from /nfs2/szampini/src/petsc/src/dm/impls/forest/p4est/dmp4es
DMForest: fix compiler warning
In file included from /nfs2/szampini/src/petsc/src/dm/impls/forest/p4est/pforest.c:8:0, from /nfs2/szampini/src/petsc/src/dm/impls/forest/p4est/dmp4est.c:13: /nfs2/szampini/src/petsc/src/dm/impls/forest/p4est/pforest.c: In function ‘DMPforestGetTransferSF_Internal’: /nfs2/szampini/src/petsc/src/dm/impls/forest/p4est/petsc_p4est_package.h:38:7: warning: ‘quadCoarse’ may be used uninitialized in this function [-Wmaybe-uninitialized] ret = func args; \ ^ In file included from /nfs2/szampini/src/petsc/src/dm/impls/forest/p4est/dmp4est.c:13:0: /nfs2/szampini/src/petsc/src/dm/impls/forest/p4est/pforest.c:2620:27: note: ‘quadCoarse’ was declared here p4est_quadrant_t *quadCoarse; ^
show more ...
|
| 14c91896 | 14-Nov-2018 |
Stefano Zampini <stefano.zampini@gmail.com> |
DMP4est: fix transfer bad cids in serial
We were setting cids assuming that the root would be updated, but it wasn't always, so we compute the cids but only set when the root updates
I missed that
DMP4est: fix transfer bad cids in serial
We were setting cids assuming that the root would be updated, but it wasn't always, so we compute the cids but only set when the root updates
I missed that when a parent is identified with a coarse point, it is unconditionally accepted
show more ...
|