Make PetscErrorCode a non-discardable enum
source code format changes due to .clang-format changes
Remove parent, parentid, flops, time, mem, and memchildren. Deprecate PetscLogObjectParent(), PetscLogObjectMemory(), and PetscNewLog()
Fix manual pages in src/mat directory, very minor source code changeCommit-type: documentation/spend 22h
clang-format: convert PETSc sources to comply with clang-format
Change if () { PetscCall() } three liner and friends to one linersfor i in `git ls-files | grep "\.[ch]$"` ; do sed 's?\$?ZZZ?g' $i | tr '\n' '$' | sed 's?\([ ]*\)if (\([-;,.\*+=a-z0-9A-Z_>]*\)) {\
Change if () { PetscCall() } three liner and friends to one linersfor i in `git ls-files | grep "\.[ch]$"` ; do sed 's?\$?ZZZ?g' $i | tr '\n' '$' | sed 's?\([ ]*\)if (\([-;,.\*+=a-z0-9A-Z_>]*\)) {\$[ ]*PetscCall(\([- ._+=a-z0-9A-Z>*,()]*);\)\$[ ]*}\$?\1if (\2) PetscCall(\3$?g' | tr '$' '\n' | sed 's?ZZZ?$?g' > $i.joe ; mv $i.joe $i ; done for i in `git ls-files | grep "\.[hc]$"` ; do sed 's?\$?ZZZ?g' $i | tr '\n' '$' | sed 's?\([ }else]*\)if (\([-;,.\*+=a-z0-9A-Z_>]*\)) {\$[ ]*PetscCall(\([- ._+=a-z0-9A-Z>*,()]*);\)\$\([ ]*\)} \([- ._+=a-z0-9A-Z>*,()]*);\)\$?\1if (\2) PetscCall(\3$\4\5$?g' | tr '$' '\n' | sed 's?ZZZ?$?g' > $i.joe ; mv $i.joe $i ; doneYes, really ugly but Barry still cannot master awkCommit-type: housekeeping
show more ...
remove garbage from makefilesIncluding * unused FLAGS variables * All: lib that did not work * stray blank lines etcCommit-type: housekeeping/spend 1h
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()```
The great renaming:- CHKERRQ() -> PetscCall()- CHKERRV() -> PetscCallVoid()- CHKERRMPI() -> PetscCallMPI()- CHKERRABORT() -> PetscCallAbort()- CHKERRCONTINUE() -> PetscCallContinue()- CHKERRXX
The great renaming:- CHKERRQ() -> PetscCall()- CHKERRV() -> PetscCallVoid()- CHKERRMPI() -> PetscCallMPI()- CHKERRABORT() -> PetscCallAbort()- CHKERRCONTINUE() -> PetscCallContinue()- CHKERRXX() -> PetscCallThrow()- CHKERRCXX() -> PetscCallCXX()- CHKERRCUDA() -> PetscCallCUDA()- CHKERRCUBLAS() -> PetscCallCUBLAS()- CHKERRCUSPARSE() -> PetscCallCUSPARSE()- CHKERRCUSOLVER() -> PetscCallCUSOLVER()- CHKERRCUFFT() -> PetscCallCUFFT()- CHKERRCURAND() -> PetscCallCURAND()- CHKERRHIP() -> PetscCallHIP()- CHKERRHIPBLAS() -> PetscCallHIPBLAS()- CHKERRHIPSOLVER() -> PetscCallHIPSOLVER()- CHKERRQ_CEED() -> PetscCallCEED()- CHKERR_FORTRAN_VOID_FUNCTION() -> PetscCallFortranVoidFunction()- CHKERRMKL() -> PetscCallMKL()- CHKERRMMG() -> PetscCallMMG()- CHKERRMMG_NONSTANDARD() -> PetscCallMMG_NONSTANDARD()- CHKERRCGNS() -> PetscCallCGNS()- CHKERRPTSCOTCH() -> PetscCallPTSCOTCH()- CHKERRSTR() -> PetscCallSTR()- CHKERRTC() -> PetscCallTC()
chkerr and friends wrapped
applied attribute format fixes to mat headers
Add MatCreateSubMatrices_ConstantDiagonal()
Add MatNorm_ConstantDiagonal()
Single petscdir.mk
build: add more support for not needing to set PETSC_DIR yet build with PETSc, also support for GNU make to directly use "make test" instead of "make -f gmakefile.test"Still needs -include ../petsc
build: add more support for not needing to set PETSC_DIR yet build with PETSc, also support for GNU make to directly use "make test" instead of "make -f gmakefile.test"Still needs -include ../petscdir.mk in many of the makefilesStill needs the link for ../petscdir.mk in many directoriesGNUMakefile: call legacy makefile recursively instead of including itGNUMakefile: promote default "all" target; "libs" builds libpetsc*GNUMakefile: If gnumake < 4.2 prefer makefile wrapper interface over direct gmakefile interface to avoid the following warningsgmakefile.test:92: arch-ci-linux-cxx-cmplx-pkgs-64idx/tests/testfiles: No such file or directorygmakefile:67: arch-ci-linux-cxx-cmplx-pkgs-64idx/lib/petsc/conf/files: No such file or directoryCommit-type: testing-fix, feature, usabilityThanks-to: Jed Brown jed@jedbrown.org
MATCONSTANTDIAGONAL: implement MatAXPYremove redundant calls to PetscObjectStateIncrease
MATCONSTANTDIAGONAL: add missing ops
Bug fix: computing MG complexity had integer overflow. Would only occur for very large problemsAlso fixed code that computes parallel matrix storage information to communicate with PetscLogDouble i
Bug fix: computing MG complexity had integer overflow. Would only occur for very large problemsAlso fixed code that computes parallel matrix storage information to communicate with PetscLogDouble instead of PetscReal.Commit-type: bug-fixReported-by: Mark Lohry <mlohry@gmail.com>
Update the use of Collective on in the manual pages to reflect the new styleCommit-type: style-fix, documentationThanks-to: Patrick Sanan <patrick.sanan@gmail.com>
more missing CHKERRQ fixes
Adding missing ierr and CHKERRQ()Commit-type: style-fixReported-by: nightly tests
Introduces a new Mat class that consists of a single constant value for all entries of the diagonal.Very light-weight matrix class suports factorization, SSOR, MatMult(), MatShit(), MatScale()Usef
Introduces a new Mat class that consists of a single constant value for all entries of the diagonal.Very light-weight matrix class suports factorization, SSOR, MatMult(), MatShit(), MatScale()Useful for IMEX methods when the user provides on a RHSJacobianCommit-type: feature
12