From d13f5517ba7ae45c84400d8c64a4ac792fc9c00e Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Fri, 17 May 2024 10:33:28 +0000 Subject: [PATCH] build based on 44b5f4c --- dev/.documenter-siteinfo.json | 2 +- dev/advanced/index.html | 4 ++-- dev/config/index.html | 2 +- dev/index.html | 2 +- dev/objects.inv | Bin 2337 -> 2477 bytes dev/reference/index.html | 2 +- dev/search_index.js | 2 +- dev/usage/index.html | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 83382d9..908d936 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.10.3","generation_timestamp":"2024-05-14T13:24:35","documenter_version":"1.4.1"}} \ No newline at end of file +{"documenter":{"julia_version":"1.10.3","generation_timestamp":"2024-05-17T10:33:26","documenter_version":"1.4.1"}} \ No newline at end of file diff --git a/dev/advanced/index.html b/dev/advanced/index.html index 5cc20d6..8a33d12 100644 --- a/dev/advanced/index.html +++ b/dev/advanced/index.html @@ -1,4 +1,4 @@ -Advanced API · PetscCall.jl

Advanced API

PetscCall.PetscErrorType
struct PetscError <: Exception
+Advanced API · PetscCall.jl

Advanced API

+end

Custom Exception thrown by @check_error_code.

source
diff --git a/dev/config/index.html b/dev/config/index.html index 9639ab9..3d1384a 100644 --- a/dev/config/index.html +++ b/dev/config/index.html @@ -7,4 +7,4 @@ PetscCall.use_system_petsc() # Restart Julia now

This will look in LD_LIBRARY_PATH for a file called libpetsc.so.

You can also provide the full path to libpetsc.so.

using PetscCall
 PetscCall.use_system_petsc(;libpetsc_path=path/to/libpetsc.so)
-# Restart Julia now
+# Restart Julia now diff --git a/dev/index.html b/dev/index.html index 07120c4..423fa75 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,2 +1,2 @@ -Home · PetscCall.jl

PetscCall

Documentation for PetscCall.

What

The goal of this package is to provide a high-level Julia interface to solvers from the PETSc library. At this moment it wraps linear solvers from the KSP module in PETSc, but the goal is to also provide nonlinear solvers from the SNES module in PETSc. The package also provides a low-level interface with functions that are almost 1-to-1 to the corresponding C functions for advanced users. The low level API is mostly taken from GridapPETSc.jl.

Features

  • Configuration of PETSc installation using Preferences.jl.
  • High-level wrapper of KSP solvers.
  • Support for sequential runs.
  • Support for parallel parallel runs with PartitionedArrays.jl.
  • Commonly used low-level API for KSP solvers.
+Home · PetscCall.jl

PetscCall

Documentation for PetscCall.

What

The goal of this package is to provide a high-level Julia interface to solvers from the PETSc library. At this moment it wraps linear solvers from the KSP module in PETSc, but the goal is to also provide nonlinear solvers from the SNES module in PETSc. The package also provides a low-level interface with functions that are almost 1-to-1 to the corresponding C functions for advanced users. The low level API is mostly taken from GridapPETSc.jl.

Features

  • Configuration of PETSc installation using Preferences.jl.
  • High-level wrapper of KSP solvers.
  • Support for sequential runs.
  • Support for parallel parallel runs with PartitionedArrays.jl.
  • Commonly used low-level API for KSP solvers.
diff --git a/dev/objects.inv b/dev/objects.inv index 2af3b0dd500bf1f8b8c863ef3d6eabdc288fc27b..ac3fe23a9cf7b488e94705077485ce1a77392dcc 100644 GIT binary patch delta 2373 zcmV-L3A*;760H-Efq&a_+cpq=*H^I9dZwMJn%I*zO`a-KQmWLJHIf}Ceeu8)EVH2q z1tinBo&I|lq)3q2`P@r-VOs$M0nfgJEbuf@)|`4ISJ*5{bWL zol=q)oMwuj7JoF)q7cNO_-)S8Bu**e!;B@LDbI%AujZ50584&<0Vij_3dqUXtDyNY z*#8(*Y=dP-1x%9pD@hPSfl;+QYONT8R&*ha<^ZUpI~UT5|5z>b3%=;B7KV$(UPvny zEC*Ttva zck?Hh&})hg&N9a($rqfhizp8hA%dN~G`XtyV zSWK>0;eXw`+2nSzyjxw5uWqjIoTRPAt7RUialYs8lDAH`YBaE^g*OK^o)<~7+L6dz zKeZh8BPcXl@aN)h*RV+=LGNej1M}Y94j#L)?`VX3y356EG6jSLoMzXNO4OzV18lJ)ke8P*qWSrY_6KYxU1mOKpCc-ZLfAh6Ec^*)qu4- zJjyb`F6=Ec?!n!ZOP9$Ejg%WQM&p@qicJ8WJW7HCYF-U)~2!TwD^@u_{NV|vHA61XT z&_>!NirZ@s123brrym4!4i4v|mmVqccIhr@kzqDmoNr;uiZp6FR;;C0!;J=CD6B|; zt~p7w9m`~q;8PM64K@I&j?LbBLrCxte}D1Giqsr-rThw(*}!6%f0kyH=a+1aj1c!Z z8LV}bY#5L8$E}YVYiV$vtXg2LX_L<+$$Y(;mdf%Zl})d58IPDq#u|^w{$z!$NMVb! zCCzB=wO%!eeWfdp`Pwl144SA27hh@vBIQcDdxniH6sQG+VyDlkeGwz73B1=2-8)1DL-wH;0|@0 zx{TIIs2t>}!W*Ufo2t}ud$qh6cXW|NoM~n~dGXxBp;pY=tvqe-SrSKn^~NsR6v>Go z%-N9ip+-9*hUXj}tKdi%-58D0?0;?jaKE@l)EziH;4irPr&|T0i&AW9`AJv}%8_Z> zBg-J(&2q+RnQu)QcMnj^M0VTdkwC~OtpkI=VZ=Fkx`m+0Hxrc!EGtr;=hft5dgO6F zQ0TV)oUz0yF2$ERea*fMwTCu~ghaFyxzBdVXjIw2Yh^MN6&6+*k9UA0F@IpaT2~{- z%hByo`X~`7wDG}Y-;}}BgUz;8Iol%iO!jIZrto&bHe*)YCzzwrM4hDtboC!fw9$RE z;`d4FR2Nhswcfgyt2uZ?MXsh_kMN*uCm(eO_uGIS?oSjm;`T~ASzlQ_YjhG4m)}>H z<7K!zC2=A;6MXY~EfxCedVfiG!Un?^&WXN>#27-CpC+6$WZX0Quz2rngb!c`mD|Tg z-hQo*w^_1qN+N)O%Md=e?3?hcPMe5qPf_}f@#K24yqwJ^VzP*(Sx(a2SW3s%+?#z5 z(Iq*h`EoScKxr@y4-sZr72ihrF3LTiF+ii<*=90=KUHqe$u(NF0Grf^n~I>;Qgi;E&EMT zy^BcVRfBE;5jTPRxZb1BvxBrl0r2y9C)AyfWS$z@Ql7FpBPDtGi#0>z(nv zR`hS2G;?TEsDH_)g7|m9x6ls74zKv7gF|(b9MN2e?gy*vRL>e?4V=mpE9^^M{YIOZ z8lbQ;e^SmSY0hKnq+TkdJ})niZ0o}G^ttPK?_8IjKDTz8iCm9yId61qH|vl%9Nzjx zkXiIKUMFd>xV%r|i;Ak&W%9S*#a$awl&WqWipf0YuyDK9;^ zM~Ab90e_L|dfpt$P`eg30_~-^4qcvF5?lVTw~g~+OSy0FSqF@G+f{_kE7**5*RNow^-Mcc#m6LZlc&l$Ql+x2kz_mRiw34(nF&QG zJe)Y4{`W3Oks?7H3pg(pP2pPri@mW5qBZ^ICF%O@n)zP$)bsvgTiWqibRTT$?~6Cb zUO)fLVv+_d>SPJo(E70a#j$tIKRPkJr!kHE#)#_Wu{SRtJAY*TNZ@l_A6ULS_Il;F zz1g@kBQXg>8g}V7vfYIR?U3Bj@G$?+zj);^Z$GSaT`jdexZ7FKFBy%}fSBkW23C}Z z(PI#^XbZ2Kpu<-4Ij$4hCEesHN$IwG7epj}YL4IY7zV>ok9fsUuNd07eINq;oa%^@ zG>d5>`D#Yf#DDJt8zkRNSri5lC2==l;UkTc?yrmKaPgaR2W`O7*&iHoboR!pzV!BA zdIh!4ydeTQ&U^|(1XEyC$&XShx*!!zNF_M{YRJw+*zw&M)^1@q-|R%#DW`Ja z^@~~mCZJ!t%M4`W-(K|ey9a;%gO$JC()59?z4`*>uz#cT3&0$m^^eX@_`~_2ewr^} zLZ>MjIKv$I(}1L8`Lv_&Xu1f#Q~NzBiC|_Q!8wP3SRdv^PAMSwlL>QNlJqj$?ve#f z`%xMSn?vqUN<`e8YL@^8+zkmcn)I)(oLA5$f?dIExLovCH{;>$aK2hB2Upk2l@+&@ zcsb95D1S)z^qa(MdM6tV)a1;Yf+kM0FkI}2Z!e!p8V2zM9G7TLKjoiIlOv1-xgSUO z%=vU1cfiX|dW@7HXg)1j~Mgt=>&Rf7bI1n3@n0`FT`DA;}Hqg7+>=IjAaoVW-_M zEFuKXeT17d2ym<@{3$Cs++NKmgN9rXKW2)Fk6xY_XejFqJVdZISZ%1*Uh&~+ocX-0 ziwn6crGgB+T-VFjaxC%_I{NFHO_O}P371JoAL%=AaG}qdpSa7h*HJ@>b zoW~o^SI9NAa(8_efwZL#X>=25ETTeW!$KN!O4cc#0cc(I~r`6+4^c4dw>QhwoB z^X|7n`cN2;{qD}4f&`Ha%zJL(AF2xLkMIy8F>~f7-dOV<3VYE~Q-9Hl*{qMSPgBT4 zZERoJaDy2CIoYienr6G7_~83}8CNA{)##(MQ{^4A%VqnF1$kA~mhmP+dfxBdP=7qY z`XDZEPL;wY&>XlF+I2Y_w^YX_J6^ZkrqDCy51>5EvqO?N=5D>_eK#skgGkdpqTnEP2Urr-37$D zX-E#&y2x5F>p6umtQyt>>^UX&v7wTNVeZ`0^3%rKWjY0mPumq# z{C=m(s;RCl}gn zPuIYik7W2IBkrxYH8gf#Tvy7<9$L9dfT&-ENqI*561wB0FeEM0hqXX5yVsuK9~!e^ zl*R$IYSxn>)!AFFI<SE=yb*omO zzxJ1-nl8?=Ro?9vM=ErkzyAZW G9BUSs*IIM{ diff --git a/dev/reference/index.html b/dev/reference/index.html index e9bb250..37955b1 100644 --- a/dev/reference/index.html +++ b/dev/reference/index.html @@ -1,2 +1,2 @@ -Reference · PetscCall.jl

Reference

Configuration

Environment

Linear solvers (KSP)

Nonlinear solvers (SNES)

Work in progress (help wanted).

+Reference · PetscCall.jl

Reference

Configuration

Environment

Linear solvers (KSP)

Nonlinear solvers (SNES)

Work in progress (help wanted).

diff --git a/dev/search_index.js b/dev/search_index.js index a38ab9b..d25200e 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"usage/#Usage","page":"Usage","title":"Usage","text":"","category":"section"},{"location":"usage/#Sequential-example","page":"Usage","title":"Sequential example","text":"","category":"section"},{"location":"usage/","page":"Usage","title":"Usage","text":"using SparseArrays\nusing Test\nusing PetscCall\nusing LinearAlgebra\n\n# Create a spare matrix and a vector in Julia\nI = [1,1,2,2,2,3,3,3,4,4]\nJ = [1,2,1,2,3,2,3,4,3,4]\nV = [4,-2,-1,6,-2,-1,6,-2,-1,4]\nm = 4\nn = 4\nA = sparse(I,J,V,m,n)\nx = ones(m)\nb = A*x\n\n# PetscCall options\noptions = \"-ksp_type gmres -ksp_monitor -pc_type ilu\"\nPetscCall.init(args=split(options))\n\n# Say, we want to solve A*x=b\nx2 = similar(x); x2 .= 0\nsetup = PetscCall.ksp_setup(x2,A,b)\nresults = PetscCall.ksp_solve!(x2,setup,b)\n@test x ≈ x2\n\n# Info about the solution process\n@show results\n\n# Now with the same matrix, but a different rhs\nb = 2*b\nresults = PetscCall.ksp_solve!(x2,setup,b)\n@test 2*x ≈ x2\n\n# Now with a different matrix, but reusing as much as possible\n# from the previous solve.\nA = 2*A\nPetscCall.ksp_setup!(setup,A)\nresults = PetscCall.ksp_solve!(x2,setup,b)\n@test x ≈ x2\n\n# The user needs to explicitly destroy\n# the setup object. This cannot be hidden in\n# Julia finalizers since destructors in petsc are\n# collective operations (in parallel runs).\n# Julia finalizers do not guarantee this.\nPetscCall.ksp_finalize!(setup)\n\n# The setup object cannot be used anymore.\n# This now would be provably a code dump:\n# PetscCall.ksp_solve!(x2,setup,b)","category":"page"},{"location":"usage/#Parallel-example","page":"Usage","title":"Parallel example","text":"","category":"section"},{"location":"usage/","page":"Usage","title":"Usage","text":"First write the parallel code in a function in a file demo.jl.","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"# File demo.jl\nusing SparseArrays\nusing Test\nusing PetscCall\nusing PartitionedArrays\n\nfunction ksp_tests(distribute)\n\n # Create the matrix and vector with PartitionedArrays.jl\n parts = distribute(LinearIndices((np,)))\n n = 7\n np = 3\n row_partition = uniform_partition(parts,np,n)\n col_partition = row_partition\n I,J,V = map(parts) do part\n if part == 1\n I = [1,2,3,1,3]\n J = [1,2,3,5,6]\n V = [9,9,9,1,1]\n elseif part == 2\n I = [4,5,5,4,5]\n J = [4,5,3,6,7]\n V = [9,9,9,1,1]\n elseif part == 3\n I = [6,7,6]\n J = [6,7,4]\n V = [9,9,1]\n end\n I,J,Float64.(V)\n end |> tuple_of_arrays\n A = psparse(I,J,V,row_partition,col_partition) |> fetch\n x = pones(partition(axes(A,2)))\n b = A*x\n\n # Now solve the system with petsc\n options = \"-ksp_type gmres -pc_type jacobi -ksp_rtol 1.0e-12\"\n PetscCall.init(;args = split(options))\n\n x2 = similar(x); x2 .= 0\n setup = PetscCall.ksp_setup(x2,A,b)\n results = PetscCall.ksp_solve!(x2,setup,b)\n @test x ≈ x2\n\n b = 2*b\n results = PetscCall.ksp_solve!(x2,setup,b)\n @test 2*x ≈ x2\n\n PetscCall.ksp_setup!(setup,A)\n results = PetscCall.ksp_solve!(x2,setup,b)\n @test 2*x ≈ x2\n\n PetscCall.ksp_finalize!(setup)\nend","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"Then, test your code with the debug back-end of PartitionedArrays.jl","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"include(\"demo.jl\")\nwith_debug(ksp_tests)","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"If it works, you can move the MPI back-end. Create your driver in file driver.jl.","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"# File driver.jl\nusing PartitionedArrays\nusing MPI; MPI.Init()\ninclude(\"demo.jl\")\nwith_mpi(ksp_tests)","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"You can launch driver.jl with MPI.","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"using MPI\nmpiexec(cmd->run(`$cmd -np 3 julia --project=. driver.jl`))","category":"page"},{"location":"advanced/#Advanced-API","page":"Advanced API","title":"Advanced API","text":"","category":"section"},{"location":"advanced/","page":"Advanced API","title":"Advanced API","text":"Modules = [PetscCall]\nPages = [\"api.jl\"]","category":"page"},{"location":"advanced/#PetscCall.PETSC_DECIDE","page":"Advanced API","title":"PetscCall.PETSC_DECIDE","text":"Julia constant storing the PETSC_DECIDE value.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"constant"},{"location":"advanced/#PetscCall.PETSC_DEFAULT","page":"Advanced API","title":"PetscCall.PETSC_DEFAULT","text":"Julia constant storing the PETSC_DEFAULT value.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"constant"},{"location":"advanced/#PetscCall.PETSC_DETERMINE","page":"Advanced API","title":"PetscCall.PETSC_DETERMINE","text":"Julia constant storing the PETSC_DETERMINE value.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"constant"},{"location":"advanced/#PetscCall.InsertMode","page":"Advanced API","title":"PetscCall.InsertMode","text":"Julia alias for the InsertMode C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.KSP","page":"Advanced API","title":"PetscCall.KSP","text":"Julia alias for the KSP C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.KSPType","page":"Advanced API","title":"PetscCall.KSPType","text":"Julia alias for KSPType C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.Mat","page":"Advanced API","title":"PetscCall.Mat","text":"Julia alias for the Mat C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatAssemblyType","page":"Advanced API","title":"PetscCall.MatAssemblyType","text":"Julia alias for the MatAssemblyType C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatDuplicateOption","page":"Advanced API","title":"PetscCall.MatDuplicateOption","text":"Julia alias for the MatDuplicateOption C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatInfo","page":"Advanced API","title":"PetscCall.MatInfo","text":"Julia alias for the MatInfo C struct.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatInfoType","page":"Advanced API","title":"PetscCall.MatInfoType","text":"Julia alias for the MatInfoType C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatNullSpace","page":"Advanced API","title":"PetscCall.MatNullSpace","text":"Julia alias for the MatNullSpace C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatReuse","page":"Advanced API","title":"PetscCall.MatReuse","text":"Julia alias for the MatReuse C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatStructure","page":"Advanced API","title":"PetscCall.MatStructure","text":"Julia alias for the MatStructure C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatType","page":"Advanced API","title":"PetscCall.MatType","text":"Julia alias for MatType C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.NormType","page":"Advanced API","title":"PetscCall.NormType","text":"Julia alias for the NormType C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PC","page":"Advanced API","title":"PetscCall.PC","text":"Julia alias for the PC C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PCType","page":"Advanced API","title":"PetscCall.PCType","text":"Julia alias for PCType C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscBool","page":"Advanced API","title":"PetscCall.PetscBool","text":"Julia alias to PetscBool C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscDataType","page":"Advanced API","title":"PetscCall.PetscDataType","text":"Julia alias to PetscDataType C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscError","page":"Advanced API","title":"PetscCall.PetscError","text":"struct PetscError <: Exception\n code::PetscErrorCode\nend\n\nCustom Exception thrown by @check_error_code.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscErrorCode","page":"Advanced API","title":"PetscCall.PetscErrorCode","text":"Julia alias to PetscErrorCode C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscLogDouble","page":"Advanced API","title":"PetscCall.PetscLogDouble","text":"Julia alias to PetscLogDouble C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscViewer","page":"Advanced API","title":"PetscCall.PetscViewer","text":"Julia alias for PetscViewer C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.SNES","page":"Advanced API","title":"PetscCall.SNES","text":"Julia alias for the SNES C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.Vec","page":"Advanced API","title":"PetscCall.Vec","text":"Julia alias for the Vec C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.VecOption","page":"Advanced API","title":"PetscCall.VecOption","text":"Julia alias for the VecOption C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.KSPCreate-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPCreate","text":"PetscCall.KSPCreate(comm, inksp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.KSPDestroy","text":"PetscCall.KSPDestroy(ksp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPGetIterationNumber-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPGetIterationNumber","text":"PetscCall.KSPGetIterationNumber(ksp, its)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPGetPC-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPGetPC","text":"PetscCall.KSPGetPC(ksp, pc)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetFromOptions-Tuple{Any}","page":"Advanced API","title":"PetscCall.KSPSetFromOptions","text":"PetscCall.KSPSetFromOptions(ksp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetInitialGuessNonzero-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPSetInitialGuessNonzero","text":"PetscCall.KSPSetInitialGuessNonzero(ksp, flg)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetOperators-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.KSPSetOperators","text":"PetscCall.KSPSetOperators(ksp, Amat, Pmat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetOptionsPrefix-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPSetOptionsPrefix","text":"PetscCall.KSPSetOptionsPrefix(ksp, prefix)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetTolerances-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.KSPSetTolerances","text":"PetscCall.KSPSetTolerances(ksp, rtol, abstol, dtol, maxits)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPSetType","text":"PetscCall.KSPSetType(ksp, typ)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetUp-Tuple{Any}","page":"Advanced API","title":"PetscCall.KSPSetUp","text":"PetscCall.KSPSetUp(ksp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSolve-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.KSPSolve","text":"PetscCall.KSPSolve(ksp, b, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSolveTranspose-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.KSPSolveTranspose","text":"PetscCall.KSPSolveTranspose(ksp, b, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPView-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPView","text":"PetscCall.KSPView(ksp, viewer)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatAssemblyBegin-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatAssemblyBegin","text":"PetscCall.MatAssemblyBegin(mat, typ)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatAssemblyEnd-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatAssemblyEnd","text":"PetscCall.MatAssemblyEnd(mat, typ)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatConvert-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.MatConvert","text":"PetscCall.MatConvert(mat, newtype, reuse, M)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCopy-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatCopy","text":"PetscCall.MatCopy(A, B, str)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreate-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatCreate","text":"PetscCall.MatCreate(comm, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreateAIJ-NTuple{10, Any}","page":"Advanced API","title":"PetscCall.MatCreateAIJ","text":"PetscCall.MatCreateAIJ(comm, m, n, M, N, d_nz, d_nnz, o_nz, o_nnz, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreateMPIAIJWithArrays-NTuple{9, Any}","page":"Advanced API","title":"PetscCall.MatCreateMPIAIJWithArrays","text":"PetscCall.MatCreateMPIAIJWithArrays(comm, m, n, M, N, i, j, a, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreateMPIAIJWithSplitArrays-NTuple{12, Any}","page":"Advanced API","title":"PetscCall.MatCreateMPIAIJWithSplitArrays","text":"PetscCall.MatCreateMPIAIJWithSplitArrays(comm, m, n, M, N, i, j, a, oi, oj, oa, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreateSeqAIJ-NTuple{6, Any}","page":"Advanced API","title":"PetscCall.MatCreateSeqAIJ","text":"PetscCall.MatCreateSeqAIJ(comm, m, n, nz, nnz, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreateSeqAIJWithArrays-NTuple{7, Any}","page":"Advanced API","title":"PetscCall.MatCreateSeqAIJWithArrays","text":"PetscCall.MatCreateSeqAIJWithArrays(comm, m, n, i, j, a, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.MatDestroy","text":"PetscCall.MatDestroy(A)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatEqual-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatEqual","text":"PetscCall.MatEqual(A, B, flg)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatGetInfo-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatGetInfo","text":"PetscCall.MatGetInfo(mat, flag, info)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatGetSize-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatGetSize","text":"PetscCall.MatGetSize(mat, m, n)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatGetValues-NTuple{6, Any}","page":"Advanced API","title":"PetscCall.MatGetValues","text":"PetscCall.MatGetValues(mat, m, idxm, n, idxn, v)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMPIAIJSetPreallocation-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.MatMPIAIJSetPreallocation","text":"PetscCall.MatMPIAIJSetPreallocation(B, d_nz, d_nnz, o_nz, o_nnz)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMult-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatMult","text":"PetscCall.MatMult(mat, x, y)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMultAdd-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.MatMultAdd","text":"PetscCall.MatMultAdd(mat, v1, v2, v3)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMumpsSetCntl-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatMumpsSetCntl","text":"PetscCall.MatMumpsSetCntl(mat, icntl, val)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMumpsSetIcntl-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatMumpsSetIcntl","text":"PetscCall.MatMumpsSetIcntl(mat, icntl, val)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatNullSpaceCreate-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.MatNullSpaceCreate","text":"PetscCall.MatNullSpaceCreate(comm, has_cnst, n, vecs, sp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatNullSpaceCreateRigidBody-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatNullSpaceCreateRigidBody","text":"PetscCall.MatNullSpaceCreateRigidBody(coords, sp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatNullSpaceDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.MatNullSpaceDestroy","text":"PetscCall.MatNullSpaceDestroy(ns)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatScale-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatScale","text":"PetscCall.MatScale(mat, alpha)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetBlockSize-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatSetBlockSize","text":"PetscCall.MatSetBlockSize(mat, bs)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetNearNullSpace-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatSetNearNullSpace","text":"PetscCall.MatSetNearNullSpace(mat, nullsp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetPreallocationCOO-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.MatSetPreallocationCOO","text":"PetscCall.MatSetPreallocationCOO(A, ncoo, coo_i, coo_j)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetSizes-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.MatSetSizes","text":"PetscCall.MatSetSizes(A, m, n, M, N)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatSetType","text":"PetscCall.MatSetType(mat, matype)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetValues-NTuple{7, Any}","page":"Advanced API","title":"PetscCall.MatSetValues","text":"PetscCall.MatSetValues(mat, m, idxm, n, idxn, v, addv)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetValuesCOO-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatSetValuesCOO","text":"PetscCall.MatSetValuesCOO(A, coo_v, imode)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatView-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatView","text":"PetscCall.MatView(mat, viewer)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatZeroEntries-Tuple{Any}","page":"Advanced API","title":"PetscCall.MatZeroEntries","text":"PetscCall.MatZeroEntries(mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PCFactorGetMatrix-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.PCFactorGetMatrix","text":"PetscCall.PCFactorGetMatrix(ksp, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PCFactorSetMatSolverType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.PCFactorSetMatSolverType","text":"PetscCall.PCFactorSetMatSolverType(pc, typ)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PCFactorSetUpMatSolverType-Tuple{Any}","page":"Advanced API","title":"PetscCall.PCFactorSetUpMatSolverType","text":"PetscCall.PCFactorSetUpMatSolverType(pc)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PCSetType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.PCSetType","text":"PetscCall.PCSetType(pc, typ)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PCView-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.PCView","text":"PetscCall.PCView(pc, viewer)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PETSC_VIEWER_DRAW_-Tuple{Any}","page":"Advanced API","title":"PetscCall.PETSC_VIEWER_DRAW_","text":"PetscCall.PETSC_VIEWER_DRAW_(comm)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PETSC_VIEWER_STDOUT_-Tuple{Any}","page":"Advanced API","title":"PetscCall.PETSC_VIEWER_STDOUT_","text":"PetscCall.PETSC_VIEWER_STDOUT_(comm)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscDataTypeFromString-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.PetscDataTypeFromString","text":"PetscDataTypeFromString(name,ptype,found)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscDataTypeGetSize-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.PetscDataTypeGetSize","text":"PetscDataTypeGetSize(ptype,size)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscFinalize-Tuple{}","page":"Advanced API","title":"PetscCall.PetscFinalize","text":"PetscCall.PetscFinalize()\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscFinalized-Tuple{Any}","page":"Advanced API","title":"PetscCall.PetscFinalized","text":"PetscCall.PetscFinalized(flag)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscInitializeNoArguments-Tuple{}","page":"Advanced API","title":"PetscCall.PetscInitializeNoArguments","text":"PetscCall.PetscInitializeNoArguments()\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscInitializeNoPointers-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.PetscInitializeNoPointers","text":"PetscCall.PetscInitializeNoPointers(argc, args, filename, help)\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscInitialized-Tuple{Any}","page":"Advanced API","title":"PetscCall.PetscInitialized","text":"PetscCall.PetscInitialized(flag)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscObjectRegisterDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.PetscObjectRegisterDestroy","text":"PetscCall.PetscObjectRegisterDestroy(obj)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscObjectRegisterDestroyAll-Tuple{}","page":"Advanced API","title":"PetscCall.PetscObjectRegisterDestroyAll","text":"PetscCall.PetscObjectRegisterDestroyAll()\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESCreate-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESCreate","text":"PetscCall.SNESCreate(comm, snes)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.SNESDestroy","text":"PetscCall.SNESDestroy(snes)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESGetIterationNumber-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESGetIterationNumber","text":"PetscCall.SNESGetIterationNumber(snes, iter)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESGetKSP-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESGetKSP","text":"PetscCall.SNESGetKSP(snes, ksp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESGetLinearSolveFailures-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESGetLinearSolveFailures","text":"PetscCall.SNESGetLinearSolveFailures(snes, nfails)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESGetLinearSolveIterations-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESGetLinearSolveIterations","text":"PetscCall.SNESGetLinearSolveIterations(snes, iter)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESGetNumberFunctionEvals-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESGetNumberFunctionEvals","text":"PetscCall.SNESGetNumberFunctionEvals(snes, nfuncs)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSetCountersReset-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESSetCountersReset","text":"PetscCall.SNESSetCountersReset(snes, reset)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSetFromOptions-Tuple{Any}","page":"Advanced API","title":"PetscCall.SNESSetFromOptions","text":"PetscCall.SNESSetFromOptions(snes)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSetFunction-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.SNESSetFunction","text":"PetscCall.SNESSetFunction(snes, vec, fptr, ctx)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSetJacobian-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.SNESSetJacobian","text":"PetscCall.SNESSetJacobian(snes, A, P, jacptr, ctx)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSetType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESSetType","text":"PetscCall.SNESSetType(snes, type)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSolve-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.SNESSolve","text":"PetscCall.SNESSolve(snes, b, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESView-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESView","text":"PetscCall.SNESView(snes, viewer)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecAXPBY-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.VecAXPBY","text":"PetscCall.VecAXPBY(y, alpha, beta, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecAXPY-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.VecAXPY","text":"PetscCall.VecAXPY(y, alpha, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecAYPX-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.VecAYPX","text":"PetscCall.VecAYPX(y, beta, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecAssemblyBegin-Tuple{Any}","page":"Advanced API","title":"PetscCall.VecAssemblyBegin","text":"PetscCall.VecAssemblyBegin(vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecAssemblyEnd-Tuple{Any}","page":"Advanced API","title":"PetscCall.VecAssemblyEnd","text":"PetscCall.VecAssemblyEnd(vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCopy-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecCopy","text":"PetscCall.VecCopy(x, y)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateGhost-NTuple{6, Any}","page":"Advanced API","title":"PetscCall.VecCreateGhost","text":"PetscCall.VecCreateGhost(comm, n, N, nghost, ghosts, vv)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateGhostWithArray-NTuple{7, Any}","page":"Advanced API","title":"PetscCall.VecCreateGhostWithArray","text":"PetscCall.VecCreateGhostWithArray(comm, n, N, nghost, ghosts, array, vv)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateMPI-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.VecCreateMPI","text":"PetscCall.VecCreateMPI(comm, n, N, v)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateMPIWithArray-NTuple{6, Any}","page":"Advanced API","title":"PetscCall.VecCreateMPIWithArray","text":"PetscCall.VecCreateMPIWithArray(comm, bs, n, N, array, vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateSeq-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.VecCreateSeq","text":"PetscCall.VecCreateSeq(comm, n, vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateSeqWithArray-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.VecCreateSeqWithArray","text":"PetscCall.VecCreateSeqWithArray(comm, bs, n, array, vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.VecDestroy","text":"PetscCall.VecDestroy(vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecDuplicate-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecDuplicate","text":"PetscCall.VecDuplicate(v, newv)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetArray-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGetArray","text":"PetscCall.VecGetArray(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetArrayRead-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGetArrayRead","text":"PetscCall.VecGetArrayRead(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetArrayWrite-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGetArrayWrite","text":"PetscCall.VecGetArrayWrite(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetLocalSize-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGetLocalSize","text":"PetscCall.VecGetLocalSize(vec, n)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetSize-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGetSize","text":"PetscCall.VecGetSize(vec, n)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetValues-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.VecGetValues","text":"PetscCall.VecGetValues(x, ni, ix, y)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGhostGetLocalForm-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGhostGetLocalForm","text":"PetscCall.VecGhostGetLocalForm(g, l)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGhostRestoreLocalForm-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGhostRestoreLocalForm","text":"PetscCall.VecGhostRestoreLocalForm(g, l)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecNorm-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.VecNorm","text":"PetscCall.VecNorm(x, typ, val)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecPlaceArray-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecPlaceArray","text":"PetscCall.VecPlaceArray(vec, array)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecResetArray-Tuple{Any}","page":"Advanced API","title":"PetscCall.VecResetArray","text":"PetscCall.VecResetArray(vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecRestoreArray-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecRestoreArray","text":"PetscCall.VecRestoreArray(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecRestoreArrayRead-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecRestoreArrayRead","text":"PetscCall.VecRestoreArrayRead(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecRestoreArrayWrite-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecRestoreArrayWrite","text":"PetscCall.VecRestoreArrayWrite(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecScale-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecScale","text":"PetscCall.VecScale(x, alpha)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecSet-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecSet","text":"PetscCall.VecSet(x, alpha)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecSetOption-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.VecSetOption","text":"PetscCall.VecSetOption(x, op, flg)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecSetValues-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.VecSetValues","text":"PetscCall.VecSetValues(x, ni, ix, y, iora)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecView-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecView","text":"PetscCall.VecView(vec, viewer)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecZeroEntries-Tuple{Any}","page":"Advanced API","title":"PetscCall.VecZeroEntries","text":"PetscCall.VecZeroEntries(v)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.@PETSC_VIEWER_DRAW_SELF-Tuple{}","page":"Advanced API","title":"PetscCall.@PETSC_VIEWER_DRAW_SELF","text":"@PETSC_VIEWER_DRAW_SELF\n\nSee PETSc manual.\n\n\n\n\n\n","category":"macro"},{"location":"advanced/#PetscCall.@PETSC_VIEWER_DRAW_WORLD-Tuple{}","page":"Advanced API","title":"PetscCall.@PETSC_VIEWER_DRAW_WORLD","text":"@PETSC_VIEWER_DRAW_WORLD\n\nSee PETSc manual.\n\n\n\n\n\n","category":"macro"},{"location":"advanced/#PetscCall.@PETSC_VIEWER_STDOUT_SELF-Tuple{}","page":"Advanced API","title":"PetscCall.@PETSC_VIEWER_STDOUT_SELF","text":"@PETSC_VIEWER_STDOUT_SELF\n\nSee PETSc manual.\n\n\n\n\n\n","category":"macro"},{"location":"advanced/#PetscCall.@PETSC_VIEWER_STDOUT_WORLD-Tuple{}","page":"Advanced API","title":"PetscCall.@PETSC_VIEWER_STDOUT_WORLD","text":"@PETSC_VIEWER_STDOUT_WORLD\n\nSee PETSc manual.\n\n\n\n\n\n","category":"macro"},{"location":"advanced/#PetscCall.@check_error_code-Tuple{Any}","page":"Advanced API","title":"PetscCall.@check_error_code","text":"@check_error_code expr\n\nCheck if expr returns an error code equal to zero(PetscErrorCode). If not, throw an instance of PetscError.\n\n\n\n\n\n","category":"macro"},{"location":"reference/#Reference","page":"Reference","title":"Reference","text":"","category":"section"},{"location":"reference/#Configuration","page":"Reference","title":"Configuration","text":"","category":"section"},{"location":"reference/","page":"Reference","title":"Reference","text":"Modules = [PetscCall]\nPages = [\"preferences_tail.jl\"]","category":"page"},{"location":"reference/#PetscCall.use_petsc_jll-Tuple{}","page":"Reference","title":"PetscCall.use_petsc_jll","text":"PetscCall.use_petsc_jll(;kwargs...)\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#PetscCall.use_system_petsc-Tuple{}","page":"Reference","title":"PetscCall.use_system_petsc","text":"PetscCall.use_system_petsc(;kwargs...)\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#Environment","page":"Reference","title":"Environment","text":"","category":"section"},{"location":"reference/","page":"Reference","title":"Reference","text":"Modules = [PetscCall]\nPages = [\"environment.jl\"]","category":"page"},{"location":"reference/#PetscCall.finalize-Tuple{}","page":"Reference","title":"PetscCall.finalize","text":"PetscCall.finalize()\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#PetscCall.init-Tuple{}","page":"Reference","title":"PetscCall.init","text":"PetscCall.init(:kwargs...)\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#PetscCall.initialized-Tuple{}","page":"Reference","title":"PetscCall.initialized","text":"PetscCall.initialized()\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#PetscCall.with-Tuple{Any}","page":"Reference","title":"PetscCall.with","text":"PetscCall.with(f;kwargs...)\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#Linear-solvers-(KSP)","page":"Reference","title":"Linear solvers (KSP)","text":"","category":"section"},{"location":"reference/","page":"Reference","title":"Reference","text":"Modules = [PetscCall]\nPages = [\"ksp.jl\"]","category":"page"},{"location":"reference/#PetscCall.ksp_finalize!","page":"Reference","title":"PetscCall.ksp_finalize!","text":"PetscCall.ksp_finalize!(setup)\n\nDocument me!\n\n\n\n\n\n","category":"function"},{"location":"reference/#PetscCall.ksp_setup","page":"Reference","title":"PetscCall.ksp_setup","text":"PetscCall.ksp_setup(x,A,b;kwargs...)\n\nDocument me!\n\n\n\n\n\n","category":"function"},{"location":"reference/#PetscCall.ksp_setup!","page":"Reference","title":"PetscCall.ksp_setup!","text":"PetscCall.ksp_setup!(setup,A)\n\nDocument me!\n\n\n\n\n\n","category":"function"},{"location":"reference/#PetscCall.ksp_solve!","page":"Reference","title":"PetscCall.ksp_solve!","text":"PetscCall.ksp_solve!(x,setup,b)\n\nDocument me!\n\n\n\n\n\n","category":"function"},{"location":"reference/#Nonlinear-solvers-(SNES)","page":"Reference","title":"Nonlinear solvers (SNES)","text":"","category":"section"},{"location":"reference/","page":"Reference","title":"Reference","text":"Work in progress (help wanted).","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = PetscCall","category":"page"},{"location":"#PetscCall","page":"Home","title":"PetscCall","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Documentation for PetscCall.","category":"page"},{"location":"#What","page":"Home","title":"What","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The goal of this package is to provide a high-level Julia interface to solvers from the PETSc library. At this moment it wraps linear solvers from the KSP module in PETSc, but the goal is to also provide nonlinear solvers from the SNES module in PETSc. The package also provides a low-level interface with functions that are almost 1-to-1 to the corresponding C functions for advanced users. The low level API is mostly taken from GridapPETSc.jl.","category":"page"},{"location":"#Features","page":"Home","title":"Features","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Configuration of PETSc installation using Preferences.jl.\nHigh-level wrapper of KSP solvers.\nSupport for sequential runs.\nSupport for parallel parallel runs with PartitionedArrays.jl.\nCommonly used low-level API for KSP solvers.","category":"page"},{"location":"config/#Configuration","page":"Configuration","title":"Configuration","text":"","category":"section"},{"location":"config/","page":"Configuration","title":"Configuration","text":"This packages uses Preferences.jl for its configuration.","category":"page"},{"location":"config/#Use-jll-binary","page":"Configuration","title":"Use jll binary","text":"","category":"section"},{"location":"config/","page":"Configuration","title":"Configuration","text":"To use the petsc installation provided by BinaryBuilder.jl run these commands:","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"using PetscCall\nPetscCall.use_petsc_jll()\n# Restart Julia now","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"You can also specify the integer and scalar types to use:","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"using PetscCall\nPetscCall.use_petsc_jll(PetscInt=Int32,PetscScalar=Float32)\n# Restart Julia now","category":"page"},{"location":"config/#Use-a-system-binary","page":"Configuration","title":"Use a system binary","text":"","category":"section"},{"location":"config/","page":"Configuration","title":"Configuration","text":"To use PETSc installed in your system:","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"using PetscCall\nPetscCall.use_system_petsc()\n# Restart Julia now","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"This will look in LD_LIBRARY_PATH for a file called libpetsc.so.","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"You can also provide the full path to libpetsc.so.","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"using PetscCall\nPetscCall.use_system_petsc(;libpetsc_path=path/to/libpetsc.so)\n# Restart Julia now","category":"page"}] +[{"location":"usage/#Usage","page":"Usage","title":"Usage","text":"","category":"section"},{"location":"usage/#Sequential-example","page":"Usage","title":"Sequential example","text":"","category":"section"},{"location":"usage/","page":"Usage","title":"Usage","text":"using SparseArrays\nusing Test\nusing PetscCall\nusing LinearAlgebra\n\n# Create a spare matrix and a vector in Julia\nI = [1,1,2,2,2,3,3,3,4,4]\nJ = [1,2,1,2,3,2,3,4,3,4]\nV = [4,-2,-1,6,-2,-1,6,-2,-1,4]\nm = 4\nn = 4\nA = sparse(I,J,V,m,n)\nx = ones(m)\nb = A*x\n\n# PetscCall options\noptions = \"-ksp_type gmres -ksp_monitor -pc_type ilu\"\nPetscCall.init(args=split(options))\n\n# Say, we want to solve A*x=b\nx2 = similar(x); x2 .= 0\nsetup = PetscCall.ksp_setup(x2,A,b)\nresults = PetscCall.ksp_solve!(x2,setup,b)\n@test x ≈ x2\n\n# Info about the solution process\n@show results\n\n# Now with the same matrix, but a different rhs\nb = 2*b\nresults = PetscCall.ksp_solve!(x2,setup,b)\n@test 2*x ≈ x2\n\n# Now with a different matrix, but reusing as much as possible\n# from the previous solve.\nA = 2*A\nPetscCall.ksp_setup!(setup,A)\nresults = PetscCall.ksp_solve!(x2,setup,b)\n@test x ≈ x2\n\n# The user needs to explicitly destroy\n# the setup object. This cannot be hidden in\n# Julia finalizers since destructors in petsc are\n# collective operations (in parallel runs).\n# Julia finalizers do not guarantee this.\nPetscCall.ksp_finalize!(setup)\n\n# The setup object cannot be used anymore.\n# This now would be provably a code dump:\n# PetscCall.ksp_solve!(x2,setup,b)","category":"page"},{"location":"usage/#Parallel-example","page":"Usage","title":"Parallel example","text":"","category":"section"},{"location":"usage/","page":"Usage","title":"Usage","text":"First write the parallel code in a function in a file demo.jl.","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"# File demo.jl\nusing SparseArrays\nusing Test\nusing PetscCall\nusing PartitionedArrays\n\nfunction ksp_tests(distribute)\n\n # Create the matrix and vector with PartitionedArrays.jl\n parts = distribute(LinearIndices((np,)))\n n = 7\n np = 3\n row_partition = uniform_partition(parts,np,n)\n col_partition = row_partition\n I,J,V = map(parts) do part\n if part == 1\n I = [1,2,3,1,3]\n J = [1,2,3,5,6]\n V = [9,9,9,1,1]\n elseif part == 2\n I = [4,5,5,4,5]\n J = [4,5,3,6,7]\n V = [9,9,9,1,1]\n elseif part == 3\n I = [6,7,6]\n J = [6,7,4]\n V = [9,9,1]\n end\n I,J,Float64.(V)\n end |> tuple_of_arrays\n A = psparse(I,J,V,row_partition,col_partition) |> fetch\n x = pones(partition(axes(A,2)))\n b = A*x\n\n # Now solve the system with petsc\n options = \"-ksp_type gmres -pc_type jacobi -ksp_rtol 1.0e-12\"\n PetscCall.init(;args = split(options))\n\n x2 = similar(x); x2 .= 0\n setup = PetscCall.ksp_setup(x2,A,b)\n results = PetscCall.ksp_solve!(x2,setup,b)\n @test x ≈ x2\n\n b = 2*b\n results = PetscCall.ksp_solve!(x2,setup,b)\n @test 2*x ≈ x2\n\n PetscCall.ksp_setup!(setup,A)\n results = PetscCall.ksp_solve!(x2,setup,b)\n @test 2*x ≈ x2\n\n PetscCall.ksp_finalize!(setup)\nend","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"Then, test your code with the debug back-end of PartitionedArrays.jl","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"include(\"demo.jl\")\nwith_debug(ksp_tests)","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"If it works, you can move the MPI back-end. Create your driver in file driver.jl.","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"# File driver.jl\nusing PartitionedArrays\nusing MPI; MPI.Init()\ninclude(\"demo.jl\")\nwith_mpi(ksp_tests)","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"You can launch driver.jl with MPI.","category":"page"},{"location":"usage/","page":"Usage","title":"Usage","text":"using MPI\nmpiexec(cmd->run(`$cmd -np 3 julia --project=. driver.jl`))","category":"page"},{"location":"advanced/#Advanced-API","page":"Advanced API","title":"Advanced API","text":"","category":"section"},{"location":"advanced/","page":"Advanced API","title":"Advanced API","text":"Modules = [PetscCall]\nPages = [\"api.jl\"]","category":"page"},{"location":"advanced/#PetscCall.PETSC_DECIDE","page":"Advanced API","title":"PetscCall.PETSC_DECIDE","text":"Julia constant storing the PETSC_DECIDE value.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"constant"},{"location":"advanced/#PetscCall.PETSC_DEFAULT","page":"Advanced API","title":"PetscCall.PETSC_DEFAULT","text":"Julia constant storing the PETSC_DEFAULT value.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"constant"},{"location":"advanced/#PetscCall.PETSC_DETERMINE","page":"Advanced API","title":"PetscCall.PETSC_DETERMINE","text":"Julia constant storing the PETSC_DETERMINE value.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"constant"},{"location":"advanced/#PetscCall.InsertMode","page":"Advanced API","title":"PetscCall.InsertMode","text":"Julia alias for the InsertMode C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.KSP","page":"Advanced API","title":"PetscCall.KSP","text":"Julia alias for the KSP C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.KSPType","page":"Advanced API","title":"PetscCall.KSPType","text":"Julia alias for KSPType C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.Mat","page":"Advanced API","title":"PetscCall.Mat","text":"Julia alias for the Mat C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatAssemblyType","page":"Advanced API","title":"PetscCall.MatAssemblyType","text":"Julia alias for the MatAssemblyType C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatDuplicateOption","page":"Advanced API","title":"PetscCall.MatDuplicateOption","text":"Julia alias for the MatDuplicateOption C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatInfo","page":"Advanced API","title":"PetscCall.MatInfo","text":"Julia alias for the MatInfo C struct.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatInfoType","page":"Advanced API","title":"PetscCall.MatInfoType","text":"Julia alias for the MatInfoType C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatNullSpace","page":"Advanced API","title":"PetscCall.MatNullSpace","text":"Julia alias for the MatNullSpace C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatProductAlgorithm","page":"Advanced API","title":"PetscCall.MatProductAlgorithm","text":"Julia alias for MatProductAlgorithm C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatProductType","page":"Advanced API","title":"PetscCall.MatProductType","text":"Julia alias for the MatProductType C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatReuse","page":"Advanced API","title":"PetscCall.MatReuse","text":"Julia alias for the MatReuse C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatStructure","page":"Advanced API","title":"PetscCall.MatStructure","text":"Julia alias for the MatStructure C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.MatType","page":"Advanced API","title":"PetscCall.MatType","text":"Julia alias for MatType C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.NormType","page":"Advanced API","title":"PetscCall.NormType","text":"Julia alias for the NormType C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PC","page":"Advanced API","title":"PetscCall.PC","text":"Julia alias for the PC C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PCType","page":"Advanced API","title":"PetscCall.PCType","text":"Julia alias for PCType C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscBool","page":"Advanced API","title":"PetscCall.PetscBool","text":"Julia alias to PetscBool C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscDataType","page":"Advanced API","title":"PetscCall.PetscDataType","text":"Julia alias to PetscDataType C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscError","page":"Advanced API","title":"PetscCall.PetscError","text":"struct PetscError <: Exception\n code::PetscErrorCode\nend\n\nCustom Exception thrown by @check_error_code.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscErrorCode","page":"Advanced API","title":"PetscCall.PetscErrorCode","text":"Julia alias to PetscErrorCode C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscLogDouble","page":"Advanced API","title":"PetscCall.PetscLogDouble","text":"Julia alias to PetscLogDouble C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.PetscViewer","page":"Advanced API","title":"PetscCall.PetscViewer","text":"Julia alias for PetscViewer C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.SNES","page":"Advanced API","title":"PetscCall.SNES","text":"Julia alias for the SNES C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.Vec","page":"Advanced API","title":"PetscCall.Vec","text":"Julia alias for the Vec C type.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.VecOption","page":"Advanced API","title":"PetscCall.VecOption","text":"Julia alias for the VecOption C enum.\n\nSee PETSc manual.\n\n\n\n\n\n","category":"type"},{"location":"advanced/#PetscCall.KSPCreate-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPCreate","text":"PetscCall.KSPCreate(comm, inksp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.KSPDestroy","text":"PetscCall.KSPDestroy(ksp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPGetIterationNumber-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPGetIterationNumber","text":"PetscCall.KSPGetIterationNumber(ksp, its)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPGetPC-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPGetPC","text":"PetscCall.KSPGetPC(ksp, pc)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetFromOptions-Tuple{Any}","page":"Advanced API","title":"PetscCall.KSPSetFromOptions","text":"PetscCall.KSPSetFromOptions(ksp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetInitialGuessNonzero-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPSetInitialGuessNonzero","text":"PetscCall.KSPSetInitialGuessNonzero(ksp, flg)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetOperators-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.KSPSetOperators","text":"PetscCall.KSPSetOperators(ksp, Amat, Pmat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetOptionsPrefix-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPSetOptionsPrefix","text":"PetscCall.KSPSetOptionsPrefix(ksp, prefix)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetTolerances-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.KSPSetTolerances","text":"PetscCall.KSPSetTolerances(ksp, rtol, abstol, dtol, maxits)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPSetType","text":"PetscCall.KSPSetType(ksp, typ)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSetUp-Tuple{Any}","page":"Advanced API","title":"PetscCall.KSPSetUp","text":"PetscCall.KSPSetUp(ksp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSolve-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.KSPSolve","text":"PetscCall.KSPSolve(ksp, b, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPSolveTranspose-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.KSPSolveTranspose","text":"PetscCall.KSPSolveTranspose(ksp, b, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.KSPView-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.KSPView","text":"PetscCall.KSPView(ksp, viewer)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatAssemblyBegin-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatAssemblyBegin","text":"PetscCall.MatAssemblyBegin(mat, typ)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatAssemblyEnd-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatAssemblyEnd","text":"PetscCall.MatAssemblyEnd(mat, typ)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatConvert-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.MatConvert","text":"PetscCall.MatConvert(mat, newtype, reuse, M)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCopy-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatCopy","text":"PetscCall.MatCopy(A, B, str)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreate-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatCreate","text":"PetscCall.MatCreate(comm, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreateAIJ-NTuple{10, Any}","page":"Advanced API","title":"PetscCall.MatCreateAIJ","text":"PetscCall.MatCreateAIJ(comm, m, n, M, N, d_nz, d_nnz, o_nz, o_nnz, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreateMPIAIJWithArrays-NTuple{9, Any}","page":"Advanced API","title":"PetscCall.MatCreateMPIAIJWithArrays","text":"PetscCall.MatCreateMPIAIJWithArrays(comm, m, n, M, N, i, j, a, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreateMPIAIJWithSplitArrays-NTuple{12, Any}","page":"Advanced API","title":"PetscCall.MatCreateMPIAIJWithSplitArrays","text":"PetscCall.MatCreateMPIAIJWithSplitArrays(comm, m, n, M, N, i, j, a, oi, oj, oa, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreateSeqAIJ-NTuple{6, Any}","page":"Advanced API","title":"PetscCall.MatCreateSeqAIJ","text":"PetscCall.MatCreateSeqAIJ(comm, m, n, nz, nnz, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatCreateSeqAIJWithArrays-NTuple{7, Any}","page":"Advanced API","title":"PetscCall.MatCreateSeqAIJWithArrays","text":"PetscCall.MatCreateSeqAIJWithArrays(comm, m, n, i, j, a, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.MatDestroy","text":"PetscCall.MatDestroy(A)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatEqual-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatEqual","text":"PetscCall.MatEqual(A, B, flg)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatGetInfo-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatGetInfo","text":"PetscCall.MatGetInfo(mat, flag, info)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatGetSize-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatGetSize","text":"PetscCall.MatGetSize(mat, m, n)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatGetValues-NTuple{6, Any}","page":"Advanced API","title":"PetscCall.MatGetValues","text":"PetscCall.MatGetValues(mat, m, idxm, n, idxn, v)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMPIAIJSetPreallocation-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.MatMPIAIJSetPreallocation","text":"PetscCall.MatMPIAIJSetPreallocation(B, d_nz, d_nnz, o_nz, o_nnz)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMatMult-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.MatMatMult","text":"PetscCall.MatMatMult(A, B, scall, fill, C)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMult-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatMult","text":"PetscCall.MatMult(mat, x, y)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMultAdd-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.MatMultAdd","text":"PetscCall.MatMultAdd(mat, v1, v2, v3)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMumpsSetCntl-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatMumpsSetCntl","text":"PetscCall.MatMumpsSetCntl(mat, icntl, val)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatMumpsSetIcntl-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatMumpsSetIcntl","text":"PetscCall.MatMumpsSetIcntl(mat, icntl, val)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatNullSpaceCreate-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.MatNullSpaceCreate","text":"PetscCall.MatNullSpaceCreate(comm, has_cnst, n, vecs, sp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatNullSpaceCreateRigidBody-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatNullSpaceCreateRigidBody","text":"PetscCall.MatNullSpaceCreateRigidBody(coords, sp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatNullSpaceDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.MatNullSpaceDestroy","text":"PetscCall.MatNullSpaceDestroy(ns)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatProductClear-Tuple{Any}","page":"Advanced API","title":"PetscCall.MatProductClear","text":"PetscCall.MatProductClear(mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatProductCreate-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.MatProductCreate","text":"PetscCall.MatProductCreate(A, B, C, D)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatProductGetAlgorithm-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatProductGetAlgorithm","text":"PetscCall.MatProductGetAlgorithm(mat, alg)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatProductNumeric-Tuple{Any}","page":"Advanced API","title":"PetscCall.MatProductNumeric","text":"PetscCall.MatProductNumeric(mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatProductReplaceMats-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.MatProductReplaceMats","text":"PetscCall.MatProductReplaceMats(A, B, C, D)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatProductSetAlgorithm-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatProductSetAlgorithm","text":"PetscCall.MatProductSetAlgorithm(mat, alg)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatProductSetFill-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatProductSetFill","text":"PetscCall.MatProductSetFill(mat, fill)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatProductSetFromOptions-Tuple{Any}","page":"Advanced API","title":"PetscCall.MatProductSetFromOptions","text":"PetscCall.MatProductSetFromOptions(mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatProductSetType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatProductSetType","text":"PetscCall.MatProductSetType(mat, productype)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatProductSymbolic-Tuple{Any}","page":"Advanced API","title":"PetscCall.MatProductSymbolic","text":"PetscCall.MatProductSymbolic(mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatScale-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatScale","text":"PetscCall.MatScale(mat, alpha)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetBlockSize-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatSetBlockSize","text":"PetscCall.MatSetBlockSize(mat, bs)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetNearNullSpace-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatSetNearNullSpace","text":"PetscCall.MatSetNearNullSpace(mat, nullsp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetPreallocationCOO-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.MatSetPreallocationCOO","text":"PetscCall.MatSetPreallocationCOO(A, ncoo, coo_i, coo_j)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetSizes-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.MatSetSizes","text":"PetscCall.MatSetSizes(A, m, n, M, N)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatSetType","text":"PetscCall.MatSetType(mat, matype)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetValues-NTuple{7, Any}","page":"Advanced API","title":"PetscCall.MatSetValues","text":"PetscCall.MatSetValues(mat, m, idxm, n, idxn, v, addv)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatSetValuesCOO-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.MatSetValuesCOO","text":"PetscCall.MatSetValuesCOO(A, coo_v, imode)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatView-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.MatView","text":"PetscCall.MatView(mat, viewer)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.MatZeroEntries-Tuple{Any}","page":"Advanced API","title":"PetscCall.MatZeroEntries","text":"PetscCall.MatZeroEntries(mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PCFactorGetMatrix-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.PCFactorGetMatrix","text":"PetscCall.PCFactorGetMatrix(ksp, mat)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PCFactorSetMatSolverType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.PCFactorSetMatSolverType","text":"PetscCall.PCFactorSetMatSolverType(pc, typ)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PCFactorSetUpMatSolverType-Tuple{Any}","page":"Advanced API","title":"PetscCall.PCFactorSetUpMatSolverType","text":"PetscCall.PCFactorSetUpMatSolverType(pc)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PCSetType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.PCSetType","text":"PetscCall.PCSetType(pc, typ)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PCView-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.PCView","text":"PetscCall.PCView(pc, viewer)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PETSC_VIEWER_DRAW_-Tuple{Any}","page":"Advanced API","title":"PetscCall.PETSC_VIEWER_DRAW_","text":"PetscCall.PETSC_VIEWER_DRAW_(comm)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PETSC_VIEWER_STDOUT_-Tuple{Any}","page":"Advanced API","title":"PetscCall.PETSC_VIEWER_STDOUT_","text":"PetscCall.PETSC_VIEWER_STDOUT_(comm)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscDataTypeFromString-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.PetscDataTypeFromString","text":"PetscDataTypeFromString(name,ptype,found)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscDataTypeGetSize-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.PetscDataTypeGetSize","text":"PetscDataTypeGetSize(ptype,size)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscFinalize-Tuple{}","page":"Advanced API","title":"PetscCall.PetscFinalize","text":"PetscCall.PetscFinalize()\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscFinalized-Tuple{Any}","page":"Advanced API","title":"PetscCall.PetscFinalized","text":"PetscCall.PetscFinalized(flag)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscInitializeNoArguments-Tuple{}","page":"Advanced API","title":"PetscCall.PetscInitializeNoArguments","text":"PetscCall.PetscInitializeNoArguments()\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscInitializeNoPointers-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.PetscInitializeNoPointers","text":"PetscCall.PetscInitializeNoPointers(argc, args, filename, help)\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscInitialized-Tuple{Any}","page":"Advanced API","title":"PetscCall.PetscInitialized","text":"PetscCall.PetscInitialized(flag)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscObjectRegisterDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.PetscObjectRegisterDestroy","text":"PetscCall.PetscObjectRegisterDestroy(obj)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.PetscObjectRegisterDestroyAll-Tuple{}","page":"Advanced API","title":"PetscCall.PetscObjectRegisterDestroyAll","text":"PetscCall.PetscObjectRegisterDestroyAll()\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESCreate-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESCreate","text":"PetscCall.SNESCreate(comm, snes)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.SNESDestroy","text":"PetscCall.SNESDestroy(snes)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESGetIterationNumber-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESGetIterationNumber","text":"PetscCall.SNESGetIterationNumber(snes, iter)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESGetKSP-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESGetKSP","text":"PetscCall.SNESGetKSP(snes, ksp)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESGetLinearSolveFailures-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESGetLinearSolveFailures","text":"PetscCall.SNESGetLinearSolveFailures(snes, nfails)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESGetLinearSolveIterations-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESGetLinearSolveIterations","text":"PetscCall.SNESGetLinearSolveIterations(snes, iter)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESGetNumberFunctionEvals-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESGetNumberFunctionEvals","text":"PetscCall.SNESGetNumberFunctionEvals(snes, nfuncs)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSetCountersReset-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESSetCountersReset","text":"PetscCall.SNESSetCountersReset(snes, reset)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSetFromOptions-Tuple{Any}","page":"Advanced API","title":"PetscCall.SNESSetFromOptions","text":"PetscCall.SNESSetFromOptions(snes)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSetFunction-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.SNESSetFunction","text":"PetscCall.SNESSetFunction(snes, vec, fptr, ctx)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSetJacobian-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.SNESSetJacobian","text":"PetscCall.SNESSetJacobian(snes, A, P, jacptr, ctx)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSetType-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESSetType","text":"PetscCall.SNESSetType(snes, type)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESSolve-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.SNESSolve","text":"PetscCall.SNESSolve(snes, b, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.SNESView-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.SNESView","text":"PetscCall.SNESView(snes, viewer)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecAXPBY-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.VecAXPBY","text":"PetscCall.VecAXPBY(y, alpha, beta, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecAXPY-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.VecAXPY","text":"PetscCall.VecAXPY(y, alpha, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecAYPX-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.VecAYPX","text":"PetscCall.VecAYPX(y, beta, x)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecAssemblyBegin-Tuple{Any}","page":"Advanced API","title":"PetscCall.VecAssemblyBegin","text":"PetscCall.VecAssemblyBegin(vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecAssemblyEnd-Tuple{Any}","page":"Advanced API","title":"PetscCall.VecAssemblyEnd","text":"PetscCall.VecAssemblyEnd(vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCopy-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecCopy","text":"PetscCall.VecCopy(x, y)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateGhost-NTuple{6, Any}","page":"Advanced API","title":"PetscCall.VecCreateGhost","text":"PetscCall.VecCreateGhost(comm, n, N, nghost, ghosts, vv)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateGhostWithArray-NTuple{7, Any}","page":"Advanced API","title":"PetscCall.VecCreateGhostWithArray","text":"PetscCall.VecCreateGhostWithArray(comm, n, N, nghost, ghosts, array, vv)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateMPI-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.VecCreateMPI","text":"PetscCall.VecCreateMPI(comm, n, N, v)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateMPIWithArray-NTuple{6, Any}","page":"Advanced API","title":"PetscCall.VecCreateMPIWithArray","text":"PetscCall.VecCreateMPIWithArray(comm, bs, n, N, array, vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateSeq-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.VecCreateSeq","text":"PetscCall.VecCreateSeq(comm, n, vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecCreateSeqWithArray-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.VecCreateSeqWithArray","text":"PetscCall.VecCreateSeqWithArray(comm, bs, n, array, vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecDestroy-Tuple{Any}","page":"Advanced API","title":"PetscCall.VecDestroy","text":"PetscCall.VecDestroy(vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecDuplicate-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecDuplicate","text":"PetscCall.VecDuplicate(v, newv)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetArray-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGetArray","text":"PetscCall.VecGetArray(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetArrayRead-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGetArrayRead","text":"PetscCall.VecGetArrayRead(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetArrayWrite-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGetArrayWrite","text":"PetscCall.VecGetArrayWrite(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetLocalSize-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGetLocalSize","text":"PetscCall.VecGetLocalSize(vec, n)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetSize-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGetSize","text":"PetscCall.VecGetSize(vec, n)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGetValues-NTuple{4, Any}","page":"Advanced API","title":"PetscCall.VecGetValues","text":"PetscCall.VecGetValues(x, ni, ix, y)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGhostGetLocalForm-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGhostGetLocalForm","text":"PetscCall.VecGhostGetLocalForm(g, l)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecGhostRestoreLocalForm-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecGhostRestoreLocalForm","text":"PetscCall.VecGhostRestoreLocalForm(g, l)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecNorm-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.VecNorm","text":"PetscCall.VecNorm(x, typ, val)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecPlaceArray-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecPlaceArray","text":"PetscCall.VecPlaceArray(vec, array)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecResetArray-Tuple{Any}","page":"Advanced API","title":"PetscCall.VecResetArray","text":"PetscCall.VecResetArray(vec)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecRestoreArray-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecRestoreArray","text":"PetscCall.VecRestoreArray(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecRestoreArrayRead-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecRestoreArrayRead","text":"PetscCall.VecRestoreArrayRead(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecRestoreArrayWrite-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecRestoreArrayWrite","text":"PetscCall.VecRestoreArrayWrite(x, a)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecScale-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecScale","text":"PetscCall.VecScale(x, alpha)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecSet-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecSet","text":"PetscCall.VecSet(x, alpha)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecSetOption-Tuple{Any, Any, Any}","page":"Advanced API","title":"PetscCall.VecSetOption","text":"PetscCall.VecSetOption(x, op, flg)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecSetValues-NTuple{5, Any}","page":"Advanced API","title":"PetscCall.VecSetValues","text":"PetscCall.VecSetValues(x, ni, ix, y, iora)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecView-Tuple{Any, Any}","page":"Advanced API","title":"PetscCall.VecView","text":"PetscCall.VecView(vec, viewer)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.VecZeroEntries-Tuple{Any}","page":"Advanced API","title":"PetscCall.VecZeroEntries","text":"PetscCall.VecZeroEntries(v)\n\nSee PETSc manual.\n\n\n\n\n\n","category":"method"},{"location":"advanced/#PetscCall.@PETSC_VIEWER_DRAW_SELF-Tuple{}","page":"Advanced API","title":"PetscCall.@PETSC_VIEWER_DRAW_SELF","text":"@PETSC_VIEWER_DRAW_SELF\n\nSee PETSc manual.\n\n\n\n\n\n","category":"macro"},{"location":"advanced/#PetscCall.@PETSC_VIEWER_DRAW_WORLD-Tuple{}","page":"Advanced API","title":"PetscCall.@PETSC_VIEWER_DRAW_WORLD","text":"@PETSC_VIEWER_DRAW_WORLD\n\nSee PETSc manual.\n\n\n\n\n\n","category":"macro"},{"location":"advanced/#PetscCall.@PETSC_VIEWER_STDOUT_SELF-Tuple{}","page":"Advanced API","title":"PetscCall.@PETSC_VIEWER_STDOUT_SELF","text":"@PETSC_VIEWER_STDOUT_SELF\n\nSee PETSc manual.\n\n\n\n\n\n","category":"macro"},{"location":"advanced/#PetscCall.@PETSC_VIEWER_STDOUT_WORLD-Tuple{}","page":"Advanced API","title":"PetscCall.@PETSC_VIEWER_STDOUT_WORLD","text":"@PETSC_VIEWER_STDOUT_WORLD\n\nSee PETSc manual.\n\n\n\n\n\n","category":"macro"},{"location":"advanced/#PetscCall.@check_error_code-Tuple{Any}","page":"Advanced API","title":"PetscCall.@check_error_code","text":"@check_error_code expr\n\nCheck if expr returns an error code equal to zero(PetscErrorCode). If not, throw an instance of PetscError.\n\n\n\n\n\n","category":"macro"},{"location":"reference/#Reference","page":"Reference","title":"Reference","text":"","category":"section"},{"location":"reference/#Configuration","page":"Reference","title":"Configuration","text":"","category":"section"},{"location":"reference/","page":"Reference","title":"Reference","text":"Modules = [PetscCall]\nPages = [\"preferences_tail.jl\"]","category":"page"},{"location":"reference/#PetscCall.use_petsc_jll-Tuple{}","page":"Reference","title":"PetscCall.use_petsc_jll","text":"PetscCall.use_petsc_jll(;kwargs...)\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#PetscCall.use_system_petsc-Tuple{}","page":"Reference","title":"PetscCall.use_system_petsc","text":"PetscCall.use_system_petsc(;kwargs...)\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#Environment","page":"Reference","title":"Environment","text":"","category":"section"},{"location":"reference/","page":"Reference","title":"Reference","text":"Modules = [PetscCall]\nPages = [\"environment.jl\"]","category":"page"},{"location":"reference/#PetscCall.finalize-Tuple{}","page":"Reference","title":"PetscCall.finalize","text":"PetscCall.finalize()\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#PetscCall.init-Tuple{}","page":"Reference","title":"PetscCall.init","text":"PetscCall.init(:kwargs...)\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#PetscCall.initialized-Tuple{}","page":"Reference","title":"PetscCall.initialized","text":"PetscCall.initialized()\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#PetscCall.with-Tuple{Any}","page":"Reference","title":"PetscCall.with","text":"PetscCall.with(f;kwargs...)\n\nDocument me!\n\n\n\n\n\n","category":"method"},{"location":"reference/#Linear-solvers-(KSP)","page":"Reference","title":"Linear solvers (KSP)","text":"","category":"section"},{"location":"reference/","page":"Reference","title":"Reference","text":"Modules = [PetscCall]\nPages = [\"ksp.jl\"]","category":"page"},{"location":"reference/#PetscCall.ksp_finalize!","page":"Reference","title":"PetscCall.ksp_finalize!","text":"PetscCall.ksp_finalize!(setup)\n\nDocument me!\n\n\n\n\n\n","category":"function"},{"location":"reference/#PetscCall.ksp_setup","page":"Reference","title":"PetscCall.ksp_setup","text":"PetscCall.ksp_setup(x,A,b;kwargs...)\n\nDocument me!\n\n\n\n\n\n","category":"function"},{"location":"reference/#PetscCall.ksp_setup!","page":"Reference","title":"PetscCall.ksp_setup!","text":"PetscCall.ksp_setup!(setup,A)\n\nDocument me!\n\n\n\n\n\n","category":"function"},{"location":"reference/#PetscCall.ksp_solve!","page":"Reference","title":"PetscCall.ksp_solve!","text":"PetscCall.ksp_solve!(x,setup,b)\n\nDocument me!\n\n\n\n\n\n","category":"function"},{"location":"reference/#Nonlinear-solvers-(SNES)","page":"Reference","title":"Nonlinear solvers (SNES)","text":"","category":"section"},{"location":"reference/","page":"Reference","title":"Reference","text":"Work in progress (help wanted).","category":"page"},{"location":"","page":"Home","title":"Home","text":"CurrentModule = PetscCall","category":"page"},{"location":"#PetscCall","page":"Home","title":"PetscCall","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Documentation for PetscCall.","category":"page"},{"location":"#What","page":"Home","title":"What","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The goal of this package is to provide a high-level Julia interface to solvers from the PETSc library. At this moment it wraps linear solvers from the KSP module in PETSc, but the goal is to also provide nonlinear solvers from the SNES module in PETSc. The package also provides a low-level interface with functions that are almost 1-to-1 to the corresponding C functions for advanced users. The low level API is mostly taken from GridapPETSc.jl.","category":"page"},{"location":"#Features","page":"Home","title":"Features","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Configuration of PETSc installation using Preferences.jl.\nHigh-level wrapper of KSP solvers.\nSupport for sequential runs.\nSupport for parallel parallel runs with PartitionedArrays.jl.\nCommonly used low-level API for KSP solvers.","category":"page"},{"location":"config/#Configuration","page":"Configuration","title":"Configuration","text":"","category":"section"},{"location":"config/","page":"Configuration","title":"Configuration","text":"This packages uses Preferences.jl for its configuration.","category":"page"},{"location":"config/#Use-jll-binary","page":"Configuration","title":"Use jll binary","text":"","category":"section"},{"location":"config/","page":"Configuration","title":"Configuration","text":"To use the petsc installation provided by BinaryBuilder.jl run these commands:","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"using PetscCall\nPetscCall.use_petsc_jll()\n# Restart Julia now","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"You can also specify the integer and scalar types to use:","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"using PetscCall\nPetscCall.use_petsc_jll(PetscInt=Int32,PetscScalar=Float32)\n# Restart Julia now","category":"page"},{"location":"config/#Use-a-system-binary","page":"Configuration","title":"Use a system binary","text":"","category":"section"},{"location":"config/","page":"Configuration","title":"Configuration","text":"To use PETSc installed in your system:","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"using PetscCall\nPetscCall.use_system_petsc()\n# Restart Julia now","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"This will look in LD_LIBRARY_PATH for a file called libpetsc.so.","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"You can also provide the full path to libpetsc.so.","category":"page"},{"location":"config/","page":"Configuration","title":"Configuration","text":"using PetscCall\nPetscCall.use_system_petsc(;libpetsc_path=path/to/libpetsc.so)\n# Restart Julia now","category":"page"}] } diff --git a/dev/usage/index.html b/dev/usage/index.html index c8aaa4d..83f3d06 100644 --- a/dev/usage/index.html +++ b/dev/usage/index.html @@ -106,4 +106,4 @@ using MPI; MPI.Init() include("demo.jl") with_mpi(ksp_tests)

You can launch driver.jl with MPI.

using MPI
-mpiexec(cmd->run(`$cmd -np 3 julia --project=. driver.jl`))
+mpiexec(cmd->run(`$cmd -np 3 julia --project=. driver.jl`))