% !TEX root = main.tex
\chapter{Basic elastostatics}
\section{Navier-Cauchy equilibrium equation}

\begin{prop}[Navier-Cauchy equilibrium equation]
  \index{Navier-Cauchy equilibrium equation}
  If we assume isotropic materials and small deformations, by combining the mechanical equilibrium equation, Hooke's law and Cauchy's strain tensor, we arrive at the Navier-Cauchy equilibrium equation:
  \[ \vec{f} + \mu \laplacian \vec{u} + (\lambda + \mu) \grad \div \vec{u}. \]
\end{prop}

\begin{obs}
  Note that this equation is linear, so the superposition principle holds.
\end{obs}

\begin{obs}
  The boundary conditions will depend on the elastostatic problem.

  In some cases, a part of the body is ``glued'' to a hard surface where the displacement has to vanish, and where the environment provides the external reaction forces necessary to balance the surface stresses. On the remainder part of the body surface, explicit external forces implement the ``user control'' of the deformation. In regions where the external forces vanish, the body surface is said to be free.

  \textbf{Remember:} for the body to remain at rest, the total external force and the total external moment of force must always be zero.
\end{obs}

\begin{obs}[Unicity of solutions]
  For linearly elastic problems, solutions to the mechanical equilibrium equations are unique (see Lautrup for the development).
\end{obs}

\section{The bent beam}
Geometrically, a bent beam consists of a bundle of straight parallel lines or rays, covering the same cross-section inany plane orthogonal tothe lines. Assume it is made of homogeneous, istropic, elastic material.

\begin{defi}[bending,!Pure]
  \underline{Pure bending} is a bending process with the following properties: there are no body forces, external stresses are applied to the terminal cross-sections only, and on average, these stresses should not stretch or compress the beam, but only provide external moments of force at the terminals that only involve normal stresses.

  This means some rays will be stretched and some compressed, but on average there will be no stretching or compression.
\end{defi}

\begin{defi}[bending,!Uniform]
  In \underline{uniform bending}, stresses and strains are the same everywhere along the beam.

  This is only possible if the originally straight beam of length $L$ is deformed to become a section of a circular ring of radius $R$ with every ray becoming part of a perfect circle.
\end{defi}

Let's choose a coordinate system for the beam:

\begin{figure}[h!]
    \centering
    \includegraphics[scale=0.5]{img/beam_coordinate_system.pdf}
    \caption{Diagram showing the beam (in purple) in a coordinate system.}
    \label{fig:beam_coordinate_system}
\end{figure}

As shown in figure \ref{fig:beam_coordinate_system}, we've chosen the $z$-axis for the beam, and the terminal cross-sections of the beam are at $z = 0$, $z = L$.

We impose the centroid of the cross section to be at the middle:
\[ \int_A x \, \dif A = \int_A y \, \dif A = 0. \]

% TODO: No tinc ni idea de què és el neutral ray

\begin{prop}[Euler-Bernouilli law]
  \index{Euler-Bernouilli law}
  The bending moment is:
  \[ M_b = Y I K = \frac{Y I}{R}, \]
  where $Y I$ is called the flexural rigidity.
\end{prop}

The bending energy per unit beam length is:
\[ \frac{\dif U}{\dif l} = \frac{Y I}{2 R^2} = \frac{M_b^2}{2 Y I}. \]

\begin{obs}
  Note that this magnitude is constant for pure bending where all cross-sections are equivalent.
\end{obs}

% TODO:
To do: acabar aquest tema. % Me'l salto per ara perquè és un pal terrible hehe
