| bb2ed840 | 24-Nov-2015 |
Toby Isaac <tisaac@uchicago.edu> |
DMP4est: implement hierarchical transfer SFs
Each cell creates a list of the points in its closure that have dofs in the scheme, and a PetscSFNode is created for each point in that closure. Then, th
DMP4est: implement hierarchical transfer SFs
Each cell creates a list of the points in its closure that have dofs in the scheme, and a PetscSFNode is created for each point in that closure. Then, the coarse mesh is transfered to overlap the first, so that cell overlap from fine to coarse can be determined. Then, in looping over the closure lists of the fine cells, we can match fine points to their containing coarse points, which allows construction of a point-transer SF, which can then be expanded into a dof transfer SF.
WIP DMP4est: repartitioning coarse to match fine
WIP DMP4est: factor out coarse/fine overlap code
WIP DMP4est: finally on the right track with the transfer PetscSF
DMP4est: finished DMPforetGetCellCoveringSF
WIP DMP4est: use the covering cells to compute the transfer SF
DMP4est: first completion of DMPforestGetTransferSF()
show more ...
|
| 438c3a38 | 23-Nov-2015 |
Toby Isaac <tisaac@uchicago.edu> |
DMP4est: initialize labels from baseDM
This part is made easy by the fact the the base DM is redundant: it's just a question of finding the right coarse cell to look up. Inheriting labels from a co
DMP4est: initialize labels from baseDM
This part is made easy by the fact the the base DM is redundant: it's just a question of finding the right coarse cell to look up. Inheriting labels from a coarse/fine DM will require setting up the intergrid transfer SF's.
show more ...
|
| 9a81d013 | 20-Nov-2015 |
Toby Isaac <tisaac@uchicago.edu> |
DMP4est: ex12 almost runs clean.
- I had to fix some function namings in the DMP4est implementation. - Every p4est connectivity needs a geometry in our implementation. - Create DMShareDiscretization
DMP4est: ex12 almost runs clean.
- I had to fix some function namings in the DMP4est implementation. - Every p4est connectivity needs a geometry in our implementation. - Create DMShareDiscretization to indicate that a second DM is essentially a different representation of the same data as the first, and to allow them to have the same PetscDS related data.
There is still a problem with reference counting related to {SNES,KSP,PC}->dm to work out.
show more ...
|
| a73e2921 | 12-Nov-2015 |
Toby Isaac <tisaac@uchicago.edu> |
DMP4est: some debugging towards automatic hierarchy creation
Once I was able to test hierarchy creation in ex12, I uncovered some bugs in DMP4est related to constructing a connectivity from a plex,
DMP4est: some debugging towards automatic hierarchy creation
Once I was able to test hierarchy creation in ex12, I uncovered some bugs in DMP4est related to constructing a connectivity from a plex, naming of functions, etc.
show more ...
|
| a0452a8e | 12-Nov-2015 |
Toby Isaac <tisaac@uchicago.edu> |
DMP4est: work on coarsening
1) We want the coarse mesh to inherit as many options as possible from the parent, so there is now a DMForestTemplate() method for this type of operation
2) Partitioning
DMP4est: work on coarsening
1) We want the coarse mesh to inherit as many options as possible from the parent, so there is now a DMForestTemplate() method for this type of operation
2) Partitioning for coarsening is a major p4est option, so I added it to the DMP4est interface
show more ...
|
| 56ba9f64 | 12-Nov-2015 |
Toby Isaac <tisaac@uchicago.edu> |
DMForest: introduce initial refinement level.
The idea being that, when a minimum and an initial refinement level are specified, then a hierarchy is created that spans them, much like -dm_plex_refin
DMForest: introduce initial refinement level.
The idea being that, when a minimum and an initial refinement level are specified, then a hierarchy is created that spans them, much like -dm_plex_refine_hierarchy.
show more ...
|
| 943ba4e5 | 07-Oct-2015 |
Toby Isaac <tisaac@ices.utexas.edu> |
DMForet: First completion of DMPlexCreateConnectivity_{p4est,p8est}
Some information is lost in converting to p4est format: facets are explicity enumerated in p4est's coarse mesh format.
I plan on
DMForet: First completion of DMPlexCreateConnectivity_{p4est,p8est}
Some information is lost in converting to p4est format: facets are explicity enumerated in p4est's coarse mesh format.
I plan on writing the following two tests:
plex -> p4est (A) -> plex -> p4est (B), assert A ~ B p4est -> plex (A) -> p4est -> plex (B), assert A ~ B
I think the type of equivalence that can be achieved is cone/orientation equality, but supports may be permuted.
show more ...
|
| b0c8a442 | 07-Oct-2015 |
Toby Isaac <tisaac@ices.utexas.edu> |
WIP: p4est: DMPlex conversion
This orientation change seems right to me.
In DMPlex, there is an independent facet betweeen faces
+--+ | +--+ |A | | |B | +--+ | +--+
And A and B each h
WIP: p4est: DMPlex conversion
This orientation change seems right to me.
In DMPlex, there is an independent facet betweeen faces
+--+ | +--+ |A | | |B | +--+ | +--+
And A and B each have their orientation relative to each other in plex conventions, orientA and orientB.
But, each quad/hex has numbering and orientations in p4est conventions, and there is a conversion tranformation P that takes a facet in p4est numbering and gives the permutation converts p4est cone numbering to petsc cone numbering. We can compose these to get the permutation from p4est cone numbering to the independent facet cone numbering, i.e., pA = orientA * P[k_A] and pB = orientB * P[k_B]. Then to get the p4est cone numbering of k_B relative to k_A, we need pB^{-1} * pA. BUT, p4est doesn't number cones, it numbers vertices, so we have to do a minor conversion from cones to vertices, and then we get what we want.
show more ...
|