-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathstep8.tex
158 lines (145 loc) · 4.77 KB
/
step8.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
% $Id: step8.tex 4605 2014-01-30 08:49:42Z kanschat $
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section[Systems]{Systems of PDE}
\frame{\tableofcontents[currentsection,hideothersubsections]}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Tutorial step 8}
{\footnotesize{\url{http://www.dealii.org/\dealrelease/doxygen/deal.II/step_8.html}}}
\begin{itemize}
\item Lam\'e-Navier equations
\item System elements
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{The Lam\'e-Navier equations}
\begin{frame}
\frametitle{The Lam\'e-Navier equations}
\begin{itemize}
\item Hooke's Law for a more or less incompressible body
\item The $\varepsilon$-tensor (symmetric gradient)
\begin{gather*}
\varepsilon(u) = \tfrac12
\bigl( \nabla u + (\nabla u)^T \bigr)
\end{gather*}
\item Fixed-body rotation does not cause stress
\item Divergence measures compressibility
\item Hooke's Law
\begin{gather*}
-\nabla\cdot \bigl(2\mu\varepsilon(u) + \lambda \nabla\cdot
u\bigr) = f
\end{gather*}
\item Weak form
\begin{gather*}
2\mu \int \varepsilon(u) : \varepsilon(v)\,dx
+ \lambda \int \nabla\cdot u \,\nabla\cdot v\,dx
= \int f\cdot v\,dx
\end{gather*}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{System elements}
\begin{frame}
\frametitle{The class FESystem}
\begin{block}{\lstinline!FESystem!}
\begin{itemize}
\item Simple way of getting vector valued elements
\item Simplifies handling of degrees of freedom
\item Output all components at once
\end{itemize}
\end{block}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Using FESystem}
\begin{block}{}
\lstinputlisting{tutcode/step8-0.cc}
\end{block}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Components of shape functions}
\begin{itemize}
\item ``Primitive'' systems
\begin{itemize}
\item The system consists only of scalar functions
\item Each system shape function has a unique vector component
where it may be nonzero
\begin{block}{}
\lstinputlisting{tutcode/step8-0a.cc}
\end{block}
\item All other components are zero
\end{itemize}
\item System contains genuine vector functions
\begin{itemize}
\item Shape functions may be nonzero in several components
\begin{block}{}
\lstinputlisting{tutcode/step8-0b.cc}
\end{block}
\item Requires additional loop over components
\end{itemize}
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Changes for systems}
\begin{frame}
\frametitle{Notes on step 8}
Compared to step 6
\begin{itemize}
\item \lstinline!setup_system()! is unchanged
\item \lstinline!solve()! is unchanged
\item \lstinline!output_results()! could have been left unchanged
\item The ``global'' part of \lstinline!assemble_system()! is
unchanged
\begin{itemize}
\item hanging nodes constraints
\item boundary constraints
\end{itemize}
\item The loops in \lstinline!assemble_system()! are unchanged
\end{itemize}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Changes in \lstinline!assemble_system()!}
\begin{block}{Right hand side}
\lstinputlisting{tutcode/step8-2.cc}
\end{block}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{frame}
\frametitle{Changes in \lstinline!assemble_system()!}
\begin{block}{Matrix}
\lstinputlisting[basicstyle=\footnotesize]{tutcode/step8-1.cc}
\end{block}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Visualization}
\begin{frame}[fragile]
\frametitle{Visualization with gnuplot}
\begin{block}{}
\begin{verbatim}
set style data lines
splot "solution.gpl" using ($1+$3):($2+$4)
\end{verbatim}
\end{block}
\end{frame}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Problems}
\begin{frame}
\frametitle{Problems}
\begin{enumerate}
\item Change the right hand side to zero and the boundary conditions to
\begin{itemize}
\item Free boundary on top and bottom
\item Zero displacement on the left
\item Displacement $(1,0)^T$ on the right
\end{itemize}
Use \lstinline!GridGenerator::hyper_rectangle! with colorizing
\item Experiment with $\lambda$
\end{enumerate}
\end{frame}
%%% Local Variables:
%%% mode: latex
%%% TeX-master: "slides"
%%% End: