| 7dd42bba | 25-Aug-2016 |
Lisandro Dalcin <dalcinl@gmail.com> |
PetscSection: Fix View() to use viewer with right communicator |
| 232ac771 | 27-Aug-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Removed crumbs from previous support of Netcdf. Support was removed in 2010
Time: .2 hours |
| 3d34b0b0 | 26-Aug-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'barry/add-matfdcoloring-ghosted-example' |
| 0fc8abbb | 23-Aug-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Refactored ./configures handling of package requirements for precision. Now each package indicates what it supports with self.precisions = ['single','double','__float128'] Updated the package files t
Refactored ./configures handling of package requirements for precision. Now each package indicates what it supports with self.precisions = ['single','double','__float128'] Updated the package files to indicate what they support Removed unneeded #requires arguments from makefiles for external packages.
Time: 2 hours Reported-by: Patrick Sanan <patrick.sanan@gmail.com>
show more ...
|
| 5bdb020c | 22-Aug-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Changed IS_COLORING_GHOSTED to IS_COLORING_LOCAL, added test case, fixed code to work properly
Time: 5 hours Reported-by: Hong Zhang <hzhang@mcs.anl.gov> |
| 68f0caa6 | 19-Aug-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'maint' |
| d6a8cea5 | 16-Aug-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Some Fortran stubs that returned strings could produce garbage
Some Fortran stubs that returned strings did not properly use FIXRETURNCHAR() to blank out the end of the Fortran string. Thus the Fort
Some Fortran stubs that returned strings could produce garbage
Some Fortran stubs that returned strings did not properly use FIXRETURNCHAR() to blank out the end of the Fortran string. Thus the Fortran string would contain "garbage".
Time: .2 hours Reported-by: Mark Filipiak <m.filipiak@epcc.ed.ac.uk>
show more ...
|
| 3523c73c | 05-Aug-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'maint' |
| 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 ...
|
| 1a834cf9 | 03-Aug-2016 |
Toby Isaac <tisaac@uchicago.edu> |
cast memzeros to void to avoid compiler complaints about const qualifiers |
| bcd541ec | 03-Aug-2016 |
Patrick Sanan <patrick.sanan@gmail.com> |
VecScatter: add custom fortran stub, cribbed from ISColoringView stub |
| b5a418da | 25-Jul-2016 |
Toby Isaac <tisaac@uchicago.edu> |
PetscSection: add PetscSectionSym
This object's is essentially a Petsc-idiom way of letting the user specify implementations of
PetscSectionGetPointSyms() PetscSectionRestorePointSyms() PetscSectio
PetscSection: add PetscSectionSym
This object's is essentially a Petsc-idiom way of letting the user specify implementations of
PetscSectionGetPointSyms() PetscSectionRestorePointSyms() PetscSectionGetFieldPointSyms() PetscSectionRestoreFieldPointSyms()
Like PetscDualSpaceGetSymmetries(), the symmetries are descibed by R * P, where R is a flip (or rotation with complex scalars). I had thought about a more managed approach, like PetscSectionGet/SetValues, which entirely hid the existence of symmetries to begin with, but:
- then you have to differentiate between different PetscDataTypes (e.g., for indices, just perform the permutation, not the flips/rotations), and - what about inserting an element matrix? When inserting an element matrix, it makes the most sense to apply flips/rotations to the element matrix, and the permutations to the indices where the matrix is to be inserted with MatSetValues().
so in the end I decided to just provide a simple interface to pass the symmetries to the users and let them figure out how they want to use them.
show more ...
|
| ae65b2e8 | 31-Jul-2016 |
Toby Isaac <tisaac@uchicago.edu> |
Merge branch 'tisaac/is-fix-min-max'
* tisaac/is-fix-min-max: IS: for an empty index set, we should have max < min |
| 81860cc8 | 29-Jul-2016 |
Toby Isaac <tisaac@uchicago.edu> |
IS: for an empty index set, we should have max < min
We might want min = PETSC_MAX_INT and max = PETSC_MIN_INT, but I think it's convenient to have (max + 1 - min) = (-2 + 1 - -1) = 0 for an empty s
IS: for an empty index set, we should have max < min
We might want min = PETSC_MAX_INT and max = PETSC_MIN_INT, but I think it's convenient to have (max + 1 - min) = (-2 + 1 - -1) = 0 for an empty set.
show more ...
|
| bcb44149 | 24-Jul-2016 |
Karl Rupp <rupp@iue.tuwien.ac.at> |
Merge branch 'jose/veccuda-tests'
Conflicts: config/PETSc/Regression.py
* jose/veccuda-tests: This is an attempt to modify configure to run regression tests with VECCUDA. The tests for CUSP ar
Merge branch 'jose/veccuda-tests'
Conflicts: config/PETSc/Regression.py
* jose/veccuda-tests: This is an attempt to modify configure to run regression tests with VECCUDA. The tests for CUSP are left unchanged. The new tests include CUSPARSE and work with real and complex scalars. See PR #490 for discussion.
show more ...
|
| 530f2ba0 | 22-Jul-2016 |
Karl Rupp <rupp@iue.tuwien.ac.at> |
Merge branch 'karlrupp/feature-viennacl-hybrid'
Conflicts: src/mat/impls/aij/mpi/makefile
* karlrupp/feature-viennacl-hybrid: Added hybrid capabilities (CUDA, OpenCL, OpenMP) for ViennaCL bindi
Merge branch 'karlrupp/feature-viennacl-hybrid'
Conflicts: src/mat/impls/aij/mpi/makefile
* karlrupp/feature-viennacl-hybrid: Added hybrid capabilities (CUDA, OpenCL, OpenMP) for ViennaCL bindings. Depending on whether the user configures with CUDA, OpenCL, or OpenMP, the respective backends will be available in ViennaCL. Available options: - viennacl_view: Lists available and selected backends - viennacl_backed: One out of CUDA, OpenCL, OpenMP (if enabled in configure) - viennacl_opencl_device_type: cpu, gpu, accelerator (OpenCL device type selection)
show more ...
|
| ea73f9d2 | 21-Jul-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'maint' |
| 0220dff0 | 21-Jul-2016 |
Patrick Sanan <patrick.sanan@gmail.com> |
Vec: enable Fortran interfaces for VecGetLocalVectorRead and VecRestoreLocalVectorRead |
| 193a2b41 | 20-Jul-2016 |
Julian Andrej <juan@tf.uni-kiel.de> |
fix typo in isltog comment |
| 6d049f88 | 19-Jul-2016 |
Stefano Zampini <stefano.zampini@gmail.com> |
Merge branch 'stefano_zampini/fix-matis'
Conflicts: src/mat/examples/tests/makefile |
| 18b8edcd | 19-Jul-2016 |
Stefano Zampini <stefano.zampini@gmail.com> |
Merge branch 'maint' |
| 57d72115 | 18-Jul-2016 |
Satish Balay <balay@mcs.anl.gov> |
fortran: enable interface for VecGetLocalVector(), VecRestoreLocalVector()
Reported-by: Patrick Sanan <patrick.sanan@gmail.com> |
| 34167854 | 12-Jul-2016 |
Lisandro Dalcin <dalcinl@gmail.com> |
Merge remote-tracking branch 'origin/maint' |
| 6ccf5d57 | 15-Jun-2016 |
Lisandro Dalcin <dalcinl@gmail.com> |
Fix warnings from gfortran 6.1 (OS X, Homebrew build)
gfortran 6.1 seems to include -Wconversion in -Wall. When configuring with 64bit indices, the compiler emit warnings about conversions from INTE
Fix warnings from gfortran 6.1 (OS X, Homebrew build)
gfortran 6.1 seems to include -Wconversion in -Wall. When configuring with 64bit indices, the compiler emit warnings about conversions from INTEGER(8) to REAL(4). Use REAL() intrinsic to silence the warnings.
show more ...
|
| 1011bdef | 11-Jul-2016 |
Lawrence Mitchell <lawrence.mitchell@imperial.ac.uk> |
PetscSF: test Bcast with dupped input datatype |