Nonlinear finite elements/Homework 6/Solutions/Problem 1/Part 9

From Wikiversity
Jump to: navigation, search

Problem 1: Part 9 [edit]

Construct a laminar coordinate system at the blue point. (Use equations 9.3.16 and 9.3.17 from the book chapter). Assume that the blue point is at the center of element 5.

The x and y coordinates of the master and slave nodes are


\begin{bmatrix} x_1 \\ y_1 \\ x_2 \\ y_2 \end{bmatrix} =
\begin{bmatrix} r\cos\theta_1 \\ r\sin\theta_1 \\
r\cos\theta_2 \\ r\sin\theta_2 \end{bmatrix} =
\begin{bmatrix} 0.55000 \\ 0.95263 \\ 0.95263 \\ 0.55000 \end{bmatrix}

\begin{bmatrix} x_{1-} \\ y_{1-} \\ x_{2-} \\ y_{2-} \end{bmatrix} =
\begin{bmatrix} r_1\cos\theta_1 \\ r_1\sin\theta_1 \\
r_1\cos\theta_2 \\ r_1\sin\theta_2 \end{bmatrix} =
\begin{bmatrix} 0.50000 \\ 0.86603 \\ 0.86603 \\ 0.50000 \end{bmatrix}

\begin{bmatrix} x_{1+} \\ y_{1+} \\ x_{2+} \\ y_{2+} \end{bmatrix} =
\begin{bmatrix} r_2\cos\theta_1 \\ r_2\sin\theta_1 \\
r_2\cos\theta_2 \\ r_2\sin\theta_2 \end{bmatrix} =
\begin{bmatrix} 0.60000 \\ 1.0392 \\ 1.0392 \\ 0.60000 \end{bmatrix}

Since there are two master nodes in an element, the parent element is a four-noded quad with shape functions

\begin{align}
N_{1-}(\xi,\eta) & = \cfrac{1}{4}(1-\xi)(1-\eta) &
N_{2-}(\xi,\eta) & = \cfrac{1}{4}(1+\xi)(1-\eta) \\
N_{1+}(\xi,\eta) & = \cfrac{1}{4}(1-\xi)(1+\eta) &
N_{2+}(\xi,\eta) & = \cfrac{1}{4}(1+\xi)(1+\eta) ~.
\end{align}

The isoparametric map is

\begin{align}
x(\xi, \eta) & = x_{1-}~N_{1^-}(\xi,\eta) +
 x_{2-}~N_{2^-}(\xi,\eta) +
 x_{1+}~N_{1^+}(\xi,\eta) +
 x_{2+}~N_{2^+}(\xi,\eta)\\
y(\xi, \eta) & = y_{1-}~N_{1^-}(\xi,\eta) +
 y_{2-}~N_{2^-}(\xi,\eta) +
 y_{1+}~N_{1^+}(\xi,\eta) +
 y_{2+}~N_{2^+}(\xi,\eta)~.
\end{align}

Plugging in the numbers, we get

\begin{align}
x &= 0.12500 (1 - \xi) (1 - \eta) + 0.21651 (1 + \xi) (1 - \eta) \\
& + 0.15000 (1 - \xi) (1 + \eta) + 0.25981 (1 + \xi) (1 + \eta) \\
y &= 0.21651 (1 - \xi) (1 - \eta) + 0.12500 (1 + \xi) (1 - \eta) \\
& + 0.25981 (1 - \xi) (1 + \eta) + 0.15000 (1 + \xi) (1 + \eta)~.
\end{align}

Therefore, the derivatives with respect to \xi are

\begin{align}
x_{,\xi} = \frac{\partial x}{\partial \xi} &= 0.20131 + 0.018301 \eta \\
y_{,\xi} = \frac{\partial y}{\partial \xi} &= -0.20131 - 0.018301 \eta~.
\end{align}

Since the blue point is at the center of the element, the values of \xi and \eta at that point are zero. Therefore, the values of the derivatives at that point are

\begin{align}
x_{,\xi} = \frac{\partial x}{\partial \xi} &= 0.20131 \\
y_{,\xi} = \frac{\partial y}{\partial \xi} &= -0.20131 ~.
\end{align}

Therefore,


\mathbf{x}_{,\xi} = 0.20131 \mathbf{e}_x - 0.20131 \mathbf{e}_y, ~~
\lVert\mathbf{x}_{,\xi}\rVert_{}= \sqrt{0.20131^2 + 0.20131^2} = 0.28470 ~.

The local laminar basis vector \widehat{\mathbf{e}}_x is given by


\widehat{\mathbf{e}}_x = \cfrac{\mathbf{x}_{,\xi}}{\lVert\mathbf{x}_{,\xi}\rVert_{}}
 = 0.70711 \mathbf{e}_x - 0.70711 \mathbf{e}_y ~.

The laminar basis vector \widehat{\mathbf{e}}_y is given by


\widehat{\mathbf{e}}_y = \mathbf{e}_z\times\widehat{\mathbf{e}_x}
 = 0.70711 \mathbf{e}_x + 0.70711 \mathbf{e}_y ~.

A plot of the vectors is shown in Figure 13.

Figure 13. Laminar base vectors.

The Maple code for this calculation is shown below.

> #
> # Shape functions
> #
> N1m := 1/4*(1-xi)*(1-eta):
> N2m := 1/4*(1+xi)*(1-eta):
> N1p := 1/4*(1-xi)*(1+eta):
> N2p := 1/4*(1+xi)*(1+eta):
> N := linalg[matrix](1,4,[N1m,N2m,N1p,N2p]);
> #
> # Compute local laminar basis vectors at the blue point
> #
> # Isoparametric map
> #
> x := x1m*N1m + x2m*N2m + x1p*N1p + x2p*N2p;
> y := y1m*N1m + y2m*N2m + y1p*N1p + y2p*N2p;
> #
> # Derivative of Isoparametric map
> #
> dx_dxi := diff(x, xi);
> dy_dxi := diff(y, xi);
> #
> # Jacobian evluated at blue point
> #
> dx_dxi_cen := subs(eta=0, dx_dxi);
> dy_dxi_cen := subs(eta=0, dy_dxi);
> #
> # Local laminar basis vectors at the blue point
> #
> norm_dx_dxi_cen := simplify(sqrt(dx_dxi_cen^2 + dy_dxi_cen^2));
> ehat_x := vector([simplify(dx_dxi_cen/norm_dx_dxi_cen),
> simplify(dy_dxi_cen/norm_dx_dxi_cen), 0]);
> ehat_z := vector([0, 0, 1]);
> ehat_y := crossprod(ehat_z, ehat_x);