.. _overview: Tl;dr ===== **Struphy provides easy access to partial differential equations (PDEs) in plasma physics. The package combines** *performance* **(for HPC),** *flexibility* **(models and physics features) and** *usability* **(Python).** **Performance** in Struphy is achieved from three building blocks: * `numpy `_ (vectorization) * `mpi4py `_ (parallelization) * `pyccel `_ (compilation) Heavy compute kernels are transpiled using the Python accelerator `pyccel `_. You will thus enjoy the speed of Fortran or C while working in the familiar Python environment. **Flexibility** comes through the possibility of applying different :ref:`models` to a plasma physics problem. Each model can be run on different :ref:`avail_mappings` and can load a variety of :ref:`equils`, as well as other relevant physial inputs (such as initial conditions). **Usability** is guaranteed by Python. Struphy code can be handled in the familiar object-oriented way of Python. Struphy is modular and allows you to add your own model, benefitting from the abstraction provided by the Struphy classes. Check out :ref:`add_model` to learn more. At present, abstractions for the following numerical methods are available: * **Finite Element Exterior Calculus (FEEC)**, through `Psydac `_ * **Particle-In-Cell (PIC)** * **Smoothed-Particle Hydrodynamics (SPH)** See :ref:`gempic` for more details on the numerical methods. If you are passionate about some of the above topics, `get in touch `_!