  A numerical framework is developed to solve various types of PDEs on
complicated domains, including steady and time-dependent, non-linear and
non-local PDEs, with different boundary conditions that can also include
non-linear and non-local terms. This numerical framework, called MultiShape, is
a class in Matlab, and the software is open source. We demonstrate that
MultiShape is compatible with other numerical methods, such as
differential--algebraic equation solvers and optimization algorithms. The
numerical implementation is designed to be user-friendly, with most of the
set-up and computations done automatically by MultiShape and with intuitive
operator definition, notation, and user-interface. Validation tests are
presented, before we introduce three examples motivated by applications in
Dynamic Density Functional Theory and PDE-constrained optimization,
illustrating the versatility of the method.
