Merge lp:~hnarayanan/fenics-book/proofreading into lp:fenics-book
- proofreading
- Merge into main
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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Anders Logg | Pending | ||
Registry Administrators | Pending | ||
Review via email:
|
Commit message
Description of the change
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
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Anders Logg (logg) wrote : | # |
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} |
Thanks!
--
Anders
On Mon, May 16, 2011 at 07:33:34AM -0000, Harish Narayanan wrote: /code.launchpad .net/~hnarayana n/fenics- book/proofreadi ng/+merge/ 60776
> You have been requested to review the proposed merge of lp:~hnarayanan/fenics-book/proofreading into lp:fenics-book.
>
> For more details, see:
> https:/
>
>
>
> === modified file 'STATUS' authors. tex' authors. tex 2011-04-29 11:21:33 +0000 authors. tex 2011-05-13 10:11:49 +0000 e{toc}{ chapter} {List of authors} chapter} {1} fdl-1.3. tex' fdl-1.3. tex 2011-05-10 18:26:12 +0000 fdl-1.3. tex 2011-05-13 10:11:49 +0000 {\rlap{ GNU Free Documentation License}} e{toc}{ chapter} {GNU Free Documentation License} fsf.org/> chapter} {1} fsf.org/> {\arabic{ section} .} section} {-1} lopes/chapter. tex' lopes/chapter. tex 2011-04-29 09:32:01 +0000 lopes/chapter. tex 2011-05-13 10:11:49 +0000
> --- 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/
> --- backmatter/
> +++ backmatter/
> @@ -1,5 +1,7 @@
> \chapter*{List of authors}
> \addcontentslin
> +\addtocounter{
> +\vspace{-1cm}
>
> \emph{The following authors have contributed to this book.}
>
>
> === modified file 'backmatter/
> --- backmatter/
> +++ backmatter/
> @@ -1,25 +1,20 @@
> -\chapter*
> -\phantomsection % so hyperref creates bookmarks
> +\chapter*{GNU Free Documentation License}
> \addcontentslin
> -%\label{label_fdl}
> -
> - \begin{center}
> -
> - Version 1.3, 3 November 2008
> -
> -
> - Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
> -
> - \bigskip
> -
> - <http://
> -
> - \bigskip
> -\end{center}
> -
> - Everyone is permitted to copy and distribute verbatim copies
> - of this license document, but changing it is not allowed.
> -
> +\addtocounter{
> +\vspace{-1cm}
> +
> +Version 1.3, 3 November 2008
> +
> +Copyright \copyright{} 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
> +
> +\bigskip
> +
> + <http://
> +
> +\bigskip
> +
> +Everyone is permitted to copy and distribute verbatim copies of this
> +license document, but changing it is not allowed.
>
> \def\thesection
> \setcounter{
>
> === modified file 'chapters/
> --- chapters/
> +++ chapters/
> @@ -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 ...