| #
1575c14d
|
| 11-Aug-2015 |
Barry Smith <bsmith@mcs.anl.gov> |
Replaced PetscViewerASCIISynchronizedAllow() with PetscViewerASCIIPushSynchronized() PetscViewerASCIIPopSynchronized()
|
| #
219ef7ec
|
| 10-Aug-2015 |
Toby Isaac <tisaac@ices.utexas.edu> |
Merge branch 'tisaac/dmplex-stable-tet-refinement'
The previous tet refinement strategy was not stable: element shape quality deteriorated with repeated refinement. This branch fixes that.
* tisaa
Merge branch 'tisaac/dmplex-stable-tet-refinement'
The previous tet refinement strategy was not stable: element shape quality deteriorated with repeated refinement. This branch fixes that.
* tisaac/dmplex-stable-tet-refinement: plex: added tet shape regression test plexrefine: remove replaced code plex: update test output for new tet refinement order plex: fix tet refinement for stable element shape DMPlex: added test of shape quality to ex1
show more ...
|
| #
6ec35a92
|
| 07-Aug-2015 |
Toby Isaac <tisaac@ices.utexas.edu> |
plexrefine: remove replaced code
|
| #
3fe31fa2
|
| 07-Aug-2015 |
Toby Isaac <tisaac@ices.utexas.edu> |
plex: fix tet refinement for stable element shape
Each refined tetrahedron defines a change of bases that maps the corners of the parent to the corners of the child. If we rescale this transform so
plex: fix tet refinement for stable element shape
Each refined tetrahedron defines a change of bases that maps the corners of the parent to the corners of the child. If we rescale this transform so that the determinant is 1, we get a volume preserving distortion of the parent tetrahedron.
One sufficient condition for stable tetrahedral refinement is for all of these transforms to form a finite group: then each of the recursively refined tets will fall into one of a fixed set of congruency classes.
A classic stable refinement pattern from Freudenthal [1] and Bey [2] is used by HHG grids [3], which is good for producing refinement patterns that match regular grids and only a few congruency classes. This method, however, inverts the signed volume of some refined tetrahedra, which we don't want in DMPlex. Sign reversal could be avoid, but we would have to tag two different types of tetrahedra, which we also don't want in DMPlex.
I did a brute force search for a transformation. Starting with the old, unstable refinement pattern, I wrote a script that rotated the four interior tetrahedra independently, reporting all the combinations that formed a finite group. There turned out to be a few, so I selected the one with the smallest group size (12, which is twice the size of the group using Freudenthal-Bey refinement). I then somehow figured out how to apply these rotations in the CellRefiner code.
As a result, testing shape regularity with plex ex1 now yields:
$ ./ex1 -dim 3 -interpolate -dm_refine_hierarchy 5 -test_shape Mesh with 196608 cells, shape condition numbers: min = 3, max = 8.77496, mean = 5.27739, stddev = 1.26754 Mesh with 24576 cells, shape condition numbers: min = 3, max = 8.77496, mean = 5.28768, stddev = 1.2648 Mesh with 3072 cells, shape condition numbers: min = 3, max = 8.77496, mean = 5.28715, stddev = 1.26312 Mesh with 384 cells, shape condition numbers: min = 3, max = 8.77496, mean = 5.23795, stddev = 1.263 Mesh with 48 cells, shape condition numbers: min = 4, max = 8.77496, mean = 5.01933, stddev = 1.2307 Mesh with 6 cells, shape condition numbers: min = 4, max = 5.47723, mean = 4.2462, stddev = 0.550529
I am now a tetrahedron. Like the old Shaker hymn says, "'Tis a gift to be simplicial."
[1] Freudenthal, H.: Simplizialzerlegungen von beschraenkter Flachheit. Ann. Math. 43, 580-582 (1992).
[2] Bey, J.: Tetrahedral Grid Refinement. Computing 55, 355-378 (1995).
[3] Bergen, B., Gradl, T., Ruede, U., Huelsemann, F.: A massively parallel multigrid method for finite elements
show more ...
|
| #
82169f37
|
| 24-Jul-2015 |
Matthew G. Knepley <knepley@gmail.com> |
Plex: Fixed function header
|
| #
b28003e6
|
| 20-Jul-2015 |
Matthew G. Knepley <knepley@gmail.com> |
Plex: Using a refinement function
|
| #
e1b06f76
|
| 20-May-2015 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into knepley/solkx
* master: (6933 commits) Bib: Added reference Includegraph: Updated for compatibility with new folder layout. Add SNESLineSearchReason to fortran inclu
Merge branch 'master' into knepley/solkx
* master: (6933 commits) Bib: Added reference Includegraph: Updated for compatibility with new folder layout. Add SNESLineSearchReason to fortran includes Also truncate names to fit 32 char fortran limit fix compile warnings /usr/home/balay/petsc.clone-2/src/vec/vec/interface/vector.c:1944: warning: division by zero in '1.0e+0 / 0.' /usr/home/balay/petsc.clone-2/src/ksp/ksp/interface/itfunc.c:508: warning: 'vec_rhs' may be used uninitialized in this function updated output for new trust region initial size initial size of the trust region is set as a percent of the norm of the initial guess, it should not be related to the initial norm of the function (which is kind of nuts). The default bounds for SNESVISetVariableBounds() in the manual page were reversed from correct values Bib: Added refs Bib: Update MPICH webpage Plex: Forgot to close file removed nonexistent ex46f from makefile test rule Revert "fixed bad merge into master" fixed bad merge into master fix memory leak in mkl_pardiso fix some formatting in mkl_pardiso code mv runex111 from TESTEXAMPLES_C to TESTEXAMPLES_DATAFILESPATH Mat+Doc: More Fortran docs Plex ex3: Run tests with the correct number of field components Bib: Added TetGen cite parmetis: make sure 'ldd libparmetis.so' points to the correct libmetis.so that its linked with. small fix as reported by the nightly test ...
Conflicts: config/builder.py
show more ...
|
| #
fbbfd472
|
| 18-May-2015 |
Toby Isaac <tisaac@ices.utexas.edu> |
Merge branch 'master' into tisaac/dmforest
directory layout changed again: merging to switching branches back and forth doesn't cause reconfigure to have a hard time
* master: (357 commits) remov
Merge branch 'master' into tisaac/dmforest
directory layout changed again: merging to switching branches back and forth doesn't cause reconfigure to have a hard time
* master: (357 commits) removed nonexistent ex46f from makefile test rule Revert "fixed bad merge into master" fixed bad merge into master fix memory leak in mkl_pardiso fix some formatting in mkl_pardiso code mv runex111 from TESTEXAMPLES_C to TESTEXAMPLES_DATAFILESPATH Mat+Doc: More Fortran docs Bib: Added TetGen cite parmetis: make sure 'ldd libparmetis.so' points to the correct libmetis.so that its linked with. small fix as reported by the nightly test add a test for MatPtAP() small cleanup; add tests cleanup MatPtAPSymbolic_MPIAIJ_MPIAIJ() Fix nonzerostate tracking in all MATMPI types. update location of test matrices in faq.html file unused variable still declared Fix for MatLoad_MPIDense() from sparsely stored matrix also fix for MatLoad_MPIDense_DenseInFile() when matrix has not had its local sizes preset by user Preserve the B nonzerostate during disassembly. TSEvent: Fix arch-mswin nightly errors due to declaring variables in the middle of a function. Fix error in parallel loading of dense format matrix removed KSPSetNullSpace() since mat already carries that information and having two locations for it is confusing, unnecessary and prone to error added MatSetTransposeNullSpace() for providing the null space of the transpose of the matrix and added support in KSPSolve() to remove this null space from the right handside of the linear system thus making the system consistent. ...
show more ...
|
| #
c45870e7
|
| 04-May-2015 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'master' into knepley/feature-composable-callbacks
* master: (151 commits) PetscMalloc: Fix handling of zero-sized allocations add note to DMGetLocal/GlobalVector() about intended s
Merge branch 'master' into knepley/feature-composable-callbacks
* master: (151 commits) PetscMalloc: Fix handling of zero-sized allocations add note to DMGetLocal/GlobalVector() about intended short-time usage of the vectors. sf: use patched openmpi tarball that has a potential fix for sf example hang SNES problems that set VI bounds must use a VI solver since the other solvers ignore the bounds pounders viewer did not cast PetscReal to double in printf nor use %D instead of %d fix ts ex20adj fix ts theta fixed another variable declaration in the middle of a code block example main() had PetscInt return type and argument that should be int DMDAVTKWriteAll_VTS: Fix handling of higher-dimension coordinates fixed example that declared variables in the middle of a function C programs do not return PetscInt nor do they take an argument that is PetscInt, fixed example that did You cannot declare variables in the middle of functions in PETSc. add ierr checking to PetscOptionsBegin/End() in example configure: add error check if user specifies PETSC_ARCH=-dbg [i.e starts with a '-'] scale norm of vector difference by norm of vector to insure it is small enough to consider the two vectors equal missing PetscViewerDestroy() added MatNestGetISs: use custom fortranstub to handle PETSC_NULL_OBJECT update location of open-mx website on FAQ page If the user sets bounds and calls a solver that does not support them, throw an error. ...
show more ...
|
| #
af3d4eeb
|
| 16-Apr-2015 |
Fande Kong <fdkong.jd@gmail.com> |
Merge branch 'pr192/Fande-Kong/scalable-matincreaseoverlap/master' of https://bitbucket.org/petsc/petsc
|
| #
f1c23e0e
|
| 15-Apr-2015 |
Fande Kong <fdkong.jd@gmail.com> |
Merged petsc/petsc into master
|
| #
4bc2dc4b
|
| 15-Apr-2015 |
Stefano Zampini <stefano.zampini@gmail.com> |
Merge branch 'master' into stefano_zampini/pcbddc-adaptive-selection
Conflicts: src/ksp/pc/impls/bddc/bddcprivate.c src/ksp/pc/impls/bddc/bddcscalingbasic.c src/mat/impls/aij/mpi/mumps/mumps.c s
Merge branch 'master' into stefano_zampini/pcbddc-adaptive-selection
Conflicts: src/ksp/pc/impls/bddc/bddcprivate.c src/ksp/pc/impls/bddc/bddcscalingbasic.c src/mat/impls/aij/mpi/mumps/mumps.c src/mat/impls/is/matis.h
show more ...
|
| #
305f5a7e
|
| 14-Apr-2015 |
semihozmen <semihozmen@gmail.com> |
Merged master into semihozmen/ksp-fcg-eigen-comp-support
|
| #
f9185b66
|
| 13-Apr-2015 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'master' into pr192/Fande-Kong/scalable-matincreaseoverlap/master
Needed to merge master to update to new calling sequence PetscCommBuildTwoSided
|
| #
66d7bb0d
|
| 12-Apr-2015 |
semihozmen <semihozmen@gmail.com> |
Merged petsc/petsc into master
|
| #
255664f4
|
| 12-Apr-2015 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'barry/fix-directory-layout'
|
| #
af0996ce
|
| 11-Apr-2015 |
Barry Smith <bsmith@mcs.anl.gov> |
updated PETSc directory layout to match standard packaging strategies
include/petsc finclude,private,mpiuni lib/petsc conf bin/petsc*
|
| #
5a4ab5ab
|
| 02-Apr-2015 |
Toby Isaac <tisaac@ices.utexas.edu> |
Merge branch 'master' into tisaac/dmforest
If we're going to start developing on this again, the recent changes to the location of configuration files will make it annoying to switch to and from thi
Merge branch 'master' into tisaac/dmforest
If we're going to start developing on this again, the recent changes to the location of configuration files will make it annoying to switch to and from this branch. Matt's and my fixes in DMPlex will also be relevant.
* master: (1557 commits) MatLoad_MPIDense() always allocated array space even if it was previously provided Clarified lumping options for PCFieldSplitSchurPreType SELFP. fixed up PetscInfo in GAMG TSErrorWeightedNorm[2|Infinity]: API changes MatLoad_SeqDense() always allocated new space for the data even if the user already provided it Fixed DMCompositeGetAccessArray() to support readonly vectors Fix obviously-wrong aspects of documentation on SNESVINEWTONRSLS and SNESVINEWTONSSLS. fixed example to compile - demonstrates a bug var name 'len' was F90 key word For user provided Jacobian functions they should always assembly into the second matrix, the one from which the preconditioner is built because the first may be used as matrix-free with -snes_mf_operator Suggest --with-64-bit-indices if users mistakenly use --with-64bit-indices Fix configure logging of integer size. missing underscore in #define of vecgetarrayread translation of fortran stub for VECGETARRAYREAD updated test output files to reflect differences introduced previously in PCView output -ksp_type preonly does not support -ksp_monitor_short so remove from test line to prevent extranious warning output missing CHKERRQ; and ugly double declaration of ierr Plex ex3: For want of a semicolon, the kingdom was lost MatSetValuesMPISBAIJ will now print correct global indices when error generated due to new nonzero location completed basic use of MatSetValuesBlocked_SeqBAIJ_Inlined() by MatSetValuesBlocked_MPIBAIJ() to allow proper global indices being printed when error generated by new nonzero locations. Added inline version of MatSetValuesBlocked_SeqBAIJ() to be used by MatSetValuesBlocked_MPIBAIJ() to print error message for nonzero block with global indices ...
show more ...
|
| #
d9e4b6ef
|
| 23-Mar-2015 |
Matthew G. Knepley <knepley@gmail.com> |
Merge branch 'knepley/feature-harmonic-advection'
* knepley/feature-harmonic-advection: (86 commits) SNES: Some docs for NASM TS: Added view for MIMEX Plex: Silence compiler warnings Builder
Merge branch 'knepley/feature-harmonic-advection'
* knepley/feature-harmonic-advection: (86 commits) SNES: Some docs for NASM TS: Added view for MIMEX Plex: Silence compiler warnings Builder: Check for missing numProcs was wrong PetscFE: Turn off Fortran binding for PetscFECompositeGetMapping() Plex: Fix big bug in DMPlexGetGlobalFieldOffset_Internal() - If offset is negative (dof is on another proc), then we must have end < start Builder: Allow override of numProcs Plex: Fix Fortran wrappers for DMLabelView() and DMPlexDistribute() Plex+Label: Added Fortran wrapper for DMPlexCreateLabel() Plex: Dammit, how did this not get checked in? Plex: Refiner check for hybrid cells must use hybrid faces as well - Ghost cells in FV method are hybrid TS: MIMEX now uses work vectors for correct grid Plex: Adding support for FV in automatic interpolator construction - Notice that the injector cannot do the right thing until we scrap VecScatter Plex+FEM: Using PetscFVGetDualSpace() SNES+Doc: Added Options Database keys PetscFV: Added PetscFVRefine() - This allows interpolation to finer grids needed for FAS PetscFV: Added a dual space for calculating projections DM: Better error checking in DMCoarsen() DMDT+PetscFE: Added PetscQuadratureExpandComposite() - Replaces PetscFECompositeExpandQuadrature() - Added PetscFECompositeGetMapping() Plex: Fixed complex type error ...
Conflicts: src/dm/impls/plex/ftn-custom/makefile src/ts/interface/ts.c
show more ...
|
| #
0f9259d6
|
| 12-Mar-2015 |
Matthew G. Knepley <knepley@gmail.com> |
Plex: Dammit, how did this not get checked in?
|
| #
89b38ed4
|
| 11-Mar-2015 |
Matthew G. Knepley <knepley@gmail.com> |
Plex: Refiner check for hybrid cells must use hybrid faces as well - Ghost cells in FV method are hybrid
|
| #
898446f9
|
| 11-Mar-2015 |
Shri Abhyankar <abhyshr@mcs.anl.gov> |
Merge branch 'master' into shri/ts-is-for-differential-variables
Conflicts: include/petsc-private/tsimpl.h src/ts/impls/eimex/eimex.c src/ts/interface/ts.c
|
| #
f2dee214
|
| 06-Mar-2015 |
Barry Smith <bsmith@mcs.anl.gov> |
Merge branch 'master' into jed/chem Note merging a branch with good stuff in it for a year and a half is insane!
Conflicts: src/ts/examples/tutorials/makefile src/ts/interface/ts.c
|
| #
5dc8c3f7
|
| 26-Feb-2015 |
Matthew G. Knepley <knepley@gmail.com> |
DM: Now also save the DMBoundaryType for each dimension - Should get rid of this in DMDA eventually
|
| #
4e7385fa
|
| 16-Feb-2015 |
Stefano Zampini <stefano.zampini@gmail.com> |
Merge branch 'master' into stefano_zampini/pcbddc-adaptive-selection
Conflicts: src/ksp/pc/impls/bddc/bddcprivate.c
|