| 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 ...
|
| e8ecbf3f | 14-Nov-2018 |
Stefano Zampini <stefano.zampini@gmail.com> |
DMBoundary: temporary fix to plex section boundary issue
DMPlexCreateSection isn't handling the case where there are more dofs than components on a point properly. There seems to be an ad hoc API th
DMBoundary: temporary fix to plex section boundary issue
DMPlexCreateSection isn't handling the case where there are more dofs than components on a point properly. There seems to be an ad hoc API that if you pass numcomps == 0 to DMAddBoundary, it constraints all components. That's not good, but I documented it and it avoided the plex problem until we can fix it.
show more ...
|