Psydac is an open source library for isogeometric analysis (IGA), that is, a finite element method which uses the same basis functions of a CAD model (B-splines and NURBS).
It has been developed at the Max Planck Institute for Plasma Physics, with the goal of exploring advanced numerical methods for electromagnetism, magneto-hydro-dynamics, and plasma kinetics. It is completely written in Python, uses only open-source libraries, and can run large parallel simulations on high-performance computing facilities. It employs a domain specific language, automatic code generation, a transpiler, MPI communication, OpenMP multithreading, and parallel I/O. In this talk we explore the library architecture and its overall design philosophy, which can be applied to other domains.