| #
162a9882
|
| 11-Aug-2016 |
Patrick Sanan <patrick.sanan@gmail.com> |
Merge branch 'master' into psanan/pc-telescope-nearnullspace
|
| #
011b787b
|
| 05-Aug-2016 |
Mark Adams <mfadams@lbl.gov> |
fixed merge with master
|
| #
1d45022f
|
| 04-Aug-2016 |
Toby Isaac <tisaac@uchicago.edu> |
Merge branch 'tisaac/dualspace-feature-symmetry'
In finite element assembly, to compute a residual or assemble a Jacobian on an element, the dual space functionals of a reference finite element are
Merge branch 'tisaac/dualspace-feature-symmetry'
In finite element assembly, to compute a residual or assemble a Jacobian on an element, the dual space functionals of a reference finite element are related (i.e., pushed forward) to the functionals that make of the degrees of freedom of the discretized system.
In doing so, we have to draw a correspondence between the boundary points of the reference element (its edges and vertices) and the boundary points of each cell in the mesh. Sometimes, this correspondence is not perfect, because the orientations of the boundary points of a cell may be different than the orientations of the boundary points of the reference element. For example, an edge that runs clockwise around the reference element may map onto an edge that runs counter-clockwise around the real cell.
For some finite elements (such as the most common P1 Lagrange finite elements) this doesn't matter. But for others---high-order elements, H-div and H-curl conforming elements---a difference in orientation affects the mapping between reference functionals and degrees of freedom.
The simplest example is a high-order nodal Lagrange finite element in 2D: the degrees of freedom on an edge of the reference element are numbered left-to-right, but if the orientation of the real edge is reverse, then we must read/write degrees of freedom right-to-left.
Things get more complicated in 3D: a quadrilateral face between hexahedra may have any of 8 different orientations (that make of the dihedral symmetries), and each one corresponds to a different reordering of the 2D grid of nodes supported on that quadrilateral.
Things also get more complicated for H-div elements. Functionals on the interfaces between cells represent the flux from one cell to another, and thus have direction. Reversing the orientation of an edge changes the sign of the mapping between the reference functional and the degree of freedom.
To assemble generic finite elements, we thus need to accommodate transforms between reference functionals and degrees of freedom that encompass (1) permutations, and (2) scalar multipliers.
This branch accomplishes this in two steps:
- We add PetscDualSpaceGetSymmetries() to the interface, to allow a dual space to describe how symmetries of the mesh points affect referent-to-real maps of functionals.
- We add PetscSectionSym, an object that encapsulates symmetries of the degrees of freedom whose layout is described by a PetscSection.
When a section is created from a DM that has a finite element discretization in its PetscDS, it will automatically construct the appropriate PetscSectionSym when it creates a PetscSection to describe a discretized function space.
If a PetsFE finite element discretization is not used, the user can create a PetscSectionSym for their degrees of freedom for themselves. We give an example of this for spectal elements in src/dm/impls/plex/examples/tutoerials/ex6.c.
* tisaac/dualspace-feature-symmetry: (22 commits) cast memzeros to void to avoid compiler complaints about const qualifiers DMPlex: fix stray PetscScalar to PetscReal DMPlex: fix stray PetscScalar to PetscReal Plex tutorials ex6: use symmetries in SEM example Plex tests ex3: added high order tests Plex tests ex3: add matrix-free near null space test DMPlex: fix PetscInt %D PetscPrintf character DMPlexTree: use symmetries when computing constraint matrices DMPlex: use symmetries in DMPlexGetIndicesPoint{Fields}_Internal() and DMPlexAnchorsModifyMat() DMPlex: use PetscSectionGet/RestorePointSyms() in DMPlexVecGet/SetClosure() DMPlex: added DMPlexGet/RestoreCompressedClosure() DMPlex: added DMPlexGetPointDualSpaceFEM() DMPlex: set PetscSectionSym in DMPlexCreateSectionInitial() DMLabel: added PETSCSECTIONSYMLABEL PetscSection: add PetscSectionSym PetscDualSpace: added PetscDualSpaceGetSymmetries() PetscDualSpace_Lagrange: setup recursively on dimension PetscDualSpace_Lagrange: order functions now go after tuple used PetscDualSpace_Lagrange: use lexicographic order for nodes DMPlex: added DMPlexComputePointGeometry_Internal() ...
show more ...
|
| #
5fdea053
|
| 25-Jul-2016 |
Toby Isaac <tisaac@uchicago.edu> |
DMLabel: added PETSCSECTIONSYMLABEL
Different symmetries are applied to different points (e.g. edges and facets), so this is the most universal way I could come up with to
- break up the points in
DMLabel: added PETSCSECTIONSYMLABEL
Different symmetries are applied to different points (e.g. edges and facets), so this is the most universal way I could come up with to
- break up the points in the section's chart into different symmetry types, and - specify what symmetries are acceptable (i.e., not assume automatically that the range in [-coneSize,coneSize)
show more ...
|
| #
3d996552
|
| 19-Jul-2016 |
Stefano Zampini <stefano.zampini@gmail.com> |
Merge branch 'master' into stefano_zampini/feature-pcbddc-saddlepoint
Conflicts: src/docs/website/documentation/changes/dev.html src/ksp/ksp/examples/tutorials/ex59.c src/ksp/pc/impls/bddc/bddc.c
Merge branch 'master' into stefano_zampini/feature-pcbddc-saddlepoint
Conflicts: src/docs/website/documentation/changes/dev.html src/ksp/ksp/examples/tutorials/ex59.c src/ksp/pc/impls/bddc/bddc.c src/ksp/pc/impls/bddc/bddcfetidp.c src/ksp/pc/impls/bddc/bddcprivate.c src/ksp/pc/impls/bddc/bddcschurs.c src/mat/impls/is/matis.c src/mat/impls/is/matis.h
show more ...
|
| #
24e33ea9
|
| 24-Jun-2016 |
Toby Isaac <tisaac@uchicago.edu> |
Merge branch 'tisaac/dm-label-use-is'
* tisaac/dm-label-use-is: IS: fix ISLocate(): ex7 passes IS: added test for ISLocate() IS: added ISLocate implementations for block and stride ISGeneral
Merge branch 'tisaac/dm-label-use-is'
* tisaac/dm-label-use-is: IS: fix ISLocate(): ex7 passes IS: added test for ISLocate() IS: added ISLocate implementations for block and stride ISGeneral: add locate implementation DMLabel: use ISLocate() IS: added ISLocate() interface and default implementation change regression logs for increased number of index sets DMLabel: added DMLabelSetStratumIS() DMLabel: switch internal storage from array to IS
show more ...
|
| #
4de306b1
|
| 21-Jun-2016 |
Toby Isaac <tisaac@uchicago.edu> |
DMLabel: added DMLabelSetStratumIS()
|
| #
35d70571
|
| 04-May-2016 |
Stefano Zampini <stefano.zampini@gmail.com> |
Merge branch 'master' into stefano_zampini/feature-pcbddc-saddlepoint
Conflicts: src/ksp/pc/impls/bddc/bddc.c src/ksp/pc/impls/bddc/bddcgraph.c src/ksp/pc/impls/bddc/bddcprivate.c
|
| #
52774845
|
| 06-Apr-2016 |
Toby Isaac <tisaac@uchicago.edu> |
Merge branch 'tisaac/sf-fix-multi-sf-leaves' into tisaac/dmp4est-feature-injection
* tisaac/sf-fix-multi-sf-leaves: (174 commits) PetscSF: fix PetscSFGetMultiSF() for sparse leaves PetscSF: make
Merge branch 'tisaac/sf-fix-multi-sf-leaves' into tisaac/dmp4est-feature-injection
* tisaac/sf-fix-multi-sf-leaves: (174 commits) PetscSF: fix PetscSFGetMultiSF() for sparse leaves PetscSF: make regression test that fails few more clang static analyzer fixes many issues detected by clang static analyzer Update hypre to its release version Updates for xSDKTrilinos builds Added --download-xsdktrilinos Communicator passed to VecCreateSeq should be PETSC_COMM_SELF PCMG man page: fix typo in options name Bib: Added refs DMLabel: Removed unused variable Metis tries to use backtrace which requires -lexecinfo on some systems such as freebsd Remove -lexecinfo from freebsd configure files since it is only needed by metis add alternative output that occurs on some systems due to use of random number generator in partitioner Plex: When creating cohesive submeshes, fix memory leak Plex ex11: Updated output for new distribution algorithm Plex: When explicitly distributing the depth label, we must recreate empty strata Plex: When partitioning, the cell numbering should include hybrid points Plex: Allow cell and vertex numberings to include hybrid points need to show diffs of ex22 if it fails Support two different output for test example, since due to roundoff this example can produce slightly different convergence history ...
show more ...
|
| #
171b80e0
|
| 06-Apr-2016 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into sanderarens/fix-plex-neumann-bc
* master: (28 commits) few more clang static analyzer fixes many issues detected by clang static analyzer Update hypre to its release
Merge branch 'master' into sanderarens/fix-plex-neumann-bc
* master: (28 commits) few more clang static analyzer fixes many issues detected by clang static analyzer Update hypre to its release version Updates for xSDKTrilinos builds Added --download-xsdktrilinos DMLabel: Removed unused variable Plex: When creating cohesive submeshes, fix memory leak Plex ex11: Updated output for new distribution algorithm Plex: When explicitly distributing the depth label, we must recreate empty strata Plex: When partitioning, the cell numbering should include hybrid points Plex: Allow cell and vertex numberings to include hybrid points Plex ex1: Fixed output for empty strata DMLabel: Added DMLabelHasStratum() Minor changes and fix to bugs introduced in 82f73ecaa Modified makefile to fix aijcusparse tests Add missing code for the case PETSC_HAVE_VECCUDA Fix bugs introduced in 82f73ecaa Use VECCUDA with MATAIJCUSPARSE CUDA: Fixed visibility and disabled Fortran bindings for VecScatters on GPU. Replace kernels with thrust ...
show more ...
|
| #
881e79f6
|
| 06-Apr-2016 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'knepley/fix-plex-examples'
* knepley/fix-plex-examples: DMLabel: Removed unused variable Plex: When creating cohesive submeshes, fix memory leak Plex ex11: Updated output for new
Merge branch 'knepley/fix-plex-examples'
* knepley/fix-plex-examples: DMLabel: Removed unused variable Plex: When creating cohesive submeshes, fix memory leak Plex ex11: Updated output for new distribution algorithm Plex: When explicitly distributing the depth label, we must recreate empty strata Plex: When partitioning, the cell numbering should include hybrid points Plex: Allow cell and vertex numberings to include hybrid points Plex ex1: Fixed output for empty strata DMLabel: Added DMLabelHasStratum()
show more ...
|
| #
386e1158
|
| 02-Apr-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'master' of https://bitbucket.org/petsc/petsc
|
| #
fada774c
|
| 01-Apr-2016 |
Matthew G. Knepley <knepley@gmail.com> |
DMLabel: Added DMLabelHasStratum()
|
| #
1cc8e1c4
|
| 30-Mar-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'master' of bitbucket.org:petsc/petsc
|
| #
e07135c4
|
| 30-Mar-2016 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'knepley/fix-dmlabel-declaration'
* knepley/fix-dmlabel-declaration: DMLabel: Moved declaration since dmlabel.h does not include dm.h
|
| #
3dec45f3
|
| 28-Mar-2016 |
Matthew G. Knepley <knepley@gmail.com> |
DMLabel: Moved declaration since dmlabel.h does not include dm.h
|
| #
c20ebc76
|
| 22-Mar-2016 |
Stefano Zampini <stefano.zampini@gmail.com> |
Merge branch 'master' into stefano_zampini/feature-pcbddc-saddlepoint
|
| #
992dc9be
|
| 18-Mar-2016 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into knepley/feature-plex-handle-func-failure
* master: (378 commits) SNES ex5: Fix coordinate determination for empty subdomains fixed petsc.bib entry p4est: fix syntax
Merge branch 'master' into knepley/feature-plex-handle-func-failure
* master: (378 commits) SNES ex5: Fix coordinate determination for empty subdomains fixed petsc.bib entry p4est: fix syntax error with error message SNES ex5: Correct Jacobian handling on patches SNES ex5: Stupid complex fixes DMP4est: fix transfer of labels to parents petsc4py: update to latest snapshot. Fixes da example breakage in petsc4py test suite Plex: Correct setting of options on refined or coarsened meshes Plex: Add info for grid hashing Plex: Add logging in interpolator creation Plex: Correct use of tabs in ASCII viewer DM: Shorten long event name Plex ex12: Create boundary label automatically at all levels of mesh hierarchy Plex ex12: Change PetscViewerSetFormat --> PetscViewerPushFormat - Fix order of SetMode and SetFilename Plex ex12: Change all functions to static Since DMDA with periodic boundary conditions does support P0 interpolation remove checks that error out under those conditions ascem-io.py and amanzi.py need to handle self.hdf5.include being None correctly fix MPI Uni to recycle communicators so it won't run out like with the petsc4py tests also fix check for location of python shared library on mac to check all cases each time Switch back to Sherry's version since she accepted by pull request PetscDraw: Update help messages for -draw_save* options ...
Conflicts: src/dm/impls/plex/plexfem.c
show more ...
|
| #
3afb9657
|
| 16-Mar-2016 |
Dave May <dave.mayhem23@gmail.com> |
Merged petsc/petsc into master
|
| #
e2d3c13c
|
| 09-Mar-2016 |
Matthew G. Knepley <knepley@gmail.com> |
Merge remote-tracking branch 'origin/knepley/fix-plex-hdf5-label' into tisaac/dmforest
* origin/knepley/fix-plex-hdf5-label: (50 commits) Plex: Fixed HDF5 output for DMLabel - The ISAllGather() wa
Merge remote-tracking branch 'origin/knepley/fix-plex-hdf5-label' into tisaac/dmforest
* origin/knepley/fix-plex-hdf5-label: (50 commits) Plex: Fixed HDF5 output for DMLabel - The ISAllGather() was being called with an IS that had COMM_SELF - Also, we needed to protect for empty index arrays superlu_dist: install target should first make sure prefix/[include,lib] dirs exist - similar to superlu dm: add DMRemoveLabel() fortran interface nightlybuilds: allocate more time to run arch-linux-xsdk-dbg build... Remove superfluous information messages Cannot have rank 1 print before parallel print since it may end up before or after the print from process 0. There change to have rank 0 print the sequential matrix Bib: Added ref Plex: Update ex12_5 with correct level-2 overlap DMLabel: Add missing cleanup for DMLabelGather() mpiuni: check for "long_long" before checking for "__int64" [as "typedef __int64" gives error with icc] Note: cannot use 'int64_t' as 'typedef unsigned int64_t foo' gives eror with icc Add filter for solaris linker scope warning to master since that is used in nightly tests of next Previous commit did not correctly handle downloading from --with-packages-dir Use special error code of 10 for output list of needed downloaded package tarballs otherwise the outer configure.py script converts the error code to an error message we do not want. Have ./configure return a nonzero exit code when --with-packages-dir detects missing packages so that calling scripts know this is occurred simplify some code Completed support for --with-packages-dir=directory that allows --download-xxx features to be cleanly used behind firewalls etc also updated to docs to indicate this new feature Adding supporting for --download-xxx to reported needed downloads when off line or behind a firewall and using local copies when available with the --with-packages-dir=directory option Fix typos in linesearch impls:armijo, morethuente, owarmijo. PetscDraw: Explicitly save draw in KSP/SNES/TS monitors PetscViewerDraw: Propagate prefix from viewer to draw contexts PetscDraw: Explicitly save draw in {Vec|Mat|DMDA}View() routines ...
show more ...
|
| #
eba35f42
|
| 09-Mar-2016 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'mlange/fix-plex-multi-level-overlap'
* mlange/fix-plex-multi-level-overlap: (259 commits) Plex: Update ex12_5 with correct level-2 overlap DMLabel: Add missing cleanup for DMLabelG
Merge branch 'mlange/fix-plex-multi-level-overlap'
* mlange/fix-plex-multi-level-overlap: (259 commits) Plex: Update ex12_5 with correct level-2 overlap DMLabel: Add missing cleanup for DMLabelGather() Plex ex12: Fixed variable initialization and some output Plex ex11: Added error checking Plex ex14: Now boundary label does not have cells Plex ex1: Now boundary label does not have cells Plex ex1: Fix for VTK format added some debugging code, getting ready to branch added some print statements, should be an -info... smome cleaning up restructured ex11 to allow for problem specific BCs DMPlex: Update test ex12_5 with correct level-2 overlap DMPlex: Use global processSF in DMPlexPartitionInvert DMPlex: Add remote leaf contributions to roots in DMLabelPropagate DMPlex: Add DMLabelGather to migrate label values from leafs to roots DMPlex: Refactor DMLabelDistribute to separate point stratum distribution DMPlex: Add propagation of remote point donations for multi-level overlap DMPlex: Fix DMLabelDistribute for all-to-all migrations Plex: make extern exactly match prototype: semantic match is not enough. DMP4est: typo fix ...
show more ...
|
| #
af25d912
|
| 06-Mar-2016 |
Stefano Zampini <stefano.zampini@gmail.com> |
Merge branch 'master' into stefano_zampini/feature-pcbddc-saddlepoint
Conflicts: src/ksp/pc/impls/bddc/bddc.c src/ksp/pc/impls/bddc/bddcgraph.c src/ksp/pc/impls/bddc/bddcprivate.c src/ksp/pc/imp
Merge branch 'master' into stefano_zampini/feature-pcbddc-saddlepoint
Conflicts: src/ksp/pc/impls/bddc/bddc.c src/ksp/pc/impls/bddc/bddcgraph.c src/ksp/pc/impls/bddc/bddcprivate.c src/ksp/pc/impls/bddc/bddcscalingbasic.c src/ksp/pc/impls/bddc/bddcschurs.c src/mat/impls/is/matis.c
show more ...
|
| #
77d236df
|
| 01-Mar-2016 |
Michael Lange <michael.lange@imperial.ac.uk> |
Merge branch 'tisaac/dmforest' into mlange/fix-plex-multi-level-overlap
Conflicts: src/dm/impls/plex/examples/tests/output/ex12_5.out src/dm/label/dmlabel.c
|
| #
7937d9ce
|
| 04-Dec-2015 |
Michael Lange <michael.lange@imperial.ac.uk> |
DMPlex: Add DMLabelGather to migrate label values from leafs to roots
This is effectively the inverse operation to DMLabelDistribute and it reuses the underlying migration stratum value code.
|
| #
f37e7628
|
| 21-Feb-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'master' into barry/add-pcfieldsplit-logevent
|