Merge lp:~hnarayanan/fenics-book/proofreading into lp:fenics-book

Proposed by Harish Narayanan
Status: Merged
Merged at revision: 646
Proposed branch: lp:~hnarayanan/fenics-book/proofreading
Merge into: lp:fenics-book
Diff against target: 844 lines (+261/-256)
5 files modified
STATUS (+1/-1)
backmatter/authors.tex (+2/-0)
backmatter/fdl-1.3.tex (+16/-21)
chapters/lopes/chapter.tex (+68/-67)
chapters/narayanan/chapter.tex (+174/-167)
To merge this branch: bzr merge lp:~hnarayanan/fenics-book/proofreading
Reviewer Review Type Date Requested Status
Anders Logg Pending
Registry Administrators Pending
Review via email: mp+60776@code.launchpad.net
To post a comment you must log in.
639. By Harish Narayanan

merge

640. By Harish Narayanan

Some more fixes for [lopes]

641. By Harish Narayanan

Final fixes for [lopes]

642. By Harish Narayanan

Standardised backmatter a little bit and made it look more like the rest of the chapters

643. By Harish Narayanan

Updated STATUS

Revision history for this message
Anders Logg (logg) wrote :
Download full text (41.5 KiB)

Thanks!

--
Anders

On Mon, May 16, 2011 at 07:33:34AM -0000, Harish Narayanan wrote:
> You have been requested to review the proposed merge of lp:~hnarayanan/fenics-book/proofreading into lp:fenics-book.
>
> For more details, see:
> https://code.launchpad.net/~hnarayanan/fenics-book/proofreading/+merge/60776
>
>
>

> === modified file 'STATUS'
> --- STATUS 2011-05-13 08:16:02 +0000
> +++ STATUS 2011-05-13 10:11:49 +0000
> @@ -95,7 +95,7 @@
> Nuno D. Lopes <email address hidden> 6 [kirby-5], APPLIED
> Kent-Andre Mardal <email address hidden> 13, 14 [kirby-3], [kirby-2] SUBMITTED (AL will fix), SUBMITTED (RCK will fix)
> Mikael Mortensen <email address hidden> 32 [nikbakht]
> -Harish Narayanan <email address hidden> 8, 27 [oelgaard-2], [lopes] SUBMITTED, WAITING
> +Harish Narayanan <email address hidden> 8, 27 [oelgaard-2], [lopes] APPLIED, SUBMITTED
> Murtazo Nazarov <email address hidden> 21 [terrel]
> Mehdi Nikbakht <email address hidden> 36 [lezar] APPLIED
> Johannes Ring <email address hidden> 7, 33 [logg-3], [schroll] APPLIED, APPLIED
>
> === modified file 'backmatter/authors.tex'
> --- backmatter/authors.tex 2011-04-29 11:21:33 +0000
> +++ backmatter/authors.tex 2011-05-13 10:11:49 +0000
> @@ -1,5 +1,7 @@
> \chapter*{List of authors}
> \addcontentsline{toc}{chapter}{List of authors}
> +\addtocounter{chapter}{1}
> +\vspace{-1cm}
>
> \emph{The following authors have contributed to this book.}
>
>
> === modified file 'backmatter/fdl-1.3.tex'
> --- backmatter/fdl-1.3.tex 2011-05-10 18:26:12 +0000
> +++ backmatter/fdl-1.3.tex 2011-05-13 10:11:49 +0000
> @@ -1,25 +1,20 @@
> -\chapter*{\rlap{GNU Free Documentation License}}
> -\phantomsection % so hyperref creates bookmarks
> +\chapter*{GNU Free Documentation License}
> \addcontentsline{toc}{chapter}{GNU Free Documentation License}
> -%\label{label_fdl}
> -
> - \begin{center}
> -
> - Version 1.3, 3 November 2008
> -
> -
> - Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
> -
> - \bigskip
> -
> - <http://fsf.org/>
> -
> - \bigskip
> -\end{center}
> -
> - Everyone is permitted to copy and distribute verbatim copies
> - of this license document, but changing it is not allowed.
> -
> +\addtocounter{chapter}{1}
> +\vspace{-1cm}
> +
> +Version 1.3, 3 November 2008
> +
> +Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
> +
> +\bigskip
> +
> + <http://fsf.org/>
> +
> +\bigskip
> +
> +Everyone is permitted to copy and distribute verbatim copies of this
> +license document, but changing it is not allowed.
>
> \def\thesection{\arabic{section}.}
> \setcounter{section}{-1}
>
> === modified file 'chapters/lopes/chapter.tex'
> --- chapters/lopes/chapter.tex 2011-04-29 09:32:01 +0000
> +++ chapters/lopes/chapter.tex 2011-05-13 10:11:49 +0000
> @@ -3,41 +3,42 @@
> {Nuno D. Lopes, Pedro Jorge Silva Pereira and Lu{\'\i}s Trabucho}
> {lopes}
>
> -The main motivation of this work is the implementation of a
> -general finite element solver for ...

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'STATUS'
2--- STATUS 2011-05-13 08:16:02 +0000
3+++ STATUS 2011-05-13 10:11:49 +0000
4@@ -95,7 +95,7 @@
5 Nuno D. Lopes <ndl@ptmat.fc.ul.pt> 6 [kirby-5], APPLIED
6 Kent-Andre Mardal <kent-and@simula.no> 13, 14 [kirby-3], [kirby-2] SUBMITTED (AL will fix), SUBMITTED (RCK will fix)
7 Mikael Mortensen <Mikael.Mortensen@ffi.no> 32 [nikbakht]
8-Harish Narayanan <harish@simula.no> 8, 27 [oelgaard-2], [lopes] SUBMITTED, WAITING
9+Harish Narayanan <harish@simula.no> 8, 27 [oelgaard-2], [lopes] APPLIED, SUBMITTED
10 Murtazo Nazarov <murtazo@csc.kth.se> 21 [terrel]
11 Mehdi Nikbakht <m.nikbakht@tudelft.nl> 36 [lezar] APPLIED
12 Johannes Ring <johannr@simula.no> 7, 33 [logg-3], [schroll] APPLIED, APPLIED
13
14=== modified file 'backmatter/authors.tex'
15--- backmatter/authors.tex 2011-04-29 11:21:33 +0000
16+++ backmatter/authors.tex 2011-05-13 10:11:49 +0000
17@@ -1,5 +1,7 @@
18 \chapter*{List of authors}
19 \addcontentsline{toc}{chapter}{List of authors}
20+\addtocounter{chapter}{1}
21+\vspace{-1cm}
22
23 \emph{The following authors have contributed to this book.}
24
25
26=== modified file 'backmatter/fdl-1.3.tex'
27--- backmatter/fdl-1.3.tex 2011-05-10 18:26:12 +0000
28+++ backmatter/fdl-1.3.tex 2011-05-13 10:11:49 +0000
29@@ -1,25 +1,20 @@
30-\chapter*{\rlap{GNU Free Documentation License}}
31-\phantomsection % so hyperref creates bookmarks
32+\chapter*{GNU Free Documentation License}
33 \addcontentsline{toc}{chapter}{GNU Free Documentation License}
34-%\label{label_fdl}
35-
36- \begin{center}
37-
38- Version 1.3, 3 November 2008
39-
40-
41- Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
42-
43- \bigskip
44-
45- <http://fsf.org/>
46-
47- \bigskip
48-\end{center}
49-
50- Everyone is permitted to copy and distribute verbatim copies
51- of this license document, but changing it is not allowed.
52-
53+\addtocounter{chapter}{1}
54+\vspace{-1cm}
55+
56+Version 1.3, 3 November 2008
57+
58+Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
59+
60+\bigskip
61+
62+ <http://fsf.org/>
63+
64+\bigskip
65+
66+Everyone is permitted to copy and distribute verbatim copies of this
67+license document, but changing it is not allowed.
68
69 \def\thesection{\arabic{section}.}
70 \setcounter{section}{-1}
71
72=== modified file 'chapters/lopes/chapter.tex'
73--- chapters/lopes/chapter.tex 2011-04-29 09:32:01 +0000
74+++ chapters/lopes/chapter.tex 2011-05-13 10:11:49 +0000
75@@ -3,41 +3,42 @@
76 {Nuno D. Lopes, Pedro Jorge Silva Pereira and Lu{\'\i}s Trabucho}
77 {lopes}
78
79-The main motivation of this work is the implementation of a
80-general finite element solver for some of the improved Boussinesq
81-models\index{Boussinesq models}. Here, we use an extension of the model
82-proposed by~\citet{ZhaoTengCheng2004} to investigate the behavior
83-of surface water waves. The equations in this model do not contain
84-spatial derivatives with an order higher than 2. Some effects like
85-energy dissipation and wave generation by natural phenomena or external
86-physical mechanisms are also included. As a consequence, some modified
87-dispersion relations are derived for this extended model. A matrix-based
88-linear stability analysis of the proposed model is presented. It is
89-shown that this model is robust with respect to instabilities related
90-to steep bottom gradients.
91+The main motivation of this work is the implementation of a general
92+finite element solver for some of the improved Boussinesq
93+models\index{Boussinesq models}. Here, we use an extension of the
94+model proposed by~\citet{ZhaoTengCheng2004} to investigate the
95+behavior of surface water waves. The equations in this model do not
96+contain spatial derivatives with an order higher than 2. Some effects
97+like energy dissipation and wave generation by natural phenomena or
98+external physical mechanisms are also included. As a consequence,
99+some modified dispersion relations are derived for this extended
100+model. A matrix-based linear stability analysis of the proposed model
101+is presented. It is shown that this model is robust with respect to
102+instabilities related to steep bottom gradients.
103
104 \section{Overview}
105
106-The \fenics project, via \dolfin, \ufl and \ffc, provides good technical
107-and scientific support for the implementation of large scale industrial
108-models based on the finite element method. Specifically, all the finite
109-element matrices and vectors are automatically generated and assembled
110-by \dolfin\ and \ffc, directly from the variational formulation of the
111-problem which is declared using \ufl. Moreover, \dolfin\ provides a user
112-friendly interface for the libraries needed to solve the finite element
113-system of equations.
114+The \fenics project, via \dolfin, \ufl and \ffc, provides good
115+technical and scientific support for the implementation of large scale
116+industrial models based on the finite element method. Specifically,
117+all the finite element matrices and vectors are automatically
118+generated and assembled by \dolfin\ and \ffc, directly from the
119+variational formulation of the problem which is declared using
120+\ufl. Moreover, \dolfin\ provides a user friendly interface for the
121+libraries needed to solve the finite element system of equations.
122
123-Numerical implementation of Boussinesq equations goes back to
124-the works of \citet{Peregrine1967} and \citet{Wu1981}, and later
125-by the development of improved dispersion characteristics (see,
126-e.g., \citet{MadsenEtAl1991,Nwogu1993,ChenLiu1994} as well as
127+Numerical implementation of Boussinesq equations goes back to the
128+works of \citet{Peregrine1967} and \citet{Wu1981}, and later by the
129+development of improved dispersion characteristics (see, e.g.,
130+\citet{MadsenEtAl1991,Nwogu1993,ChenLiu1994} as well as
131 \citet{BejiNadaoka1996}).
132
133-We implement a solver for some of the Boussinesq type systems to model the
134-evolution of surface water waves\index{water waves} in a variable depth
135-seabed. This type of model is used, for instance, in harbor simulation
136-(see Figure~\ref{fig:lopes:harbor} for an example of a standard harbor),
137-tsunami generation and wave propagation as well as in coastal dynamics.
138+We implement a solver for some of the Boussinesq type systems to model
139+the evolution of surface water waves\index{water waves} in a variable
140+depth seabed. This type of model is used, for instance, in harbor
141+simulation (see Figure~\ref{fig:lopes:harbor} for an example of a
142+standard harbor), tsunami generation and wave propagation as well as
143+in coastal dynamics.
144
145 \begin{figure}
146 \begin{center}
147@@ -47,26 +48,28 @@
148 \label{fig:lopes:harbor}
149 \end{figure}
150
151-In Section~\ref{sec:lopes:dolfwave}, we begin by describing the DOLFWAVE
152-application which is a \fenics based application for the simulation of
153-surface water waves (see \url{http://ptmat.fc.ul.pt/~ndl/}).
154+In Section~\ref{sec:lopes:dolfwave}, we begin by describing the
155+DOLFWAVE application which is a \fenics based application for the
156+simulation of surface water waves (see
157+\url{http://ptmat.fc.ul.pt/~ndl/}).
158
159 \editornote{URL should be archival.}
160
161-The governing equations for surface water waves are presented
162-in Section~\ref{sec:lopes:modelderivation}. From these equations
163+The governing equations for surface water waves are presented in
164+Section~\ref{sec:lopes:modelderivation}. From these equations
165 different types of models can be derived. There are several Boussinesq
166 models and some of the most widely used are those based on the wave
167 surface Elevation and horizontal Velocities formulation (BEV) (see,
168 e.g., \citet{WalkleyBerzins2002}, \citet{WooLiu2004a} as well as
169 \citet{WooLiu2004b} for finite element discretizations of BEV models).
170 However, we only consider the wave surface Elevation and velocity
171-Potential (BEP) formulation (see, e.g., ~\citet{LangtangenPedersen1998}
172-for a finite element discretization of a BEP model). Thus, the number
173-of unknowns is reduced from five (the three velocity components, the
174-pressure and the wave surface elevation) in the BEV models to three (the
175-velocity potential, the pressure and the wave surface elevation) in the
176-BEP models. Two different types of BEP models are taken into account:
177+Potential (BEP) formulation (see, e.g.,
178+~\citet{LangtangenPedersen1998} for a finite element discretization of
179+a BEP model). Thus, the number of unknowns is reduced from five (the
180+three velocity components, the pressure and the wave surface
181+elevation) in the BEV models to three (the velocity potential, the
182+pressure and the wave surface elevation) in the BEP models. Two
183+different types of BEP models are taken into account:
184 %%
185 \begin{enumerate}
186 \item \label{lopes:i} a standard model containing sixth-order
187@@ -76,14 +79,14 @@
188 \end{enumerate}
189
190 A standard technique is used in order to derive the Boussinesq-type
191-model mentioned in~\ref{lopes:i}. In the subsequent sections, only the
192-ZTC-type model is considered. Note that these two models are
193+model mentioned in~\ref{lopes:i}. In the subsequent sections, only
194+the ZTC-type model is considered. Note that these two models are
195 complemented with some extra terms, due to the inclusion of effects
196 like energy dissipation and wave generation by moving an impermeable
197 bottom or using a source function.
198
199-An important characteristic of the extended ZTC
200-model, including dissipative effects, is presented in
201+An important characteristic of the extended ZTC model, including
202+dissipative effects, is presented in
203 Section~\ref{sec:lopes:dispersionproperties}, namely, the dispersion
204 relation.
205
206@@ -165,7 +168,6 @@
207 model, specifically C-grid is implemented for the spatial
208 discretization and a leap-frog scheme is used for the time stepping.
209
210-
211 \section{DOLFWAVE}
212 \label{sec:lopes:dolfwave}
213
214@@ -179,8 +181,8 @@
215 We have already implemented solvers for the following cases:
216 %%
217 \begin{enumerate}
218-\item \label{lopes:list_i} Shallow water wave models for unidirectional
219- long waves in one horizontal dimension;
220+\item \label{lopes:list_i} Shallow water wave models for
221+ unidirectional long waves in one horizontal dimension;
222 \item Boussinesq-type models for moderately long
223 waves with small amplitude in shallow water.
224 \end{enumerate}
225@@ -230,7 +232,7 @@
226 We use \ufl\ for the declaration of the finite element discretization
227 of the variational forms related to the models mentioned above (see
228 the \ufl\ form files in the following directories of the DOLFWAVE code
229-tree: \emp{dolfwave/src/1hd1sforms}, \emp{dolfwave/src/1hdforms} and
230+tree: \emp{dolfwave/src/1hd1sforms}, \emp{dolfwave/src/1hdforms} and\\
231 \emp{dolfwave/src/2hdforms}). These files are compiled using \ffc to
232 generate the C++ code of the finite element discretization of the
233 variational forms (see Chapter~\ref{chap:alnes-1}). DOLFWAVE is based
234@@ -242,12 +244,11 @@
235 the C++ code for boundary conditions and source functions are
236 included. Scripts for visualization and data analysis are also part of
237 the application. The Xd3d post-processor is used in some cases (see
238-\url{http://www.cmap.polytechnique.fr/~jouve/xd3d/}). DOLFWAVE
239-has a large number of demos covering all the implemented models (see
240+\url{http://www.cmap.polytechnique.fr/~jouve/xd3d/}). DOLFWAVE has a
241+large number of demos covering all the implemented models (see
242 \emp{dolfwave/demo}). Different physical effects are illustrated. All
243 the numerical examples in this work are included in the demos.
244
245-
246 \section{Model derivation}
247 \label{sec:lopes:modelderivation}
248
249@@ -387,7 +388,7 @@
250 dispersive terms. For simplicity, in what follows, we drop the prime
251 notation.
252
253-The Boussinesq approach consists in reducing a $3$D problem to a $2$D
254+The Boussinesq approach consists of reducing a $3$D problem to a $2$D
255 one. This may be accomplished by expanding the velocity potential in
256 a Taylor power series in terms of $z$. Using Laplace's equation, in a
257 dimensionless form, we can obtain the following expression for the
258@@ -419,19 +420,19 @@
259 and}\ \varepsilon<1.
260 \end{equation}
261 %%
262-Note that the Ursell number is defined by
263-$U_r = \varepsilon/\mu^2$ and plays a central role in deciding
264-the choice of approximations which correspond to very different
265-physics. The regime of weakly nonlinear, small amplitude and
266-moderately long waves in shallow water is characterized by
267-\eqref{eq:lopes:ursell} $\left(O(\mu^2)=O(\varepsilon)\right.$; that
268-is, $\left.\frac{H^2}{L^2}\sim\frac{A}{H} \right)$. Boussinesq
269-equations account for the effects of nonlinearity $\varepsilon$ and
270-dispersion $\mu^2$ to the leading order. When $\varepsilon\gg \mu^2$
271-, they reduce to the Airy equations. When $\varepsilon\ll \mu^2$ they
272-reduce to the linearized approximation with weak dispersion. Finally,
273-if we assume that $\varepsilon\rightarrow 0$ and $\mu^2\rightarrow 0$,
274-the classical linearized wave equation is obtained.
275+Note that the Ursell number is defined by $U_r = \varepsilon/\mu^2$
276+and plays a central role in deciding the choice of approximations
277+which correspond to very different physics. The regime of weakly
278+nonlinear, small amplitude and moderately long waves in shallow water
279+is characterized by \eqref{eq:lopes:ursell}
280+$\left(O(\mu^2)=O(\varepsilon)\right.$; that is,
281+$\left.\frac{H^2}{L^2}\sim\frac{A}{H} \right)$. Boussinesq equations
282+account for the effects of nonlinearity $\varepsilon$ and dispersion
283+$\mu^2$ to the leading order. When $\varepsilon\gg \mu^2$ , they
284+reduce to the Airy equations. When $\varepsilon\ll \mu^2$ they reduce
285+to the linearized approximation with weak dispersion. Finally, if we
286+assume that $\varepsilon\rightarrow 0$ and $\mu^2\rightarrow 0$, the
287+classical linearized wave equation is obtained.
288
289 A sixth-order spatial derivative model is obtained if $\phi_1$ is
290 expanded in terms of $\phi_0$ and all terms up to $O(\mu^8)$ are
291@@ -667,7 +668,7 @@
292 several models.}
293 \label{fig:lopes:dispersion}
294 \end{figure}
295-%%
296+
297 From Figure~\ref{fig:lopes:dispersion}, we can also see that
298 these two dissipative models admit critical wave numbers $k_1$ and
299 $k_2$, such that the positive part of $\displaystyle
300@@ -1074,7 +1075,7 @@
301 reference for comparison. For both models, full reflective boundary
302 conditions are considered.
303
304-We start by assuming a separated solution of the form
305+We start by assuming a separated solution of the form
306 %%
307 \begin{equation}
308 \label{eq:lopes:exp}
309
310=== modified file 'chapters/narayanan/chapter.tex'
311--- chapters/narayanan/chapter.tex 2011-05-03 21:59:00 +0000
312+++ chapters/narayanan/chapter.tex 2011-05-13 10:11:49 +0000
313@@ -29,8 +29,8 @@
314 mechanical response of many polymeric and biological materials. Such
315 materials are capable of undergoing finite deformation, and their
316 material response is often characterized by complex, nonlinear
317-constitutive relationships. (See, for example, \citep{Holzapfel2000}
318-and \citep{TruesdellNoll1965} and the references within for several
319+constitutive relationships. (See, for example, \citet{Holzapfel2000}
320+and \citet{TruesdellNoll1965} and the references within for several
321 examples.) Because of these difficulties, predicting the response of
322 arbitrary structures composed of such materials to arbitrary loads
323 requires numerical computation, usually based on the finite element
324@@ -91,13 +91,14 @@
325 are parametrized by reference positions. This is commonly termed the
326 {\em material} or {\em Lagrangian} description.
327
328-In its most basic terms, the {\em deformation} of the body over a time
329+In its most basic terms, the {\em deformation} of the body over time
330 $t \in [0, T]$ is a sufficiently smooth bijective map $\Bvarphi:
331 \overline{\Omega} \times [0,T] \rightarrow \mathbb{R}^{2, 3}$, where
332 $\overline{\Omega} :=\ \overline{\Omega\cup\partial\Omega}$ and
333 $\partial\Omega$ is the boundary of $\Omega$. The restrictions on the
334-map ensure that the motion it describes is physical (e.g., disallowing
335-the interpenetration of matter or the formation of cracks). From this,
336+map ensure that the motion it describes is physical and within the
337+range of applicability of the theory (e.g., disallowing the
338+interpenetration of matter or the formation of cracks). From this map,
339 we can construct the {\em displacement field},
340 %%
341 \begin{equation}
342@@ -159,16 +160,16 @@
343 \label{eq:narayanan:balance-of-momentum}
344 \end{equation}
345 %%
346-where $\rho$ is the {\em reference density} of the body,
347-$\bP$ is the {\em first Piola--Kirchhoff stress tensor}, $\mathrm{Div}
348-(\cdot)$ is the divergence operator and $\bB$ is the body force per
349-unit volume. Along with \eqref{eq:narayanan:balance-of%
350--momentum}, we have initial conditions $\bu(\bX, 0) = \bu_{0}(\bX)$
351-and $\frac{\partial\bu}{\partial t}(\bX, 0) = \bv_{0}(\bX)$ in
352-$\Omega$, and boundary conditions $\bu(\bX, t) = \bg(\bX, t)$ on
353-$\partial\Omega_{\mathrm{D}}$ and $\bP \bN = \bT$ on
354-$\partial\Omega_{\mathrm{N}}$. Here, $\bN$ is the outward normal
355-on the boundary.
356+where $\rho$ is the {\em reference density} of the body, $\bP$ is the
357+{\em first Piola--Kirchhoff stress tensor}, $\mathrm{Div} (\cdot)$ is
358+the divergence operator and $\bB$ is the body force per unit
359+volume. Along with \eqref{eq:narayanan:balance-of-momentum}, we have
360+initial conditions $\bu(\bX, 0) = \bu_{0}(\bX)$ and
361+$\frac{\partial\bu}{\partial t}(\bX, 0) = \bv_{0}(\bX)$ in $\Omega$,
362+and boundary conditions $\bu(\bX, t) = \bg(\bX, t)$ on
363+$\partial\Omega_{\mathrm{D}}$ and $\bP(\bX, t) \bN(\bX) = \bT(\bX, t)$
364+on $\partial\Omega_{\mathrm{N}}$. Here, $\bN(X)$ is the outward normal
365+on the boundary at the point $\bX$.
366
367 We focus on the balance of linear momentum because, in a continuous
368 sense, the other fundamental balance principles that materials must
369@@ -190,14 +191,14 @@
370
371 \subsection{Accounting for different materials}
372
373-It is important to reiterate that
374-\eqref{eq:narayanan:balance-of-momentum} is valid for all
375-materials. In order to differentiate between different materials and
376-to characterize their specific mechanical responses, the theory turns
377-to {\em constitutive relationships}, which are models for describing
378-the real mechanical behavior of matter. In the case of nonlinear
379-elastic (or {\em hyperelastic}) materials, this description is posed
380-in the form of a stress-strain relationship through an objective and
381+It is important to reiterate that \eqref{eq:narayanan:balance%
382+-of-momentum} is valid for all materials. In order to differentiate
383+between different materials and to characterize their specific
384+mechanical responses, the theory turns to {\em constitutive
385+relationships}, which are models for describing the real mechanical
386+behavior of matter. In the case of nonlinear elastic (or {\em
387+hyperelastic}) materials, this description is usually posed in the
388+form of a stress-strain relationship through an objective and
389 frame-indifferent Helmholtz free energy function called the {\em
390 strain energy function}, $\psi$. This is an energy defined per unit
391 reference volume and is solely a function of the local {\em strain
392@@ -216,8 +217,10 @@
393 \\
394 Deformation gradient & $\bF = \bone + \mathrm{Grad}(\bu)$
395 \\
396-Right Cauchy--Green tensor & $\bC = \bF^{\mathrm{T}} \bF$\\
397-Green--Lagrange strain tensor & $\bE = \frac{1}{2} \left(\bC - \bone\right)$
398+Right Cauchy--Green tensor & $\bC = \bF^{\mathrm{T}} \bF$
399+\\
400+Green--Lagrange strain tensor & $\bE = \frac{1}{2} \left(\bC -
401+ \bone\right)$
402 \\
403 Left Cauchy--Green tensor & $\bb = \bF \bF^{\mathrm{T}}$
404 \\
405@@ -300,7 +303,7 @@
406 following {\em constitutive relationship}:
407 %%
408 \begin{equation}
409-\bS = \bF^{-1} \frac{\partial \psi(\bF)}{\partial \bF}.
410+ \bS = \bF^{-1} \frac{\partial \psi(\bF)}{\partial \bF}.
411 \end{equation}
412 %%
413 The second Piola--Kirchhoff stress tensor is related to the first
414@@ -309,25 +312,25 @@
415
416 As already mentioned, the strain energy function can be posed in
417 equivalent forms in terms of different strain measures. (Again, the
418-reader is directed to classical texts to motivate this.) In order to
419-then arrive at the second Piola--Kirchhoff stress tensor, we turn to
420-the chain rule of differentiation. For example,
421+interested reader is directed to classical texts to motivate this.) In
422+order to then arrive at the second Piola--Kirchhoff stress tensor, we
423+turn to the chain rule of differentiation. For example,
424 %%
425 \begin{equation}
426-\begin{split}
427- \bS & = 2 \frac{\partial \psi(\bC)}{\partial \bC} = \frac{\partial
428- \psi(\bE)}{\partial \bE}\\
429- & = 2\left[\left(\frac{\partial \psi (I_{1}, I_{2},
430- I_{3})}{\partial I_{1}} + I_{1} \frac{\partial \psi (I_{1}, I_{2},
431- I_{3})}{\partial I_{2}} \right) \bone - \frac{\partial \psi (I_{1},
432- I_{2}, I_{3})}{\partial I_{2}} \bC + I_{3} \frac{\partial \psi (I_{1},
433- I_{2}, I_{3})}{\partial I_{3}} \bC^{-1} \right]\\
434- & = \sum_{A = 1}^{3}
435- \frac{1}{\lambda_{A}} \frac{\partial \psi(\lambda_{1},
436- \lambda_{2}, \lambda_{3})}{\partial
437- \lambda_{A}} \bN^{A}\otimes\bN^{A} = \ldots
438-\end{split}
439-\label{eq:narayanan:secondpk}
440+ \begin{split}
441+ \bS & = 2 \frac{\partial \psi(\bC)}{\partial \bC} =
442+ \frac{\partial \psi(\bE)}{\partial \bE}\\
443+ & = 2\left[\left(\frac{\partial \psi (I_{1}, I_{2},
444+ I_{3})}{\partial I_{1}} + I_{1} \frac{\partial \psi (I_{1},
445+ I_{2}, I_{3})}{\partial I_{2}} \right) \bone -
446+ \frac{\partial \psi (I_{1}, I_{2}, I_{3})}{\partial I_{2}} \bC +
447+ I_{3} \frac{\partial \psi (I_{1}, I_{2}, I_{3})}{\partial I_{3}}
448+ \bC^{-1} \right]\\
449+ & = \sum_{A = 1}^{3} \frac{1}{\lambda_{A}} \frac{\partial
450+ \psi(\lambda_{1}, \lambda_{2}, \lambda_{3})}{\partial
451+ \lambda_{A}} \bN^{A}\otimes\bN^{A} = \ldots
452+ \end{split}
453+ \label{eq:narayanan:secondpk}
454 \end{equation}
455
456 Using definitions such as the ones explicitly provided in
457@@ -335,12 +338,12 @@
458 Piola--Kirchhoff stress tensor from the strain energy function by
459 suitably differentiating it with respect to the appropriate strain
460 measure. This allows the user to easily specify material models in
461-terms of each of the strain measures introduced in
462-Table~\ref{tab:narayanan:straindefs}. The base class for all material
463-models, \emp{MaterialModel}, encapsulates this functionality. The
464-relevant method of this class is provided in
465-Figure~\ref{code:narayanan:material_model_base.py}. The implementation
466-relies heavily on the UFL \emp{diff} operator.
467+terms of each of the strain measures introduced in Table~\ref{tab:%
468+narayanan:straindefs}. The base class for all material models,
469+\emp{MaterialModel}, encapsulates this functionality. The relevant
470+method of this class is provided in Figure~\ref{code:narayanan:%
471+material_model_base.py}. The implementation relies heavily on the UFL
472+\emp{diff} operator.
473
474 \begin{figure}
475 \begin{python}
476@@ -370,7 +373,8 @@
477 \end{python}
478 \label{code:narayanan:material_model_base.py}
479 \caption{Partial listing of the method that suitably computes the
480- second Piola--Kirchhoff stress tensor based on the strain measure.}
481+ second Piola--Kirchhoff stress tensor based on the chosen strain
482+ measure.}
483 \end{figure}
484
485 The generality of the material model base class allows for the (almost
486@@ -448,50 +452,49 @@
487 \subsection{The finite element formulation of the balance of linear
488 momentum}
489
490-By taking the dot product of
491-\eqref{eq:narayanan:balance-of-momentum} with a test function
492-$\bv \in \hat{\mathrm{V}}$ and integrating over the reference domain
493-and time, we have
494+By taking the dot product of \eqref{eq:narayanan:balance-of-momentum}
495+with a test function $\bv \in \hat{\mathrm{V}}$ and integrating over
496+the reference domain and time, we have
497 %%
498 \begin{equation}
499- \int_{0}^{T} \int_{\Omega} \rho \frac{\partial^{2}
500+ \int_{0}^{T} \int_{\Omega} \rho \frac{\partial^{2}
501 \bu}{\partial t^{2}} \cdot \bv \dx \dt\;
502 = \int_{0}^{T}\int_{\Omega} \mathrm{Div}(\bP) \cdot \bv \dx \dt\;
503 + \int_{0}^{T} \int_{\Omega} \bB \cdot \bv \dx \dt.
504 \end{equation}
505 %%
506 Noting that the traction vector $\bT = \bP \bN$ on
507-$\partial\Omega_{\mathrm{N}}$ ($\bN$ being the outward normal
508-on the boundary) and that by definition
509-$\bv|_{\partial\Omega_{\mathrm{D}}} = 0$, we apply the divergence
510-theorem to arrive at the following weak form of the balance of linear
511-momentum: \\*
512-Find $\bu \in \mathrm{V}$, such that $\foralls \bv \in \hat{\mathrm{V}}$:
513+$\partial\Omega_{\mathrm{N}}$ ($\bN$ being the outward normal on the
514+boundary) and that by definition $\bv|_{\partial\Omega_{\mathrm{D}}} =
515+0$, we apply the divergence theorem to arrive at the following weak
516+form of the balance of linear momentum: \\*
517+Find $\bu \in \mathrm{V}$, such that $\foralls \bv \in
518+\hat{\mathrm{V}}$:
519+%%
520 \begin{equation}
521 \int_{0}^{T} \int_{\Omega} \rho \frac{\partial^{2} \bu}{\partial
522-t^{2}} \cdot \bv \dx \dt\; + \int_{0}^{T} \int_{\Omega}
523-\bP:\mathrm{Grad}(\bv) \dx \dt\; = \int_{0}^{T} \int_{\Omega} \bB
524-\cdot \bv \dx \dt\; + \int_{0}^{T} \int_{\partial\Omega_{\mathrm{N}}}
525-\bT \cdot \bv \ds \dt,
526+ t^{2}} \cdot \bv \dx \dt\; + \int_{0}^{T} \int_{\Omega}
527+ \bP:\mathrm{Grad}(\bv) \dx \dt\; = \int_{0}^{T} \int_{\Omega} \bB
528+ \cdot \bv \dx \dt\; + \int_{0}^{T} \int_{\partial\Omega_{\mathrm{N}}}
529+ \bT \cdot \bv \ds \dt,
530 \label{eq:narayanan:weakform}
531 \end{equation}
532 %%
533 with initial conditions $\bu(\bX, 0) = \bu_{0}(\bX)$ and
534-$\frac{\partial\bu}{\partial t}(\bX, 0) = \bv_{0}(\bX)$ in
535-$\Omega$, and boundary conditions $\bu(\bX, t) = \bg(\bX, t)$ on
536+$\frac{\partial\bu}{\partial t}(\bX, 0) = \bv_{0}(\bX)$ in $\Omega$,
537+and boundary conditions $\bu(\bX, t) = \bg(\bX, t)$ on
538 $\partial\Omega_{\mathrm{D}}$.
539
540 The finite element formulation implemented in \twist{} follows the
541-Galerkin approximation of the above weak
542-form~\eqref{eq:narayanan:weakform}, by looking for solutions in a finite
543-solution space $\mathrm{V}_{h} \subset \mathrm{V}$ and allowing for
544-test functions in a finite approximation of the test space
545-$\hat{\mathrm{V}}_{h} \subset \hat{\mathrm{V}}$.\footnote{We now
546- note an inherent advantage in choosing the Lagrangian description in
547- formulating the theory. The fact that the integrals in
548- \eqref{eq:narayanan:weakform}, along with the various fields
549- and differential operators, are defined over the fixed domain
550- $\Omega$ means that one need not be concerned with the
551+Galerkin approximation of the above weak form~\eqref{eq:narayanan:%
552+weakform}, by looking for solutions in a finite solution space
553+$\mathrm{V}_{h} \subset \mathrm{V}$ and allowing for test functions in
554+a finite approximation of the test space $\hat{\mathrm{V}}_{h} \subset
555+\hat{\mathrm{V}}$.\footnote{We now note an inherent advantage in
556+ choosing the Lagrangian description in formulating the theory. The
557+ fact that the integrals in \eqref{eq:narayanan:weakform}, along with
558+ the various fields and differential operators, are defined over the
559+ fixed domain $\Omega$ means that one need not be concerned with the
560 complexity associated with calculations on a moving computational
561 domain when implementing this formulation.}
562
563@@ -507,34 +510,33 @@
564 \label{eq:narayanan:staticweakform}
565 \end{equation}
566 %%
567-Since \twist{} provides the necessary functionality to
568-easily compute the first Piola--Kirchhoff stress tensor, $\bP$, given
569-a displacement field, $\bu$, for arbitrary material models,
570-\eqref{eq:narayanan:staticweakform} is just a nonlinear functional in
571-terms of $\bu$. The automatic differentiation capabilities of
572-UFL\footnote{An earlier chapter on UFL~(\ref{chap:alnes-1}) provides a
573-detailed look at the capabilities of UFL, as well as insights into how
574-it achieves its functionality. Even so, we note the following
575-differentiation capabilities of UFL because of their pivotal relevance
576-to this work:
577+Since \twist{} provides the necessary functionality to easily compute
578+the first Piola--Kirchhoff stress tensor, $\bP$, given a displacement
579+field, $\bu$, for arbitrary material models, \eqref{eq:narayanan:%
580+staticweakform} is just a nonlinear functional in terms of $\bu$. The
581+automatic differentiation capabilities of UFL\footnote{An earlier
582+ chapter on UFL~(\ref{chap:alnes-1}) provides a detailed look at the
583+ capabilities of UFL, as well as insights into how it achieves its
584+ functionality. Even so, we note the following differentiation
585+ capabilities of UFL because of their pivotal relevance to this work:
586 %%
587-\begin{itemize}
588-\item Computing spatial derivatives of fields, which allows for the
589- construction of differential operators such as such as
590- $\mathrm{Grad(\cdot)}$ or $\mathrm{Div(\cdot)}$:\\
591- \texttt{df\_i = Dx(f, i)}
592-\item Differentiating arbitrary expressions with respect to variables
593- they are functions of:\\
594-\texttt{g = variable(cos(cell.x[0]))}\\
595-\texttt{f = exp(g**2)}\\
596-\texttt{h = diff(f, g)}
597-\item Differentiating forms with respect to coefficients of a discrete
598- function, allowing for automatic linearizations of nonlinear
599- variational forms:\\
600-\texttt{a = derivative(L, w, u)}
601-\end{itemize}} make
602-this nonlinear form straightforward to implement, as evidenced by the
603-code listing in Figure~\ref{code:narayanan:staticmomentumsolver}.
604+ \begin{itemize}
605+ \item Computing spatial derivatives of fields, which allows for the
606+ construction of differential operators such as such as
607+ $\mathrm{Grad(\cdot)}$ or $\mathrm{Div(\cdot)}$:\\
608+ \texttt{df\_i = Dx(f, i)}
609+ \item Differentiating arbitrary expressions with respect to variables
610+ they are functions of:\\
611+ \texttt{g = variable(cos(cell.x[0]))}\\
612+ \texttt{f = exp(g**2)}\\
613+ \texttt{h = diff(f, g)}
614+ \item Differentiating forms with respect to coefficients of a discrete
615+ function, allowing for automatic linearizations of nonlinear
616+ variational forms:\\
617+ \texttt{a = derivative(L, w, u)}
618+ \end{itemize}} make this nonlinear form straightforward to
619+implement, as evidenced by the code listing in Figure~\ref{code:%
620+narayanan:staticmomentumsolver}.
621
622 This listing provides the relevant section of the static balance of
623 linear momentum solver class, \emp{StaticMomentumBalanceSolver}. The
624@@ -597,15 +599,17 @@
625 \br) \in \hat{\mathrm{V}}$:
626 %%
627 \begin{equation}
628-\begin{split}
629- \int_{0}^{T} \int_{\Omega} \rho \frac{\partial \bw}{\partial t}
630-\cdot \bv \dx \dt\; + \int_{0}^{T} \int_{\Omega}
631-\bP:\mathrm{Grad}(\bv) \dx \dt\; &= \int_{0}^{T} \int_{\Omega} \bB
632-\cdot \bv \dx \dt\; + \int_{0}^{T} \int_{\partial\Omega_{\mathrm{N}}}
633-\bT \cdot \bv \ds \dt, \; \mathrm{and}\\ \int_{0}^{T} \int_{\Omega}
634-\frac{\partial \bu}{\partial t} \cdot \br \dx \dt\; &= \int_{0}^{T}
635-\int_{\Omega} \bw \cdot \br \dx \dt.
636-\end{split}
637+ \begin{split}
638+ \int_{0}^{T} \int_{\Omega} \rho \frac{\partial \bw}{\partial t}
639+ \cdot \bv \dx \dt\; + \int_{0}^{T} \int_{\Omega}
640+ \bP:\mathrm{Grad}(\bv) \dx \dt\;
641+ &= \int_{0}^{T} \int_{\Omega} \bB \cdot \bv \dx \dt\; +
642+ \int_{0}^{T} \int_{\partial\Omega_{\mathrm{N}}} \bT \cdot \bv \ds
643+ \dt, \; \mathrm{and}\\
644+ \int_{0}^{T} \int_{\Omega} \frac{\partial \bu}{\partial t} \cdot
645+ \br \dx \dt\;
646+ &= \int_{0}^{T} \int_{\Omega} \bw \cdot \br \dx \dt.
647+ \end{split}
648 \label{eq:narayanan:cg1weakform}
649 \end{equation}
650 %%
651@@ -620,14 +624,16 @@
652 scheme:
653 %%
654 \begin{equation}
655-\begin{split}
656- \int_{\Omega} \rho \frac{\left(\bw_{n+1} - \bw_{n}\right)}{\Delta t} \cdot \bv \dx\;
657- + \int_{\Omega} \bP(\bu_{\mathrm{mid}}):\mathrm{Grad}(\bv) \dx\;
658- &= \int_{\Omega} \bB \cdot \bv \dx\;
659- + \int_{\partial\Omega_{\mathrm{N}}} \bT \cdot \bv \ds,
660- \; \mathrm{and}\\
661- \int_{\Omega} \frac{\left(\bu_{n+1} - \bu_{n}\right)}{\Delta t} \cdot \br \dx\;
662- &= \int_{\Omega} \bw_{\mathrm{mid}} \cdot \br \dx,
663+ \begin{split}
664+ \int_{\Omega} \rho \frac{\left(\bw_{n+1} - \bw_{n}\right)}{\Delta
665+ t} \cdot \bv \dx\; + \int_{\Omega}
666+ \bP(\bu_{\mathrm{mid}}):\mathrm{Grad}(\bv) \dx\;
667+ &= \int_{\Omega} \bB \cdot \bv \dx\;
668+ + \int_{\partial\Omega_{\mathrm{N}}} \bT \cdot \bv \ds,
669+ \; \mathrm{and}\\
670+ \int_{\Omega} \frac{\left(\bu_{n+1} - \bu_{n}\right)}{\Delta t}
671+ \cdot \br \dx\;
672+ &= \int_{\Omega} \bw_{\mathrm{mid}} \cdot \br \dx,
673 \end{split}
674 \label{eq:narayanan:cg1weakformapprox}
675 \end{equation}
676@@ -690,7 +696,7 @@
677 a = derivative(L, U, dU)
678 \end{python}
679 \caption{Relevant portion of the dynamic balance of linear momentum
680- balance solver using the CG$_{1}$ time-stepping scheme.}
681+ solver using the CG$_{1}$ time-stepping scheme.}
682 \label{code:narayanan:cg1}
683 \end{figure}
684
685@@ -701,7 +707,7 @@
686 second example calculation.} But it should also be noted that the mixed
687 system that results from the formulation is computationally expensive
688 and memory intensive as the number of variables being solved for have
689-doubled.
690+doubled due to the introduction of the velocity variable.
691
692 \twist{} also provides a standard implementation of a finite
693 difference time-stepping algorithm that is commonly used in the
694@@ -727,9 +733,9 @@
695 %%
696 \begin{equation}
697 \int_{\Omega} \rho a_{0} \cdot \bv \dx\; + \int_{\Omega}
698-\bP(u_{0}):\mathrm{Grad}(\bv) \dx\; - \int_{\Omega} \bB(X, 0)
699-\cdot \bv \dx\; - \int_{\partial\Omega_{\mathrm{N}}}
700-\bT(X, 0) \cdot \bv \ds = 0.
701+ \bP(u_{0}):\mathrm{Grad}(\bv) \dx\; - \int_{\Omega} \bB(X, 0)
702+ \cdot \bv \dx\; - \int_{\partial\Omega_{\mathrm{N}}}
703+ \bT(X, 0) \cdot \bv \ds = 0.
704 \end{equation}
705 %%
706 This provides the complete initial state ($\bu_{0}, \bv_{0}, \ba_{0}$)
707@@ -738,15 +744,15 @@
708 following definitions:
709 %%
710 \begin{equation}
711-\begin{split}
712-\bu_{n+1} & = \bu_{n} + \Delta t \bv_{n} + \Delta t^{2} \left[
713- \left(\frac{1}{2} - \beta \right) \ba_{n} + \beta \ba_{n+1}
714-\right]\\
715-\bv_{n+1} & = \bv_{n} + \Delta t \left[ (1-\gamma) \ba_{n} + \gamma
716- \ba_{n+1} \right]\\
717-\bu_{n+\alpha} & = (1 - \alpha) \bu_{n} + \alpha \bu_{n+1}\\
718-\bv_{n+\alpha} & = (1 - \alpha) \bv_{n} + \alpha \bv_{n+1}\\
719-t_{n+\alpha} &= (1 - \alpha) t_{n} + \alpha t_{n + 1}
720+ \begin{split}
721+ \bu_{n+1} & = \bu_{n} + \Delta t \bv_{n} + \Delta t^{2} \left[
722+ \left(\frac{1}{2} - \beta \right) \ba_{n} + \beta \ba_{n+1}
723+ \right]\\
724+ \bv_{n+1} & = \bv_{n} + \Delta t \left[ (1-\gamma) \ba_{n} +
725+ \gamma \ba_{n+1} \right]\\
726+ \bu_{n+\alpha} & = (1 - \alpha) \bu_{n} + \alpha \bu_{n+1}\\
727+ \bv_{n+\alpha} & = (1 - \alpha) \bv_{n} + \alpha \bv_{n+1}\\
728+ t_{n+\alpha} &= (1 - \alpha) t_{n} + \alpha t_{n + 1}
729 \end{split}
730 \label{eq:narayanan:hhtdefs}
731 \end{equation}
732@@ -756,23 +762,23 @@
733 %%
734 \begin{equation}
735 \int_{\Omega} \rho a_{n+1} \cdot \bv \dx\; + \int_{\Omega} \bP(u_{n
736-+ \alpha}):\mathrm{Grad}(\bv) \dx\; - \int_{\Omega} \bB(X, t_{n +
737-\alpha}) \cdot \bv \dx\; - \int_{\partial\Omega_{\mathrm{N}}} \bT(X,
738-t_{n + \alpha}) \cdot \bv \ds = 0,
739+ + \alpha}):\mathrm{Grad}(\bv) \dx\; - \int_{\Omega} \bB(X, t_{n +
740+ \alpha}) \cdot \bv \dx\; - \int_{\partial\Omega_{\mathrm{N}}}
741+ \bT(X, t_{n + \alpha}) \cdot \bv \ds = 0,
742 \label{eq:narayanan:newaccn}
743 \end{equation}
744 %%
745-we can solve for the for the only unknown variable, the
746-acceleration at the next step, $\ba_{n+1}$. The acceleration solution
747-to \eqref{eq:narayanan:newaccn} is then used in the
748-definitions~\eqref{eq:narayanan:hhtdefs} to update to new displacement
749-and velocity values, and the problem is stepped through time.
750+we can solve for the for the only unknown variable, the acceleration
751+at the next step, $\ba_{n+1}$. The acceleration solution to
752+\eqref{eq:narayanan:newaccn} is then used in the definitions%
753+~\eqref{eq:narayanan:hhtdefs} to update to new displacement and
754+velocity values, and the problem is stepped through time.
755
756 We close this subsection on time-stepping algorithms with one usage
757 detail pertaining to \twist. By default, when solving a dynamics
758 problem, \twist{} assumes that the user wants to use the HHT
759-method. In case one wants to override this behavior, they can do so
760-by returning \emp{"CG(1)"} in the \emp{time\_stepping} method while
761+method. In case one wants to override this behavior, they can do so by
762+returning \emp{"CG(1)"} in the \emp{time\_stepping} method while
763 specifying the problem. Figure~\ref{code:narayanan:dynamicrelease} is
764 an example showing this.
765
766@@ -781,12 +787,12 @@
767 The algorithms discussed thus far serve primarily to explain the
768 computational framework's inner working, and are not at the level at
769 which the user usually interacts with \twist{} (unless they are
770-interested in extending it). In practice, the functionality of \twist{}
771-is exposed to the user through two primary problem definition classes:
772-\emp{StaticHyperelasticity} and \emp{Hyperelasticity}. These classes
773-reside in \emp{problem\_definitions.py}, and contain numerous methods
774-for defining aspects of the nonlinear elasticity problem. As their
775-names suggest, these are respectively used to describe static or
776+interested in extending it). In practice, the functionality of
777+\twist{} is exposed to the user through two primary problem definition
778+classes: \emp{StaticHyperelasticity} and \emp{Hyperelasticity}. These
779+classes reside in \emp{problem\_definitions.py}, and contain numerous
780+methods for defining aspects of the nonlinear elasticity problem. As
781+their names suggest, these are respectively used to describe static or
782 dynamic problems in nonlinear elasticity.
783
784 Over the course of the following examples, we will see how various
785@@ -808,9 +814,9 @@
786 3.8461$~N/m$^2$ and a spatially varying $\lambda = 5.8 x_{1} + 5.7 (1
787 - x_{1})$~N/m$^2$. Here, $x_{1}$ is the first coordinate of the
788 reference position, $\bX$.\footnote{The numerical parameters in this
789-chapter have been arbitrarily chosen for illustration of the
790-framework's use. They do not necessarily correspond to a real
791-material.} In order to twist the cube, the face $x_{1} = 0$ is held
792+ chapter have been arbitrarily chosen for illustration of the
793+ framework's use. They do not necessarily correspond to a real
794+ material.} In order to twist the cube, the face $x_{1} = 0$ is held
795 fixed and the opposite face $x_{1} = 1$ is rotated 60 degrees using
796 the Dirichlet condition defined in
797 Figure~\ref{code:narayanan:statictwist}.
798@@ -834,17 +840,17 @@
799 functionality that it offers.}
800 \end{figure}
801 %%
802-The problem is completely specified by defining
803-relevant methods in the user-created class \emp{Twist} (see
804+The problem is completely specified by defining relevant methods in
805+the user-created class \emp{Twist} (see
806 Figure~\ref{code:narayanan:statictwist}), which derives from the base
807 class \emp{StaticHyperelasticity}. \twist{} only requires relevant
808 methods to be provided, and for the current problem, this includes
809-the computational domain, Dirichlet boundary conditions and material
810-model. The methods are fairly self-explanatory, but the following points
811-are to be noted. Firstly, \twist{} supports spatially-varying material
812-parameters. Secondly, Dirichlet boundary conditions are posed in two
813-parts: the conditions themselves, and the corresponding boundaries along
814-which they act.
815+those that define the computational domain, Dirichlet boundary
816+conditions and material model. The methods are fairly
817+self-explanatory, but the following points are to be noted. Firstly,
818+\twist{} supports spatially-varying material parameters. Secondly,
819+Dirichlet boundary conditions are posed in two parts: the conditions
820+themselves, and the corresponding boundaries along which they act.
821
822 \begin{figure}
823 \begin{python}
824@@ -993,14 +999,15 @@
825 called, we see the relaxation of the pre-twisted cube. After initial
826 unwinding of the twist, the body proceeds to twist in the opposite
827 direction due to inertia. This process repeats itself, and snapshots
828-of the displacement over the first 0.5~s are shown in
829-Figure~\ref{fig:narayanan:releasedcube}. Figure~\ref{fig:narayanan:energies}
830-highlights the energy conservation of the CG$_{1}$ numerical scheme used
831-to time-step this problem by totaling the kinetic energy and
832+of the displacement over the first 0.5~s are shown in Figure%
833+~\ref{fig:narayanan:releasedcube}. Figure~\ref{fig:narayanan:energies}
834+highlights the energy conservation of the CG$_{1}$ numerical scheme
835+used to time-step this problem by totaling the kinetic energy and
836 potential energy of the body over the course of the
837 calculation. \twist{} provides this information through the methods
838 \emp{kinetic\_energy(v)} and \emp{potential\_energy(u)}, where \emp{v}
839-and \emp{u} are velocity and displacement fields respectively.
840+and \emp{u} are the discrete velocity and displacement fields
841+respectively.
842
843 \begin{figure}
844 \begin{center}

Subscribers

People subscribed via source and target branches