FEniCS is a collection of free software for automated, efficient solution of differential equations. It has an extensive list of features, including automated solution of variational problems, automated error control and adaptivity, a comprehensive library of finite elements, high performance linear algebra, and many more. It is organized as a collection of interoperable components, including the problem-solving environment DOLFIN, the form compiler FFC, the finite element tabulator FIAT, the just-in-time compiler Instant, the code generation interface UFC, the form language UFL, and a range of additional components.