\item Variability in the problem description should be expressible in
the DSL, making it practical to use a DSL based code generator across
-multple problems.
+multiple problems.
\item Variability in the implementation can be explored via alternative
strategies for code generation implemented inside a DSL compiler.
\frame{
-\frametitle{Input variability in UFL (Unified Form Language)}
+\frametitle{Case Study: Unified Form Language}
\begin{itemize}
\frame{
-\frametitle{Implementation variablity in FFC}
+\frametitle{Input variability in the Unified Form Language}
+
+\begin{itemize}
+
+\item UFL can be used to describe problems defined by PDEs once re-written into
+ a weak variational form. For example:
+ \begin{itemize}
+ \item Heat propagation
+ \item Shallow water equations
+ \item Navier Stokes
+ \end{itemize}
+
+\item UFL permits significant parameterisation of the specified problems:
+ \begin{itemize}
+ \item Dimensionality e.g. 2D or 3D.
+ \item Basis function family e.g. Lagrange, Raviart-Thomas.
+ \item Polynomial order of basis functions.
+ \end{itemize}
+
+\end{itemize}
+
+The ability to automatically apply the same analyses and optimisations over any
+problem specified in the DSL provides significant advantages in development.
+
+}
+
+\frame{
+
+\frametitle{Implementation variability in the FEniCS Form Compiler}
+
+\begin{itemize}
+
+ \item The FEniCS Form Compiler (FFC) takes discretised PDEs written in UFL
+ and generates C++ to evaluate them on an arbitrary mesh cell.
+
+ \item FFC has permitted the exploration of alternative implementation
+ strategies for evaluating local assembly integrals:
+
+ \begin{description}
+
+ \item[Quadrature] Takes a weighted sum of the function over the region
+ being integrated over.
+
+ \item[Tensor Contraction] Re-writes as a contraction between
+ geometry-dependent and independent tensors.
+
+ \end{description}
+
+ \item Further extensions to the tensor contraction technique have explored
+ optimisations that would be impossible to achieve in any hand-written
+ implementation.
+\end{itemize}
+
+In this case, the usage of a DSL permits exploration of the domain of
+variability in the implementation through otherwise inaccessible techniques.
}
+\frame{
+
+\frametitle{The Domain of Variability in ONETEP}
+\centering
+\scalebox{15.0}{
+$\emptyset$
+}
+
+}
\end{document}