| #
0e667e8f
|
| 23-Dec-2018 |
Karl Rupp <me@karlrupp.net> |
Merge branch 'knepley/fix-section-fortran' [PR #1280]
* knepley/fix-section-fortran: Section: Added binding for PetscSFDistributeSection()
|
| #
2c2595ff
|
| 20-Dec-2018 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into knepley/fix-plex-partition-parallel
* master: (414 commits) very small updates to users manual syntax is define(XXX) in examples tests not defined(XXX) Increase patc
Merge branch 'master' into knepley/fix-plex-partition-parallel
* master: (414 commits) very small updates to users manual syntax is define(XXX) in examples tests not defined(XXX) Increase patchlevel to 3.10.3 petsc4py: updat to latest maint snapshot with SNESTEST updates Fix link for CUDA example in PETSc from GPUs.html page Minor fixes to installation instructions Mat: Fixed types in Pardiso interface Converted example comment to latex This example crashes (for unknown reasons, probably related to the handling of extended derived types passed as arguments) with the PGI Fortran compiler Remove outdated requires: from top of several examples remove outdated test requires: command from top of source file Fix the documentation for -ksp_gmres_cgs_refinement_type Commit f20c2d659b168217cb455989f28afe052d71a64c broke lex.py so the users manual was no longer being built. There reverted the changes to lex.py Plex: Add PetscPartitioner to fort list Suggested-by: Jiaoyan Li <Jiaoyan.Li@inl.gov> Doc: Fix spelling Suggested-by: Manuel Colera Rico <m.colera@upm.es> Mat ex88: check in double or quad precision only Fix error with PetscComplex when PETSc is compiled with C and used in C++ configure: fix typo endwith -> endswith Sys ex23: Migrated to ts_max_time in yaml file as well. AO ex5: Fixed missing CHKERRQ(); Mat test ex88: add tests for MatMultAdd and MatMultTranposeAdd ...
Conflicts: src/dm/impls/plex/examples/tests/ex12.c
show more ...
|
| #
c93efe82
|
| 18-Dec-2018 |
Matthew G. Knepley <knepley@gmail.com> |
Section: Damn Damn Damn
|
| #
353b39dd
|
| 17-Dec-2018 |
Matthew G. Knepley <knepley@gmail.com> |
Section: Somehow everything about that first commit was wrong
|
| #
0d256f5d
|
| 16-Dec-2018 |
Matthew G. Knepley <knepley@gmail.com> |
Section: Added binding for PetscSFDistributeSection() - Fortran is not allowed to pass in an array right now
|
| #
34d8b122
|
| 09-Dec-2018 |
Patrick Farrell <patrick@pefarrell.org> |
Merge branch 'master' into knepley/feature-snes-patch
Not sure if this has done the right thing because there are no tests yet. Also, the fortran stubs break (it doesn't know what to do with SNESCo
Merge branch 'master' into knepley/feature-snes-patch
Not sure if this has done the right thing because there are no tests yet. Also, the fortran stubs break (it doesn't know what to do with SNESCompositeType), and I don't know how to fix it.
show more ...
|
| #
f35fe2a5
|
| 06-Dec-2018 |
Joseph Pusztay <josephpu@buffalo.edu> |
Merged petsc/petsc into master
|
| #
83c10b7e
|
| 04-Dec-2018 |
Pierre Jolivet <pierre.jolivet@enseeiht.fr> |
Merged petsc/petsc into master
|
| #
28bcf1da
|
| 23-Nov-2018 |
Karl Rupp <me@karlrupp.net> |
Merge branch 'haplav/fix-petscsection-fortran-stubs' [PR #1243]
* haplav/fix-petscsection-fortran-stubs: PetscSection: move 3 fortran stubs to the proper file Move stuff from src/vec/vec/impls/seq
Merge branch 'haplav/fix-petscsection-fortran-stubs' [PR #1243]
* haplav/fix-petscsection-fortran-stubs: PetscSection: move 3 fortran stubs to the proper file Move stuff from src/vec/vec/impls/seq/ftn-custom/zvsectionf.c into src/vec/is/utils/ftn-custom/zvsectionisf.c and remove the former file.
show more ...
|
| #
a1535ed2
|
| 20-Nov-2018 |
Vaclav Hapla <vaclav.hapla@erdw.ethz.ch> |
PetscSection: move 3 fortran stubs to the proper file
|
| #
ec14d8c8
|
| 27-May-2017 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into knepley/feature-plex-sphere-mesh
* master: (2633 commits) Bib: Added ref SNES ex56: Update test output add a citation to petsc.bib Plex: Initialize variables ini
Merge branch 'master' into knepley/feature-plex-sphere-mesh
* master: (2633 commits) Bib: Added ref SNES ex56: Update test output add a citation to petsc.bib Plex: Initialize variables initialize ap as complained by the nightly tests Plex ex3: Update to new point function API initialize some variables as complained by nightly tests SNES ex12: Mix misnaming Nf --> Nc update tests add tests add MatView_SeqXAIJ_ASCII_structonly(); enable A->structure_only in MatSetValuesBlocked_SeqBAIJ typo fill-in some references Bib: Fixed ref Plex: Added PLY to file support Plex: Adding PLY support PetscDS: Turn off Fortran bindings for Constants Plex tests: Updated to new point function API SNES ex56: Moved tests to new format DM: Allow field projection functions to take an array of scalars - This will allow us to pass in user data to kernels without void *, more efficiency than aux fields ...
Conflicts: config/builder.py include/petscdmplex.h src/dm/impls/plex/examples/tests/ex1.c src/dm/impls/plex/plexcreate.c src/dm/impls/plex/plexgmsh.c src/snes/examples/tutorials/ex63.c
show more ...
|
| #
e923053f
|
| 15-Oct-2016 |
stefano_zampini <stefano.zampini@gmail.com> |
Merge branch 'stefano_zampini/feature-convert-matnest-matis' into stefano_zampini/feature-pcbddc-saddlepoint
I have to merge it here, since there's an API addition for MatIS in stefano_zampini/featu
Merge branch 'stefano_zampini/feature-convert-matnest-matis' into stefano_zampini/feature-pcbddc-saddlepoint
I have to merge it here, since there's an API addition for MatIS in stefano_zampini/feature-pcbddc-saddlepoint that prevents me to smoothly merge stefano_zampini/feature-convert-matnest-matis into next.
This will also facilitate merging stefano_zampini/feature-pcbddc-saddlepoint into master
Conflicts: src/docs/website/documentation/changes/dev.html
show more ...
|
| #
54761ea3
|
| 14-Aug-2016 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'master' into barry/fix-successful-numerical-factorization-after-failure/master
The maint patch for the given problem cannot merge cleanly into next due to changes in the same code in m
Merge branch 'master' into barry/fix-successful-numerical-factorization-after-failure/master
The maint patch for the given problem cannot merge cleanly into next due to changes in the same code in master (the introduction of MatFactorGetError()) therefor need to merge in master and use the new construct before merging to next
show more ...
|
| #
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 ...
|
| #
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 ...
|