Add fortran wrapper to set MATOP_ASSEMBLY operations on MATSHELL.
Add fortran wrapper to set MATOP_RANDOM operation on MATSHELL.
MatCopy_Shell: check that the matrices have the same operations and call user provided function to copy context
MATSHELL: implement MatCopy_Shell to allow copying the scaling and shifting vectors
MATSHELL: add MATOP_COPY and MATOP_SCALE to Fortran wrappers
MATSHELL: remove spaces after commas in zshellf.c (coding style)
MATSHELL: implemented MatDiagonalSet_Shell to deal with shifted diagonals
add support for MatShellSetOperation(Mat,MATOP_GET_DIAGONAL_BLOCK, for FortranThis required changing the handling of MatGetDiagonalBlock() from a query function basedmethod to a regular method in
add support for MatShellSetOperation(Mat,MATOP_GET_DIAGONAL_BLOCK, for FortranThis required changing the handling of MatGetDiagonalBlock() from a query function basedmethod to a regular method in the function tableTime: .75 hoursReported-by: Steven Dargaville <dargaville.steven@gmail.com>Thanks-to: Dave May <dave.mayhem23@gmail.com>
show more ...
matshell: clean up and add some new MATOPs to Fortran.* Clean up MatShellSetOperation_Fortran: use enum to index into Fortranfunction pointers, easier to extend, etc.* Add DESTROY, TRANSPOSE, ZER
matshell: clean up and add some new MATOPs to Fortran.* Clean up MatShellSetOperation_Fortran: use enum to index into Fortranfunction pointers, easier to extend, etc.* Add DESTROY, TRANSPOSE, ZERO_ENTRIES and AXPY as supported operationsfrom Fortran* Add a small test to make sure that the operations are set and calledcorrectly from Fortran.
removed a bunch of unneeded inclusions of xxximpl.h which exposed private data where it did not have to be exposedalso made more systematic the inclusion of the base xxximpl.h in the derived yyyimp
removed a bunch of unneeded inclusions of xxximpl.h which exposed private data where it did not have to be exposedalso made more systematic the inclusion of the base xxximpl.h in the derived yyyimpl.hso the inclusion is done in the include file rather than in each source code that includes it
More decreasing visibility of symbols from outside librariesAlso fix a few bugs related to having multiple PETSc libraries
add MAT_INPLACE_MATRIX; replace MAT_REUSE_MATRIX with it for MatConvert()
Merge branch 'barry/shell-update-vector-states'
Update the output vector state in PC and Mat shell routines when the user forgot to update them in their provided codeSuggested-by: Václav Hapla <vaclav.hapla@vsb.cz>
Added missing MatMissingDiagonal() implementations
MatHeaderReplace() corrupted the -objects_dump arrayReported-by: Torquil Macdonald Sørensen <torquil@gmail.com>MatHeaderReplace() and MatHeaderMerge() destroy the second matrix argument therefor
MatHeaderReplace() corrupted the -objects_dump arrayReported-by: Torquil Macdonald Sørensen <torquil@gmail.com>MatHeaderReplace() and MatHeaderMerge() destroy the second matrix argument therefor pass it asa pointer to it can be zeroed and not mistakenly reused.
update manual pages for context set and get routines regarding use from Fortran and defining interface for them
updated PETSc directory layout to match standard packaging strategiesinclude/petsc finclude,private,mpiunilib/petsc confbin/petsc*
Merge branch 'barry/fix-matmultadd-shell'
Fix for MatMultAdd_Shell()No support for this operation for this object type[0]PETSC ERROR: Result vector w cannot be same as input vector y, suggest VecAXPY()Reported-by: Du Yongle <yongle.du@g
Fix for MatMultAdd_Shell()No support for this operation for this object type[0]PETSC ERROR: Result vector w cannot be same as input vector y, suggest VecAXPY()Reported-by: Du Yongle <yongle.du@gmail.com>
manual merge of conflict
convert some PetscMalloc() to PetscMalloc1()remove unneeded () in first argument to PetscMalloc/Calloc1()fixes for MATLAB examples
MatGetVecs() and KSPGetVecs() replaced with MatCreateVecs() and KSPCreateVecs()since they are creators not getters
Mat & Vec: make block sizes lazyIn the past, MatSetUp eagerly set the block sizes (to 1) if not alreadyset. This prevents use of the "convenience" constructors because theycall MatSetUp before r
Mat & Vec: make block sizes lazyIn the past, MatSetUp eagerly set the block sizes (to 1) if not alreadyset. This prevents use of the "convenience" constructors because theycall MatSetUp before returning. We could add bs as an explicit argumentto those constructors, but block size is an extraneous concept for mostusers. The default value of the block size is -1, so now we usePetscAbs(map->bs) anywhere it is not known in advance that bs has beenexplicitly set. This allows block sizes to be lazy, and they can be setarbitrarily late, so long as the new size is compatible with theexisting distribution. For (S)BAIJ matrices, the block size isstructural so it gets set explicitly and can thus be referenced directlyrather than via MatGetBlockSize or wrapped in PetscAbs.
Sys: drop explicit type arguments from PetscNew() and PetscNewLog()git grep -l 'PetscNew\(Log\)\?(' -- $1 | xargs perl -pi -e 's@PetscNew\([^,;()]+ *, *@PetscNew(@;s@PetscNewLog\(([^,;()]+) *,[^,
Sys: drop explicit type arguments from PetscNew() and PetscNewLog()git grep -l 'PetscNew\(Log\)\?(' -- $1 | xargs perl -pi -e 's@PetscNew\([^,;()]+ *, *@PetscNew(@;s@PetscNewLog\(([^,;()]+) *,[^,;()]+, *@PetscNewLog($1,@'
12345678910>>...19