=============== PETSc |version| =============== PETSc, the Portable, Extensible Toolkit for Scientific Computation, pronounced PET-see (`/ˈpɛt-siː/ `__), is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. 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. PETSc (sometimes called PETSc/TAO) also contains the TAO, the Toolkit for Advanced Optimization, software library. PETSc is developed as :ref:`open-source `, requests and contributions are welcome. News ==== .. admonition:: News: New Book on 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 `__ .. admonition:: News: New paper on PETSc community `The Community is the Infrastructure `__ .. admonition:: News: Paper on PETSc communication System `The PetscSF Scalable Communication Layer `__ .. admonition:: News: Paper on PETSc usage with GPUs `Toward Performance-Portable PETSc for GPU-based Exascale Systems `__ Main Topics =========== .. toctree:: :maxdepth: 1 Overview Download Installation FAQ Documentation Tutorials Community Developers Misc. 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 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: @techreport{ZhangConstantinescuSmith2019 :end-at: year :append: }