| 97e99dd9 | 01-Aug-2016 |
Toby Isaac <tisaac@uchicago.edu> |
DMPlex: use PetscSectionGet/RestorePointSyms() in DMPlexVecGet/SetClosure()
You can see that we no longer use the cone orientations directly: they are used by the PetscSectionSym, but once the permu
DMPlex: use PetscSectionGet/RestorePointSyms() in DMPlexVecGet/SetClosure()
You can see that we no longer use the cone orientations directly: they are used by the PetscSectionSym, but once the permutations/flips have been returned, they are used.
The downside is that instead of just reading/writing backwards if o < 0, we have indirect referencing through the permutation arrays. But, e.g., for 2D, where the only permutation is equivalent to reading/writing backward:
- there is only one permutation array, so hopefully it stays in cache and computing the indirection is not as bad as the worst-case for pointer chasing, and - the out-or-order access is always on the element array (small, hopefully already in cache), not on the vector array (large, in-order access could improve cache performance)
show more ...
|
| e071409b | 20-Jul-2016 |
Toby Isaac <tisaac@uchicago.edu> |
DMPlex: added DMPlexGetPointDualSpaceFEM()
Right now we could just get a dual space for a point based on its height/depth, but I figured it couldn't hurt to have the interface provide individualized
DMPlex: added DMPlexGetPointDualSpaceFEM()
Right now we could just get a dual space for a point based on its height/depth, but I figured it couldn't hurt to have the interface provide individualized dual spaces for each point, just in case someone wants to proceed with prismatic elements or hp methods.
show more ...
|
| d484f18a | 26-Jul-2016 |
Toby Isaac <tisaac@uchicago.edu> |
DMPlex: set PetscSectionSym in DMPlexCreateSectionInitial()
This just creates a PetscSectionSym from PetscDualSpaceGetSymmetries(), with the proviso that if a section field has multiple components,
DMPlex: set PetscSectionSym in DMPlexCreateSectionInitial()
This just creates a PetscSectionSym from PetscDualSpaceGetSymmetries(), with the proviso that if a section field has multiple components, we go ahead and expand the symmetries for each component. These expanded symmetries are redundant, but they allow us to avoid double-loops (over nodes and field components), when reading/writing with permutations and/or flips.
show more ...
|