=============== 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 (PDEs). It has bindings for C, Fortran, and Python (via petsc4py). PETSc also contains TAO, the Toolkit for Advanced Optimization, software library. It supports MPI, and GPUs through CUDA, HIP, Kokkos, 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 `, :any:`requests ` and :any:`contributions ` are welcome. .. admonition:: News: PETSc is 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:`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. - `Book from SIAM Press `__ - `Google Play E-book `__ Main Topics =========== .. toctree:: :maxdepth: 1 overview/index install/index tutorials/index manual/index manualpages/index petsc4py/index 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 deterministic and Bayesian inverse problems governed by PDEs - `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 `libMesh `__. - `OOFEM `__ object-oriented finite element library - `OpenCarp `__ Cardiac electrophysiology simulator - `OpenFOAM `__ Available as an extension for linear solvers for OpenFOAM - `OpenFPM `__ framework for particles and mesh simulation - `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 PETSc programs with the option ``-citations`` to print appropriate citations for the software and algorithms being used in that program. For general citations on PETSc please use the following: .. literalinclude:: /petsc.bib :language: none :start-at: petsc-web-page :end-at: year :append: } .. literalinclude:: /petsc.bib :language: none :start-at: petsc-user-ref :end-at: year :append: } .. literalinclude:: /petsc.bib :language: none :start-at: petsc-efficient :end-at: year :append: } For petsc4py usage please cite .. literalinclude:: /petsc.bib :language: none :start-at: dalcinpazklercosimo2011 :end-at: year :append: } For PETSc usage on GPUs please cite .. literalinclude:: /petsc.bib :language: none :start-at: mills2021 :end-at: author :append: } For ``PetscSF`` -- parallel communication in PETSc -- please cite .. literalinclude:: /petsc.bib :language: none :start-at: petscsf2022 :end-at: pages :append: } If you use the ``TS`` component of PETSc please cite the following: .. literalinclude:: petsc.bib :language: none :start-at: abhyankaretal2018 :end-at: year :append: } If you utilize the ``TS`` adjoint solver please cite .. literalinclude:: /petsc.bib :language: none :start-at: zhang2022tsadjoint :end-at: year :append: }