=============== PETSc |version| =============== PETSc, the Portable, Extensible Toolkit for Scientific Computation, pronounced PET-see (`/ˈpɛt-siː/ `__), is for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It has bindings for C, Fortran, and Python (via :any:`petsc4py`). PETSc also contains TAO, the Toolkit for Advanced Optimization, software library. It supports MPI, and GPUs through CUDA, HIP or OpenCL, as well as hybrid MPI-GPU parallelism; it also supports the NEC-SX Tsubasa Vector Engine. Immediately jump in and run PETSc code :any:`handson`. PETSc is developed as :ref:`open-source `, requests and contributions are welcome. News ==== .. admonition:: News: PETSc is now associated with `NumFOCUS `__, a 501(c)(3) nonprofit supporting open code and reproducible science, through which you can help support PETSc. .. image:: /images/community/numfocus.png :align: center .. admonition:: News: PETSc 2024 Annual Meeting The :any:`PETSc 2024 Annual Meeting ` will take place May 23, 24 in Cologne, Germany .. admonition:: News: Book on numerical methods using PETSc **PETSc for Partial Differential Equations: Numerical Solutions in C and Python**, by Ed Bueler, is available. - `Book from SIAM Press `__ - `Google Play E-book `__ Main Topics =========== .. toctree:: :maxdepth: 1 overview/index install/index tutorials/index manual/index manualpages/index petsc4py/petsc4py faq/index community/index developers/index miscellaneous/index * `PETSc/TAO Users Manual in PDF `__ .. _doc_toolkits_use_petsc: Toolkits/libraries that use PETSc ================================= - `ADflow `__ An Open-Source Computational Fluid Dynamics Solver for Aerodynamic and Multidisciplinary Optimization - `BOUT++ `__ Plasma simulation in curvilinear coordinate systems - `Chaste `__ Cancer, Heart and Soft Tissue Environment - `code_aster `__ open source general purpose finite element code for solid and structural mechanics - `COOLFluiD `__ CFD, plasma and multi-physics simulation package - `DAFoam `__ Discrete adjoint solvers with `OpenFOAM `__ for aerodynamic optimization - `DEAL.II `__ C++ based finite element simulation package - `DUNE-FEM `__ Python and C++ based finite element simulation package - `FEniCS `__ Python based finite element simulation package - `Firedrake `__ Python based finite element simulation package - `Fluidity `__ a finite element/volume fluids code - `FreeFEM `__ finite element PDE solver with embedded domain specific language - `hIPPYlib `__ FEniCS based toolkit for solving large-scale deterministic and Bayesian inverse problems governed by partial differential equations - `libMesh `__ adaptive finite element library - `MFEM `__ lightweight, scalable C++ library for finite element methods - `MLSVM `__, Multilevel Support Vector Machines with PETSc. - `MoFEM `__, An open source, parallel finite element library - `MOOSE - Multiphysics Object-Oriented Simulation Environment `__ finite element framework, built on top of libMesh and PETSc - `OOFEM `__ object oriented finite element library - `OpenCarp `__ Cardiac Electrophysiology Simulator - `OpenFOAM `__ Available as an extension for linear solvers for OpenFOAM - `OpenFVM `__ finite volume based CFD solver - `PermonSVM `__ support vector machines and `PermonQP `__ quadratic programming - `PetIGA `__ A framework for high performance Isogeometric Analysis - `PHAML `__ The Parallel Hierarchical Adaptive MultiLevel Project - `preCICE `__ - A fully parallel coupling library for partitioned multi-physics simulations - `PyClaw `__ A massively parallel, high order accurate, hyperbolic PDE solver - `SLEPc `__ Scalable Library for Eigenvalue Problems .. _doc_index_citing_petsc: Citing PETSc ============ You can run any PETSc program with the option ``-citations`` to print appropriate citations for the algorithms you are using within PETSc. For general citations on PETSc please use the following: .. literalinclude:: /petsc.bib :language: none :start-at: @misc{petsc-web-page :end-at: year :append: } .. literalinclude:: /petsc.bib :language: none :start-at: @techreport{petsc-user-ref :end-at: year :append: } .. literalinclude:: /petsc.bib :language: none :start-at: @inproceedings{petsc-efficient :end-at: year :append: } For petsc4py usage please cite .. literalinclude:: /petsc.bib :language: none :start-at: @article{DalcinPazKlerCosimo2011 :end-at: year :append: } For PETSc usage on GPUs please cite .. literalinclude:: /petsc.bib :language: none :start-at: @article{MILLS2021 :end-at: author :append: } For PetscSF -- parallel communication in PETSc -- please cite .. literalinclude:: /petsc.bib :language: none :start-at: @article{PetscSF2022 :end-at: pages :append: } If you use the TS component of PETSc please cite the following: .. literalinclude:: petsc.bib :language: none :start-at: @techreport{AbhyankarEtAl2018 :end-at: year :append: } If you utilize the TS adjoint solver please cite .. literalinclude:: /petsc.bib :language: none :start-at: @article{Zhang2022tsadjoint :end-at: year :append: }