Update very old incomplete links to users manual from manual pages to work with SphinxCommit-type: documentation/spend 10m
MATDENSECUDA: add support for device random number generation
Fix manual pages in src/mat directory, very minor source code changeCommit-type: documentation/spend 22h
Remove incorrect use of PetscFunctionReturn(nonzero integer value). Add this rule to the developers guideCommit-type: house-keeping/spend 1hReported-by: Pierre Jolivet
Remove braces from one-liners w/o PetscCall()
Remove braces from one-liners
clang-format: convert PETSc sources to comply with clang-format
Convert setfromoptions methods over to PetscTryTypeMethod() approachFlipped the order of the arguments for the function pointers (*setfromoptions)(PetscOptionItem*,obj); and friends to make them co
Convert setfromoptions methods over to PetscTryTypeMethod() approachFlipped the order of the arguments for the function pointers (*setfromoptions)(PetscOptionItem*,obj); and friends to make them consistent with PetscTryTypeMethod() and all the other methodsCommit-type: refactorization/spend 4h
show more ...
Update handling of MatTranspose() with MAT_REUSE_MATRIXAdd error checking for the use of the MAT_REUSE_MATRIX flag in MatTranspose()Add tests to MatTranspose_XXX to error if the nonzero pattern ch
Update handling of MatTranspose() with MAT_REUSE_MATRIXAdd error checking for the use of the MAT_REUSE_MATRIX flag in MatTranspose()Add tests to MatTranspose_XXX to error if the nonzero pattern changesAdd support for MAT_REUSE_MATRIX with changing nonzero pattern for MatTranspose_SeqAIJ()Remove use of updateAt in MatProductNumeric_AtB_SeqAIJ_SeqAIJ() since MatTranspose() automatically skips unneeded new transposeAdd MatTransposeSymbolic()Update to SLEPc that supports these changesCommit-type: feature, error-checking, documentation/spend 5h
Replace direct calls to MatTranspose_XX() with MatTranspose() so they properly handle the MatReuse flagCommit-type: housekeeping/spend 5m
Cleanup and unify naming of PetscCall routinesCommit-type: housekeeping/spend 10m
Refactor handling of setable properties of matrices via MatSetOptions()Introduce PetscBool3 with enum values true, false, and unknownUse PetscBool3 to store matrices properties in a matrix and cl
Refactor handling of setable properties of matrices via MatSetOptions()Introduce PetscBool3 with enum values true, false, and unknownUse PetscBool3 to store matrices properties in a matrix and cleanup interface to check these valuesAdd full support for symmetric, Hermitian, structurally symmetric, and SPD.Commit-type: feature/spend 6h
Fix rebalancing of ghost pointers for DMPLEX/spend 25hCommit-type: optimization, bug-fix, style-fix, feature
Initialize MatOps_Values with two new NULLs
Wrap PetscCheck and PetscAssert in do { } while (0)These macros look like functions, so they should behave likefunctions. Fix up the resulting invalid syntax due to the previousbehaviour of these
Wrap PetscCheck and PetscAssert in do { } while (0)These macros look like functions, so they should behave likefunctions. Fix up the resulting invalid syntax due to the previousbehaviour of these macros being "if (...)statement_without_semicolon". Fixes #1199.
Change matrix factor database options that occur in KSP/PC to always use KSP/PC options prefixAdd MatSetOptionsPrefixFactor() and MatAppendOptionsPrefixFactor() to allow controlling the options pre
Change matrix factor database options that occur in KSP/PC to always use KSP/PC options prefixAdd MatSetOptionsPrefixFactor() and MatAppendOptionsPrefixFactor() to allow controlling the options prefixused by factors created from this matrixChange MatSetOptionsPrefix() to no longer affect the options prefix used by factors created from this matrixAs part of the above work the handling of the factor matrix options is now done in code in the factor matrixnot in the code that originates the factor matrixUpdate examples output to the new approach where the factored matrix prefix is set from the KSP/PCMuch of this work was performed by Hong ZhangCommit-type: usability/spend 5h
Add notes to MatDestroy() that destroys of matrices may notgo through this routine.I wasted several hours debugging a simple memory leak due to thisdesign./spend 3h
PetscObjectFunctionCompose: clean up composed functions at Destroy time
Merge remote-tracking branch 'origin/release'
A few codespell fixes
Merge branch 'avoid-ub-in-baij' into 'main'Avoid undefined behavior in BAIJCloses #1183See merge request petsc/petsc!5228
Avoid undefined behavior in BAIJSeveral places in the BAIJ code do pointer arithmetic on pointers whichmay be zero. While there do not seem to be any actual bugs here (thatis, we don't try to act
Avoid undefined behavior in BAIJSeveral places in the BAIJ code do pointer arithmetic on pointers whichmay be zero. While there do not seem to be any actual bugs here (thatis, we don't try to actually access possibly-invalid pointers), sucharithmetic is technically undefined behavior, and makes Clang'sundefined-behavior sanitizer unhappy. Avoid this by adding explicitchecks around the specific statements which are causing problems.Fixes #1183.
remove garbage from makefilesIncluding * unused FLAGS variables * All: lib that did not work * stray blank lines etcCommit-type: housekeeping/spend 1h
Merge branch 'psanan/docs-sphinx-man-pages' into 'main'Integrate Man Pages into Sphinx DocsCloses #1132 and #1015See merge request petsc/petsc!4989
Docs: bulk add backticks to .seealso man page fields```pythonimport osimport reimport fileinputdef _process_word(word): comma = "," if word.endswith(",") else "" return "`%s`%s" % (wor
Docs: bulk add backticks to .seealso man page fields```pythonimport osimport reimport fileinputdef _process_word(word): comma = "," if word.endswith(",") else "" return "`%s`%s" % (word.rstrip(","), comma)def _process_stripped_line(line): return " ".join(map(_process_word, line.split()))start_pattern = re.compile(r"^( *\.seealso:? )(.*$)")def process_file(filename_full): with fileinput.FileInput(filename_full, inplace=True) as f: in_block = False for line in f: line_stripped = line.strip() # end ".seealso blocks" on a blank line or C-style comment close line_modified = None if not line_stripped: in_block = False elif line_stripped.endswith("*/"): in_block = False else: match = re.match(start_pattern, line) # not stripped line if match: indent = " " * len(match.group(1)) in_block = True line_modified = match.group( 1) + _process_stripped_line( match.group(2).strip()) elif in_block: line_modified = indent + _process_stripped_line( line_stripped) if line_modified: print(line_modified) # prints to the file else: print(line, end="") # prints to the fileBASE_DIRS = ["src", "include"]EXT = [".c", ".cxx", ".cpp", ".cu", ".h", ".hpp", ".hxx"]EXCLUDE_DIRS = ["tests", "tutorials", "ftn-auto", "ftn-custom", "benchmarks"]def main(): """ Process everything """ for base in BASE_DIRS: for root, dirs, files in os.walk(base): for filename in files: if os.path.splitext(filename)[1] in EXT: filename_full = os.path.join(root, filename) print("FILE ---", filename_full) process_file(filename_full) for exclude_dir in EXCLUDE_DIRS: if exclude_dir in dirs: dirs.remove(exclude_dir)if __name__ == "__main__": main()```
12345678910>>...64