% I have provided the source and required media for this presentation
% under the hope that it will be useful. Please don't use it for
% anything nefarious.

% Also, note that this LaTeX file requires the beamer class to
% compile. If you don't already have it, you are expected to obtain
% and install it from http://latex-beamer.sourceforge.net/

% (c) 2010 -- Harish Narayanan

\documentclass[ignorenonframetext,ps2pdf]{beamer}

\usepackage{graphicx}
\usepackage{amsfonts}
\usepackage{psfrag}
\usepackage{amssymb}
\usepackage{fancyvrb}
\usepackage{color}
\usepackage{multimedia}
\usepackage[english]{babel}
\usepackage[latin1]{inputenc}
\usepackage{chemarr}
\usepackage{cancel}
\usepackage{textcomp}
\input{boldsymbols}
\input{pygments}

\definecolor{Lighter}{rgb}{0.66,0.66,0.66}
\definecolor{SimulaOrange}{rgb}{1.0,0.46,0.10}

% All sorts of things pertinent to styling beamer
\usetheme{boxes}
\setbeamertemplate{navigation symbols}{}
\usecolortheme{seagull}
\usefonttheme{professionalfonts}
\useinnertheme{circles}
\setbeamercolor{frametitle}{fg=SimulaOrange}

\mode<presentation> {
  \setbeamercovered{transparent}
}

\title{\textcolor{SimulaOrange}{An automated computational framework
    for nonlinear elasticity}}
\author{H.~Narayanan}
\subject{Describing cbc.twist at ECCM10}
\institute[SRL]{Center for Biomedical Computing\\
  Simula Research Lab}
\date[May 2010]{May~$\textsf{20}^{\textsf{th}}$, 2010}

\begin{document}

% Title slide with representative result
\begin{frame}
  \frametitle{\textcolor[named]{SimulaOrange}{An automated
      computational framework for hyperelasticity}}
  \begin{columns}
    \begin{column}{4.5cm}
      \centering
      \small
      Harish~Narayanan\\
      \scriptsize
      \vspace{0.4cm}
      Center for Biomedical Computing\\
      Simula Research Laboratory\\
      \vspace{1.0cm}
      May~$\textsf{20}^{\textsf{th}}$, 2010\\
      \normalsize
    \end{column}
    \begin{column}{7.5cm}
      \begin{center}
        \setlength\fboxsep{0pt}
        \setlength\fboxrule{0.5pt}
        \fbox{\includegraphics[width=7.0cm]{twisted-block}}
      \end{center}
    \end{column}
  \end{columns}
\end{frame}

% Mapping slide containing visual outline
\begin{frame}
  \frametitle{This talk will examine the motivation, design and use of
    our general framework for hyperelasticity}
  \begin{columns}
    \begin{column}{4cm}
    \psfrag{A}{\tiny$\bX$\normalsize}
    \psfrag{F}{\tiny$\bx$\normalsize}
    \psfrag{B}{\tiny$\bB$\normalsize}
    \psfrag{G}{\tiny$\bb$\normalsize}
    \psfrag{E}{\tiny$\Bvarphi$\normalsize}
    \psfrag{C}{\tiny$\Omega_0$\normalsize}
    \psfrag{H}{\tiny$\Omega_t$\normalsize}
    \psfrag{D}{\tiny$\bP \bN$\normalsize}
    \psfrag{I}{\tiny$\Bsigma \bn$\normalsize}
    \includegraphics[width=4cm]{continuum-potato}
    \end{column}
    \begin{column}{7.0cm}
      A review of relevant topics from\\ continuum mechanics
    \end{column}
  \end{columns}
  \vspace{0.4cm}
  \begin{columns}
    \begin{column}{1.5cm}
      % Empty
    \end{column}
    \begin{column}{4cm}
      \includegraphics[width=4cm]{code-snippet}
    \end{column}
    \begin{column}{5.5cm}
      A brief look at numerical and computational aspects
    \end{column}
  \end{columns}
  \vspace{0.4cm}
  \begin{columns}
    \begin{column}{3.0cm}
      % Empty
    \end{column}
    \begin{column}{4cm}
      \includegraphics[width=4cm]{twisted-block}
    \end{column}
    \begin{column}{4.0cm}
      Examples demonstrating the use of the framework
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{Recall, from elementary continuum mechanics \ldots}
  \begin{figure}
    \centering
    \psfrag{A}{$\bX$}
    \psfrag{F}{$\bx$}
    \psfrag{B}{$\bB$}
    \psfrag{G}{$\bb$}
    \psfrag{E}{$\Bvarphi$}
    \psfrag{C}{$\Omega_0$}
    \psfrag{H}{$\Omega_t$}
    \psfrag{D}{$\bP \bN$}
    \psfrag{I}{$\Bsigma \bn$}
    \includegraphics[width=0.8\textwidth]{continuum-potato}
    \\{\scriptsize The body idealised as a continuous medium}
  \end{figure}

  {\bf Reference} and current configurations, body forces and tractions
\end{frame}

\begin{frame}
  \frametitle{\ldots that the motion of solid bodies can be described
    using different strain measures}
  \begin{itemize}
  \item Infinitesimal strain: $\Bepsilon = \frac{1}{2}
    \left(\mathrm{Grad}(\bu) + \mathrm{Grad}(\bu)^{\mathrm{T}}\right)$
  \item Deformation gradient: $\bF = \bone + \mathrm{Grad}(\bu)$
  \item Right Cauchy-Green: $\bC = \bF^{\mathrm{T}} \bF$
  \item Green-Lagrange: $\bE = \frac{1}{2} \left(\bC - \bone\right)$
  \item Left Cauchy-Green: $\bb = \bF \bF^{\mathrm{T}}$
  \item Euler-Almansi: $\be = \frac{1}{2} \left(\bone -
      \bb^{-1}\right)$
  \item Volumetric and isochoric splits: e.g. $J = \mathrm{Det}(\bF),
    \quad \bar{\bC} = J^{-\frac{2}{3}} \bC$
  \item Invariants of the tensors: $I_{1}$, $I_{2}$, $I_{3}$
  \item Principal stretches and directions: $\lambda_{1}$, $\lambda_{2}$,
    $\lambda_{3}; \quad \hat{\bN_{1}}, \hat{\bN_{2}}, \hat{\bN_{3}}$
\end{itemize}
\end{frame}

\begin{frame}
  \frametitle{And the UFL syntax for defining these measures is almost
    identical to the mathematical notation}
\vspace{0.2cm}
\begin{columns}
\begin{column}{5.5cm}
\tiny
\input{kinematics}
\normalsize
\end{column}
\begin{column}{5.5cm}
\tiny
\input{kinematics2}
\normalsize
\end{column}
\end{columns}
\end{frame}

\begin{frame}
  \frametitle{Stress responses of hyperelastic materials are specified
    using constitutive relationships involving strain energy
    functions}
  \begin{itemize}
    \item Strain energy functions: $\Psi(\bF), \Psi(\bC), \Psi(\bE),
      \ldots$
    \item First Piola Kirchhoff: $\bP = \frac{\partial
        \Psi(\bF)}{\partial \bF} = 2 \bF \frac{\partial
        \Psi(\bC)}{\partial \bC} = \ldots$
      \item Second Piola Kirchhoff: $\bS = 2 \frac{\partial
          \Psi(\bC)}{\partial \bC} = \frac{\partial
          \Psi(\bE)}{\partial \bE} = 2\left[\left(\frac{\partial
              \Psi}{\partial I_{1}} + I_{1} \frac{\partial
              \Psi}{\partial I_{2}} \right) \bone - \frac{\partial
              \Psi}{\partial I_{2}} \bC + I_{3} \frac{\partial
              \Psi}{\partial I_{3}} \bC^{-1} \right] = \sum_{a = 1}^{3}
          \frac{1}{\lambda_{a}} \frac{\partial \Psi}{\partial
            \lambda_{a}} \hat{\bN_{a}}\otimes\hat{\bN_{a}} = \ldots$
          \item e.g. $\Psi_{\mathrm{St. Venant-Kirchhoff}} =
            \frac{\lambda}{2}\mathrm{tr}(\bE)^{2} +
            \mu\mathrm{tr}(\bE^{2})$ \quad \quad \quad \quad \quad
            \phantom{e.g. }$\Psi_{\mathrm{Ogden}} = \sum_{p=1}^{N}
            \frac{\mu_{p}}{\alpha_{p}} \left(\lambda_{1}^{\alpha_{p}}
              + \lambda_{2}^{\alpha_{p}} + \lambda_{3}^{\alpha_{p}} -
              3 \right)$
            \phantom{e.g. }$\Psi_{\mathrm{Mooney-Rivlin}} = c_{1} (I_{1}
            - 3) + c_{2} (I_{2} - 3)$ \quad \quad \quad \quad \quad
            \phantom{e.g. }$\Psi_{\mathrm{Arruda-Boyce}} =$ \tiny $\mu
            \left[ \frac{1}{2} (I_{1} - 3) + \frac{1}{20 n}
              (I_{1}^{2} - 9) + \frac{11}{1050 n^{2}} (I_{1}^{3} - 27)
            + \ldots \right]$\normalsize \quad \quad \quad \quad \quad
          \phantom{e.g. }$\Psi_{\mathrm{Yeoh}}, \Psi_{\mathrm{Gent-Thomas}},
          \Psi_{\mathrm{neo-Hookean}}, \Psi_{\mathrm{Ishihara}},
          \Psi_{\mathrm{Blatz-Ko}}, \ldots$
  \end{itemize}
\end{frame}

\begin{frame}
  \frametitle{Again, the UFL syntax for defining different
    materials is almost identical to the mathematical
    notation}
\vspace{0.2cm}
\tiny
\input{st-venant-kirchhoff}
\vspace{0.2cm}
\input{mooney-rivlin}
\normalsize
\end{frame}

\begin{frame}
  \frametitle{Again, the UFL syntax for defining different
    materials is almost identical to the mathematical notation}
\vspace{0.2cm}
\tiny
\input{material-models}
\normalsize
\end{frame}

\begin{frame}
  \frametitle{The equations that need to be solved are the balance
    laws in the reference configuration}
  \begin{itemize}
  \item[\textcolor{Lighter}{$\circ$}] \textcolor{Lighter}{Balance of
      mass: $\frac{\partial \rho_{0}}{\partial t} = 0$}
  \item Balance of linear momentum: $\rho_{0} \frac{\partial^{2}
      \bu}{\partial t^{2}} = \mathrm{Div}(\bP) + \bB$
  \item[\textcolor{Lighter}{$\circ$}] \textcolor{Lighter}{Balance of
      angular momentum: $\bP \bF^{\mathrm{T}} = \bF \bP^{\mathrm{T}}$}
  \end{itemize}
\vspace{0.5cm}

The weak form thus reads: Find $\bu \in
\mathrm{V}$, such that $\forall\; \bv \in \hat{\mathrm{V}}$:
\begin{equation*}
  \int_{\Omega_{0}} \rho_{0} \frac{\partial^{2}
    \bu}{\partial t^{2}} \cdot \bv \dx\;
  + \int_{\Omega_{0}} \bP:\mathrm{Grad}(\bv) \dx\;
  = \int_{\Omega_{0}} \bB \cdot \bv \dx\;
  + \int_{\Gamma_{\mathrm{N}}} \bP\bN \cdot \bv \dx
\end{equation*}
with suitable initial conditions, and Dirichlet and Neumann boundary
conditions.
\end{frame}

\begin{frame}
  \frametitle{UFL's automatic differentiation capabilities allows for
    easy specification of such a problem}
\tiny
\input{simple}
\normalsize
\end{frame}

\begin{frame}
  \frametitle{UFL's automatic differentiation capabilities allows for
    easy specification of such a problem}
\small
\begin{itemize}
\item Spatial derivatives:\\
\texttt{df\_i = Dx(f, i)}
\item With respect to user-defined variables:\\
\texttt{g = variable(cos(cell.x[0]))}\\
\texttt{f = exp(g**2)}\\
\texttt{h = diff(f, g)}
\item Forms with respect to coefficients of a discrete function:\\
\texttt{a = derivative(L, w, u)}
\item Computing expressions and automatic differentiation:\\
for $i = 1, \ldots, m:$\\
\quad\quad $y_{i} = t_{i} = \mathrm{terminal\; expression}$\\
\quad\quad $\frac{dy_{i}}{dv} = \frac{dt_{i}}{dv} = \mathrm{terminal\;
  differentiation\; rule}$\\
for $i = m + 1, \ldots, n:$\\
\quad\quad $y_{i} = f_{i}(\textlangle y_{j}\textrangle_{j \in
  \mathcal{J}_{i}})$\\
\quad\quad $\frac{dy_{i}}{dv} = \sum_{k \in \mathcal{J}_i}\frac{\partial
f_{i}}{\partial y_{k}} \frac{d y_{k}}{dv}$\\
$z = y_{n}$\\
$\frac{dz}{dv} = \frac{dy_{n}}{dv}$
\end{itemize}
\normalsize
\end{frame}

\begin{frame}
  \frametitle{A simple static calculation involving a twisted block}
  \tiny
  \input{twist}
  \normalsize
\end{frame}

\begin{frame}
  \frametitle{A simple static calculation involving a twisted block}
  \begin{columns}
    \begin{column}{8cm}
      \begin{figure}
      \fbox{\includegraphics[width=7.0cm]{twisted-block}}
      \\{\scriptsize A solid block twisted by 60 degrees}
      \end{figure}
    \end{column}
    \begin{column}{4cm}
      \vspace{0.5cm}
      \begin{table}
        \centering
        \begin{tabular}{|c|c|}
          \hline Iteration & Res. Norm \\
          \hline
          1  &  2.397e+00\\
          2  &  6.306e-01\\
          3  &  1.495e-01\\
          4  &  4.122e-02\\
          5  &  4.587e-03\\
          6  &  8.198e-05\\
          7  &  4.081e-08\\
          8  &  1.579e-14\\
          \hline
        \end{tabular}
        \\[0.10cm]{\scriptsize Newton scheme convergence}
      \end{table}
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{The dynamic release of the twisted block}
  \tiny
  \input{release}
  \normalsize
\end{frame}

\begin{frame}
  \frametitle{The dynamic release of the twisted block}
  \begin{columns}
    \begin{column}{7cm}
      \begin{center}
        \movie[width=7cm,height=4.49cm,poster,loop]{}
        {release.avi}{}
        \\{\scriptsize The relaxation of the released block}
      \end{center}
    \end{column}
    \begin{column}{5cm}
  \begin{figure}
    \centering
    % TODO: Fix the quality of the following graphic
    \includegraphics[angle=270,width=5cm]{energy-conservation}
    \\{\scriptsize Conservation of energy}
  \end{figure}
    \end{column}
  \end{columns}
\end{frame}

\begin{frame}
  \frametitle{A silly hyperelastic fish being forced by a ``flow''}
  \tiny
  \input{fishy}
  \normalsize
\end{frame}

\begin{frame}
  \frametitle{A silly hyperelastic fish being forced by a ``flow''}
  \begin{center}
    \movie[width=10cm,height=6.68cm,poster,loop]{}
    {fishy.avi}{}
    \\{\scriptsize The tumbling of the hyperelastic fish!}
  \end{center}
\end{frame}

\begin{frame}
  \frametitle{Concluding remarks, and where you can obtain the code}
  \begin{itemize}
  \item We have a general framework for isotropic, dynamic
    hyperelasticity
  \item The following extensions are being worked on:
    \begin{itemize}
    \item Implementing other specific material models
      \item Allow for multiple materials and anisotropy
      \item Goal-oriented adaptivity
      \item Introducing coupling with other physics (including FSI)
    \end{itemize}
    \vspace{0.2cm}
  \item FEniCS Project: \texttt{http://fenics.org/}
  \item FEniCS Project Installer:
    \texttt{https://launchpad.net/dorsal/} \\
    \texttt{bzr get lp:dorsal}
  \item cbc.solve: \texttt{https://launchpad.net/cbc.solve/} \\
    \texttt{bzr get lp:cbc.solve}
  \end{itemize}
\end{frame}
  
\end{document}

% Local Variables:
% mode: latex
% mode: flyspell
% mode: auto-fill
% End: