=============== 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 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/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 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 - `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 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: 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: }