Introduction ============ Welcome to **XMDS2** (codenamed `xpdeint`), which is an all-new version of **XMDS**. Prepare for fast, easily-extended simulations with minimal code error. The purpose of XMDS2 is to simplify the process of creating simulations that solve systems of initial-value partial and ordinary differential equations. Instead of going through the error-prone process of writing by hand thousands of lines of code, XMDS2 enables many problems to be described in a simple XML format. From this XML description XMDS2 writes a C++ simulation that solves the problem using fast algorithms. Anecdotally, the code generated by XMDS2 is as fast as, or faster than, code hand-written by an expert, but by using **XMDS2** the time taken to produce the simulation is significantly reduced. XMDS2 can be used to simulate almost any set of (coupled) (partial) (stochastic) differential equations in any number of dimensions. It can input and output data in a range of data formats, produce programs that can take command-line arguments, and produce parallelised code suitable for either modern computer architectures or distributed clusters. If this is your first time with XMDS, then an ideal place to start is the :ref:`QuickStartTutorial`, where we will show you how to write a basic simulation. :ref:`Installation` instructions should get you up and running and able to start playing with the large library of examples provided. The impatient will probably have good luck browsing the examples library included with the source, and the :ref:`WorkedExamples` in this documentation for something that looks like their intended simulation. If you are upgrading from **XMDS version 1.x**, then after following the installation instructions (:ref:`Installation`), you might want to have a quick read of the note for upgraders (:ref:`UpgradeFromXMDS1`). The syntax of the XML scripts has changed, but hopefully you will find the new scripts very intuitive. Detailed advice on input/output issues, and ways to code more complicated simulations can be found in :ref:`AdvancedTopics`. We will also write a reference at some point.