In [1]:
from funciones_forma_lagrange import lagrangiana_1D, lagrangiana_2D, lagrangiana_3D
from funciones_forma_lagrange import recorrer_matriz_espiral, guardar_matriz_espiral
from funciones_forma_lagrange import recorrer_matriz_3d_espiral, guardar_matriz_3d_espiral
from sympy import Symbol, lambdify, latex
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d
from mayavi import mlab

x = Symbol('x')
y = Symbol('y')
z = Symbol('z')

Generación rápida de funciones de forma bidimensionales y tridimensionales Lagrangianas

Introducción

Las funciones de forma son usadas en el método de los elementos finitos, generalmente usan el sistema de coordenadas naturales $(\xi, \eta, \zeta)$.

Entre ellas están las funciones de forma Lagragianas, la fórmula para generarlos es la siguiente:

\begin{equation} l^{(n)} = \prod_{i=0, i \neq j}^k \frac{x - x_{i}}{x_{j} - x_{i}} \end{equation}

El dominio de las funciones de forma es $-1 \leqslant \xi \leqslant 1$ y el rango es $-1 \leqslant \eta \leqslant 1$.


In [2]:
import matplotlib.patches as mpatches

relleno = mpatches.Rectangle((-1, -1), 2, 2, color='#0099FF')

fig = plt.figure()
ax = fig.add_subplot(111)
ax.add_patch(relleno)
plt.xlabel(r'$\xi$', fontsize=20)
plt.ylabel(r'$\eta$', fontsize=20)
plt.xlim(-1.5, 1.5)
plt.ylim(-1.5, 1.5)
plt.grid(True)
plt.show()


Debido a esto se llaman funciones de forma rectangulares.

Notación

$l^{(1)}$ Función de forma unidimensional Lagrangiana

$l^{(2)}$ Función de forma bidimensional Lagrangiana

$l^{(3)}$ Función de forma trididimensional Lagrangiana

Método

Las $l^{(2)}$ se generar a partir de $l^{(1)}$, multiplicando matrices:

\begin{equation} \left [ l^{(1)} \right ] \left [ l^{(1)} \right ]^{T} = \left [ l^{(2)} \right ] \end{equation}

En donde $\left [ l^{(1)} \right ]$ es una matriz columna con $j$-elementos, $\left [ l^{(1)} \right ]^{T}$ es una matriz fila con $j$-elementos y $\left [ l^{(2)} \right ]$ es una matriz cuadrada.

Si recorremos los elementos que forman parte de la matriz $\left [ l^{(2)} \right ]$, uno a uno desde $l^{(2)}_1$ hasta $l^{(2)}_n$ forman una espiral, si graficamos las funciones que forman la matriz en el orden anterior observamos que el punto $(\xi, \eta)$ en el que la función vale $1$ también hace un recorrido en espiral.

Ejemplo 1: Elemento rectangular de 4 nodos:

\begin{equation} \left [ \begin{matrix} l^{(1)}_1 \\\ l^{(1)}_2 \end{matrix} \right ] \left [ \begin{matrix} l^{(1)}_1 & l^{(1)}_2 \end{matrix} \right ] = \left [ \begin{matrix} l^{(2)}_1 & l^{(2)}_4 \\\ l^{(2)}_2 & l^{(2)}_3 \end{matrix} \right ] \end{equation}

Ejemplo 2: Elemento rectangular de 9 nodos:

\begin{equation} \left [ \begin{matrix} l^{(1)}_1 \\\ l^{(1)}_2 \\\ l^{(1)}_3 \end{matrix} \right ] \left [ \begin{matrix} l^{(1)}_1 & l^{(1)}_2 & l^{(1)}_3 \end{matrix} \right ] = \left [ \begin{matrix} l^{(2)}_1 & l^{(2)}_8 & l^{(2)}_7 \\\ l^{(2)}_2 & l^{(2)}_9 & l^{(2)}_6 \\\ l^{(2)}_3 & l^{(2)}_4 & l^{(2)}_5 \end{matrix} \right ] \end{equation}

Las $l^{(3)}$ también se generar a partir de $l^{(1)}$, pero realizando una multiplicación con matrices 3D (ver Matrices 3D):

\begin{equation} \left [ l^{(1)} \right ] \left [ l^{(1)} \right ]^{T} \left [ l^{(1)} \right ]^{T} = \left [ l^{(3)} \right ] \end{equation}

En donde $\left [ l^{(1)} \right ]$ es una matriz columna con $j$-elementos, $\left [ l^{(1)} \right ]^{T}$ es una matriz fila con $j$-elementos y $\left [ l^{(3)} \right ]$ es una matriz 3D cúbica.

Ejemplo 3: Elemento hexaédrico de 8 nodos:

\begin{equation} \left [ \begin{matrix} l^{(1)}_1 \\\ l^{(1)}_2 \end{matrix} \right ] \left [ \begin{matrix} l^{(1)}_1 & l^{(1)}_2 \end{matrix} \right ] \left [ \begin{matrix} l^{(1)}_1 & l^{(1)}_2 \end{matrix} \right ] = \left [ \left [ \begin{matrix} l^{(3)}_1 & l^{(3)}_5 \\\ l^{(3)}_2 & l^{(3)}_6 \end{matrix} \right ] \left [ \begin{matrix} l^{(3)}_4 & l^{(3)}_8 \\\ l^{(3)}_3 & l^{(3)}_7 \end{matrix} \right ] \right ] \end{equation}

Ejemplo 4: Elemento hexaédrico de 27 nodos:

\begin{equation} \left [ \begin{matrix} l^{(1)}_1 \\\ l^{(1)}_2 \\\ l^{(1)}_3 \end{matrix} \right ] \left [ \begin{matrix} l^{(1)}_1 & l^{(1)}_2 & l^{(1)}_3 \end{matrix} \right ] \left [ \begin{matrix} l^{(1)}_1 & l^{(1)}_2 & l^{(1)}_3 \end{matrix} \right ] = \left [ \left [ \begin{matrix} l^{(3)}_1 & l^{(3)}_10 & l^{(3)}_19 \\\ l^{(3)}_2 & l^{(3)}_11 & l^{(3)}_20 \\\ l^{(3)}_3 & l^{(3)}_12 & l^{(3)}_21 \end{matrix} \right ] \left [ \begin{matrix} l^{(3)}_8 & l^{(3)}_17 & l^{(3)}_26 \\\ l^{(3)}_9 & l^{(3)}_18 & l^{(3)}_27 \\\ l^{(3)}_4 & l^{(3)}_13 & l^{(3)}_22 \end{matrix} \right ] \left [ \begin{matrix} l^{(3)}_7 & l^{(3)}_16 & l^{(3)}_25 \\\ l^{(3)}_6 & l^{(3)}_15 & l^{(3)}_24 \\\ l^{(3)}_5 & l^{(3)}_14 & l^{(3)}_23 \end{matrix} \right ] \right ] \end{equation}

Función de forma Lagrangiana unidimensional de 3 nodos


In [3]:
A1 = lagrangiana_1D(x, 3)

for i in range(len(A1)):
    print A1[i]

X1 = np.arange(-1, 1, 0.01)

for i in range(len(A1)):
    Y1 = lambdify(x, A1[i])
    plt.plot(X1, Y1(X1))
    plt.title('Funcion de forma de ' + str(i + 1) + ' nodos')
plt.show()


0.5*x**2 - 0.5*x
-1.0*x**2 + 1.0
0.5*x**2 + 0.5*x

Las ecuaciones obtenidas son:

\begin{eqnarray} l^{(1)}_1 &=& \frac{1}{2} \xi^{2} - \frac{1}{2} \xi \\\ l^{(1)}_2 &=& - \xi^{2} + 1 \\\ l^{(1)}_3 &=& \frac{1}{2} \xi^{2} + \frac{1}{2} \xi \end{eqnarray}

Función de forma rectangular Lagragiana de 9 nodos


In [4]:
A2 = lagrangiana_2D(x, y, 3)
recorrer_matriz_espiral(A2)
B2 = guardar_matriz_espiral(A2)

X2 = np.arange(-1, 1, 0.01)
Y2 = np.arange(-1, 1, 0.01)
X2, Y2 = np.meshgrid(X2, Y2)

for i in range(len(B2)):
    fig = plt.figure()
    Z2 = lambdify((x, y), B2[i])
    ax = fig.add_subplot(111, projection='3d')
    ax.plot_wireframe(X2, Y2, Z2(X2, Y2), rstride=10, cstride=10)
    ax.set_title('Funcion ' + str(i + 1))
plt.show()


0.25*x**2*y**2 - 0.25*x**2*y - 0.25*x*y**2 + 0.25*x*y
-0.5*x**2*y**2 + 0.5*x**2*y + 0.5*y**2 - 0.5*y
0.25*x**2*y**2 - 0.25*x**2*y + 0.25*x*y**2 - 0.25*x*y
-0.5*x**2*y**2 + 0.5*x**2 - 0.5*x*y**2 + 0.5*x
0.25*x**2*y**2 + 0.25*x**2*y + 0.25*x*y**2 + 0.25*x*y
-0.5*x**2*y**2 - 0.5*x**2*y + 0.5*y**2 + 0.5*y
0.25*x**2*y**2 + 0.25*x**2*y - 0.25*x*y**2 - 0.25*x*y
-0.5*x**2*y**2 + 0.5*x**2 + 0.5*x*y**2 - 0.5*x
1.0*x**2*y**2 - 1.0*x**2 - 1.0*y**2 + 1.0

Las ecuaciones obtenidas son:

\begin{eqnarray} l^{(2)}_1 &=& \frac{1}{4} \xi^{2} \eta^{2} - \frac{1}{4} \xi^{2} \eta - \frac{1}{4} \xi \eta^{2} + \frac{1}{4} \xi \eta \\\ l^{(2)}_2 &=& - \frac{1}{2} \xi^{2} \eta^{2} + \frac{1}{2} \xi^{2} \eta + \frac{1}{2} \eta^{2} - \frac{1}{2} \eta \\\ l^{(2)}_3 &=& \frac{1}{4} \xi^{2} \eta^{2} - \frac{1}{4} \xi^{2} \eta + \frac{1}{4} \xi \eta^{2} - \frac{1}{4} \xi \eta \\\ l^{(2)}_4 &=& - \frac{1}{2} \xi^{2} \eta^{2} + \frac{1}{2} \xi^{2} - \frac{1}{2} \xi \eta^{2} + \frac{1}{2} \xi \\\ l^{(2)}_5 &=& \frac{1}{4} \xi^{2} \eta^{2} + \frac{1}{4} \xi^{2} \eta + \frac{1}{4} \xi \eta^{2} + \frac{1}{4} \xi \eta \\\ l^{(2)}_6 &=& - \frac{1}{2} \xi^{2} \eta^{2} - \frac{1}{2} \xi^{2} \eta + \frac{1}{2} \eta^{2} + \frac{1}{2} \eta \\\ l^{(2)}_7 &=& \frac{1}{4} \xi^{2} \eta^{2} + \frac{1}{4} \xi^{2} \eta - \frac{1}{4} \xi \eta^{2} - \frac{1}{4} \xi \eta \\\ l^{(2)}_8 &=& - \frac{1}{2} \xi^{2} \eta^{2} + \frac{1}{2} \xi^{2} + \frac{1}{2} \xi \eta^{2} - \frac{1}{2} \xi \\\ l^{(2)}_9 &=& \xi^{2} \eta^{2} - \xi^{2} - \eta^{2} + 1 \end{eqnarray}

Función de forma hexaédrica Lagragiana de 27 nodos


In [10]:
A3 = lagrangiana_3D(x, y, z, 3)
recorrer_matriz_3d_espiral(A3)
B3 = guardar_matriz_3d_espiral(A3)

mlab.figure(size=(400, 400),bgcolor=(1, 1, 1))
mlab.clf()
xi, eta, zeta = np.ogrid[-1:1:100j, -1:1:100j, -1:1:100j]
s = 0.125*xi**2*eta**2*zeta**2 - 0.125*xi**2*eta**2*zeta - 0.125*xi**2*eta*zeta**2 + 0.125*xi**2*eta*zeta - 0.125*xi*eta**2*zeta**2 + 0.125*xi*eta**2*zeta + 0.125*xi*eta*zeta**2 - 0.125*xi*eta*zeta
p1 = mlab.contour3d(s, contours=40, transparent=True)
mlab.title('Funcion de forma hexaedrica l1', color=(0, 0, 0))

mlab.show()


0.125*x**2*y**2*z**2 - 0.125*x**2*y**2*z - 0.125*x**2*y*z**2 + 0.125*x**2*y*z - 0.125*x*y**2*z**2 + 0.125*x*y**2*z + 0.125*x*y*z**2 - 0.125*x*y*z
-0.25*x**2*y**2*z**2 + 0.25*x**2*y**2*z + 0.25*x**2*y*z**2 - 0.25*x**2*y*z + 0.25*y**2*z**2 - 0.25*y**2*z - 0.25*y*z**2 + 0.25*y*z
0.125*x**2*y**2*z**2 - 0.125*x**2*y**2*z - 0.125*x**2*y*z**2 + 0.125*x**2*y*z + 0.125*x*y**2*z**2 - 0.125*x*y**2*z - 0.125*x*y*z**2 + 0.125*x*y*z
-0.25*x**2*y**2*z**2 + 0.25*x**2*y**2 + 0.25*x**2*y*z**2 - 0.25*x**2*y - 0.25*x*y**2*z**2 + 0.25*x*y**2 + 0.25*x*y*z**2 - 0.25*x*y
0.125*x**2*y**2*z**2 + 0.125*x**2*y**2*z - 0.125*x**2*y*z**2 - 0.125*x**2*y*z + 0.125*x*y**2*z**2 + 0.125*x*y**2*z - 0.125*x*y*z**2 - 0.125*x*y*z
-0.25*x**2*y**2*z**2 - 0.25*x**2*y**2*z + 0.25*x**2*y*z**2 + 0.25*x**2*y*z + 0.25*y**2*z**2 + 0.25*y**2*z - 0.25*y*z**2 - 0.25*y*z
0.125*x**2*y**2*z**2 + 0.125*x**2*y**2*z - 0.125*x**2*y*z**2 - 0.125*x**2*y*z - 0.125*x*y**2*z**2 - 0.125*x*y**2*z + 0.125*x*y*z**2 + 0.125*x*y*z
-0.25*x**2*y**2*z**2 + 0.25*x**2*y**2 + 0.25*x**2*y*z**2 - 0.25*x**2*y + 0.25*x*y**2*z**2 - 0.25*x*y**2 - 0.25*x*y*z**2 + 0.25*x*y
0.5*x**2*y**2*z**2 - 0.5*x**2*y**2 - 0.5*x**2*y*z**2 + 0.5*x**2*y - 0.5*y**2*z**2 + 0.5*y**2 + 0.5*y*z**2 - 0.5*y
-0.25*x**2*y**2*z**2 + 0.25*x**2*y**2*z + 0.25*x**2*z**2 - 0.25*x**2*z + 0.25*x*y**2*z**2 - 0.25*x*y**2*z - 0.25*x*z**2 + 0.25*x*z
0.5*x**2*y**2*z**2 - 0.5*x**2*y**2*z - 0.5*x**2*z**2 + 0.5*x**2*z - 0.5*y**2*z**2 + 0.5*y**2*z + 0.5*z**2 - 0.5*z
-0.25*x**2*y**2*z**2 + 0.25*x**2*y**2*z + 0.25*x**2*z**2 - 0.25*x**2*z - 0.25*x*y**2*z**2 + 0.25*x*y**2*z + 0.25*x*z**2 - 0.25*x*z
0.5*x**2*y**2*z**2 - 0.5*x**2*y**2 - 0.5*x**2*z**2 + 0.5*x**2 + 0.5*x*y**2*z**2 - 0.5*x*y**2 - 0.5*x*z**2 + 0.5*x
-0.25*x**2*y**2*z**2 - 0.25*x**2*y**2*z + 0.25*x**2*z**2 + 0.25*x**2*z - 0.25*x*y**2*z**2 - 0.25*x*y**2*z + 0.25*x*z**2 + 0.25*x*z
0.5*x**2*y**2*z**2 + 0.5*x**2*y**2*z - 0.5*x**2*z**2 - 0.5*x**2*z - 0.5*y**2*z**2 - 0.5*y**2*z + 0.5*z**2 + 0.5*z
-0.25*x**2*y**2*z**2 - 0.25*x**2*y**2*z + 0.25*x**2*z**2 + 0.25*x**2*z + 0.25*x*y**2*z**2 + 0.25*x*y**2*z - 0.25*x*z**2 - 0.25*x*z
0.5*x**2*y**2*z**2 - 0.5*x**2*y**2 - 0.5*x**2*z**2 + 0.5*x**2 - 0.5*x*y**2*z**2 + 0.5*x*y**2 + 0.5*x*z**2 - 0.5*x
-1.0*x**2*y**2*z**2 + 1.0*x**2*y**2 + 1.0*x**2*z**2 - 1.0*x**2 + 1.0*y**2*z**2 - 1.0*y**2 - 1.0*z**2 + 1.0
0.125*x**2*y**2*z**2 - 0.125*x**2*y**2*z + 0.125*x**2*y*z**2 - 0.125*x**2*y*z - 0.125*x*y**2*z**2 + 0.125*x*y**2*z - 0.125*x*y*z**2 + 0.125*x*y*z
-0.25*x**2*y**2*z**2 + 0.25*x**2*y**2*z - 0.25*x**2*y*z**2 + 0.25*x**2*y*z + 0.25*y**2*z**2 - 0.25*y**2*z + 0.25*y*z**2 - 0.25*y*z
0.125*x**2*y**2*z**2 - 0.125*x**2*y**2*z + 0.125*x**2*y*z**2 - 0.125*x**2*y*z + 0.125*x*y**2*z**2 - 0.125*x*y**2*z + 0.125*x*y*z**2 - 0.125*x*y*z
-0.25*x**2*y**2*z**2 + 0.25*x**2*y**2 - 0.25*x**2*y*z**2 + 0.25*x**2*y - 0.25*x*y**2*z**2 + 0.25*x*y**2 - 0.25*x*y*z**2 + 0.25*x*y
0.125*x**2*y**2*z**2 + 0.125*x**2*y**2*z + 0.125*x**2*y*z**2 + 0.125*x**2*y*z + 0.125*x*y**2*z**2 + 0.125*x*y**2*z + 0.125*x*y*z**2 + 0.125*x*y*z
-0.25*x**2*y**2*z**2 - 0.25*x**2*y**2*z - 0.25*x**2*y*z**2 - 0.25*x**2*y*z + 0.25*y**2*z**2 + 0.25*y**2*z + 0.25*y*z**2 + 0.25*y*z
0.125*x**2*y**2*z**2 + 0.125*x**2*y**2*z + 0.125*x**2*y*z**2 + 0.125*x**2*y*z - 0.125*x*y**2*z**2 - 0.125*x*y**2*z - 0.125*x*y*z**2 - 0.125*x*y*z
-0.25*x**2*y**2*z**2 + 0.25*x**2*y**2 - 0.25*x**2*y*z**2 + 0.25*x**2*y + 0.25*x*y**2*z**2 - 0.25*x*y**2 + 0.25*x*y*z**2 - 0.25*x*y
0.5*x**2*y**2*z**2 - 0.5*x**2*y**2 + 0.5*x**2*y*z**2 - 0.5*x**2*y - 0.5*y**2*z**2 + 0.5*y**2 - 0.5*y*z**2 + 0.5*y

Las ecuaciones obtenidas son:

\begin{eqnarray} l^{(3)}_1 &=& \frac{1}{8} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{8} \xi^{2} \eta^{2} \zeta - \frac{1}{8} \xi^{2} \eta \zeta^{2} + \frac{1}{8} \xi^{2} \eta \zeta - \frac{1}{8} \xi \eta^{2} \zeta^{2} + \frac{1}{8} \xi \eta^{2} \zeta + \frac{1}{8} \xi \eta \zeta^{2} - \frac{1}{8} \xi \eta \zeta \\\ l^{(3)}_2 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{4} \xi^{2} \eta^{2} \zeta + \frac{1}{4} \xi^{2} \eta \zeta^{2} - \frac{1}{4} \xi^{2} \eta \zeta + \frac{1}{4} \eta^{2} \zeta^{2} - \frac{1}{4} \eta^{2} \zeta - \frac{1}{4} \eta \zeta^{2} + \frac{1}{4} \eta \zeta \\\ l^{(3)}_3 &=& \frac{1}{8} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{8} \xi^{2} \eta^{2} \zeta - \frac{1}{8} \xi^{2} \eta \zeta^{2} + \frac{1}{8} \xi^{2} \eta \zeta + \frac{1}{8} \xi \eta^{2} \zeta^{2} - \frac{1}{8} \xi \eta^{2} \zeta - \frac{1}{8} \xi \eta \zeta^{2} + \frac{1}{8} \xi \eta \zeta \\\ l^{(3)}_12 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{4} \xi^{2} \eta^{2} + \frac{1}{4} \xi^{2} \eta \zeta^{2} - \frac{1}{4} \xi^{2} \eta - \frac{1}{4} \xi \eta^{2} \zeta^{2} + \frac{1}{4} \xi \eta^{2} + \frac{1}{4} \xi \eta \zeta^{2} - \frac{1}{4} \xi \eta \\\ l^{(3)}_21 &=& \frac{1}{8} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{8} \xi^{2} \eta^{2} \zeta - \frac{1}{8} \xi^{2} \eta \zeta^{2} - \frac{1}{8} \xi^{2} \eta \zeta + \frac{1}{8} \xi \eta^{2} \zeta^{2} + \frac{1}{8} \xi \eta^{2} \zeta - \frac{1}{8} \xi \eta \zeta^{2} - \frac{1}{8} \xi \eta \zeta \\\ l^{(3)}_20 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{4} \xi^{2} \eta^{2} \zeta + \frac{1}{4} \xi^{2} \eta \zeta^{2} + \frac{1}{4} \xi^{2} \eta \zeta + \frac{1}{4} \eta^{2} \zeta^{2} + \frac{1}{4} \eta^{2} \zeta - \frac{1}{4} \eta \zeta^{2} - \frac{1}{4} \eta \zeta \\\ l^{(3)}_19 &=& \frac{1}{8} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{8} \xi^{2} \eta^{2} \zeta - \frac{1}{8} \xi^{2} \eta \zeta^{2} - \frac{1}{8} \xi^{2} \eta \zeta - \frac{1}{8} \xi \eta^{2} \zeta^{2} - \frac{1}{8} \xi \eta^{2} \zeta + \frac{1}{8} \xi \eta \zeta^{2} + \frac{1}{8} \xi \eta \zeta \\\ l^{(3)}_10 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{4} \xi^{2} \eta^{2} + \frac{1}{4} \xi^{2} \eta \zeta^{2} - \frac{1}{4} \xi^{2} \eta + \frac{1}{4} \xi \eta^{2} \zeta^{2} - \frac{1}{4} \xi \eta^{2} - \frac{1}{4} \xi \eta \zeta^{2} + \frac{1}{4} \xi \eta \\\ l^{(3)}_11 &=& \frac{1}{2} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{2} \xi^{2} \eta^{2} - \frac{1}{2} \xi^{2} \eta \zeta^{2} + \frac{1}{2} \xi^{2} \eta - \frac{1}{2} \eta^{2} \zeta^{2} + \frac{1}{2} \eta^{2} + \frac{1}{2} \eta \zeta^{2} - \frac{1}{2} \eta \\\ l^{(3)}_8 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{4} \xi^{2} \eta^{2} \zeta + \frac{1}{4} \xi^{2} \zeta^{2} - \frac{1}{4} \xi^{2} \zeta + \frac{1}{4} \xi \eta^{2} \zeta^{2} - \frac{1}{4} \xi \eta^{2} \zeta - \frac{1}{4} \xi \zeta^{2} + \frac{1}{4} \xi \zeta \\\ l^{(3)}_9 &=& \frac{1}{2} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{2} \xi^{2} \eta^{2} \zeta - \frac{1}{2} \xi^{2} \zeta^{2} + \frac{1}{2} \xi^{2} \zeta - \frac{1}{2} \eta^{2} \zeta^{2} + \frac{1}{2} \eta^{2} \zeta + \frac{1}{2} \zeta^{2} - \frac{1}{2} \zeta \\\ l^{(3)}_13 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{4} \xi^{2} \eta^{2} \zeta + \frac{1}{4} \xi^{2} \zeta^{2} - \frac{1}{4} \xi^{2} \zeta - \frac{1}{4} \xi \eta^{2} \zeta^{2} + \frac{1}{4} \xi \eta^{2} \zeta + \frac{1}{4} \xi \zeta^{2} - \frac{1}{4} \xi \zeta \\\ l^{(3)}_22 &=& \frac{1}{2} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{2} \xi^{2} \eta^{2} - \frac{1}{2} \xi^{2} \zeta^{2} + \frac{1}{2} \xi^{2} + \frac{1}{2} \xi \eta^{2} \zeta^{2} - \frac{1}{2} \xi \eta^{2} - \frac{1}{2} \xi \zeta^{2} + \frac{1}{2} \xi \\\ l^{(3)}_27 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{4} \xi^{2} \eta^{2} \zeta + \frac{1}{4} \xi^{2} \zeta^{2} + \frac{1}{4} \xi^{2} \zeta - \frac{1}{4} \xi \eta^{2} \zeta^{2} - \frac{1}{4} \xi \eta^{2} \zeta + \frac{1}{4} \xi \zeta^{2} + \frac{1}{4} \xi \zeta \\\ l^{(3)}_26 &=& \frac{1}{2} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{2} \xi^{2} \eta^{2} \zeta - \frac{1}{2} \xi^{2} \zeta^{2} - \frac{1}{2} \xi^{2} \zeta - \frac{1}{2} \eta^{2} \zeta^{2} - \frac{1}{2} \eta^{2} \zeta + \frac{1}{2} \zeta^{2} + \frac{1}{2} \zeta \\\ l^{(3)}_17 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{4} \xi^{2} \eta^{2} \zeta + \frac{1}{4} \xi^{2} \zeta^{2} + \frac{1}{4} \xi^{2} \zeta + \frac{1}{4} \xi \eta^{2} \zeta^{2} + \frac{1}{4} \xi \eta^{2} \zeta - \frac{1}{4} \xi \zeta^{2} - \frac{1}{4} \xi \zeta \\\ l^{(3)}_18 &=& \frac{1}{2} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{2} \xi^{2} \eta^{2} - \frac{1}{2} \xi^{2} \zeta^{2} + \frac{1}{2} \xi^{2} - \frac{1}{2} \xi \eta^{2} \zeta^{2} + \frac{1}{2} \xi \eta^{2} + \frac{1}{2} \xi \zeta^{2} - \frac{1}{2} \xi \\\ l^{(3)}_14 &=& - \xi^{2} \eta^{2} \zeta^{2} + \xi^{2} \eta^{2} + \xi^{2} \zeta^{2} - \xi^{2} + \eta^{2} \zeta^{2} - \eta^{2} - \zeta^{2} + 1 \\\ l^{(3)}_7 &=& \frac{1}{8} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{8} \xi^{2} \eta^{2} \zeta + \frac{1}{8} \xi^{2} \eta \zeta^{2} - \frac{1}{8} \xi^{2} \eta \zeta - \frac{1}{8} \xi \eta^{2} \zeta^{2} + \frac{1}{8} \xi \eta^{2} \zeta - \frac{1}{8} \xi \eta \zeta^{2} + \frac{1}{8} \xi \eta \zeta \\\ l^{(3)}_6 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{4} \xi^{2} \eta^{2} \zeta - \frac{1}{4} \xi^{2} \eta \zeta^{2} + \frac{1}{4} \xi^{2} \eta \zeta + \frac{1}{4} \eta^{2} \zeta^{2} - \frac{1}{4} \eta^{2} \zeta + \frac{1}{4} \eta \zeta^{2} - \frac{1}{4} \eta \zeta \\\ l^{(3)}_5 &=& \frac{1}{8} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{8} \xi^{2} \eta^{2} \zeta + \frac{1}{8} \xi^{2} \eta \zeta^{2} - \frac{1}{8} \xi^{2} \eta \zeta + \frac{1}{8} \xi \eta^{2} \zeta^{2} - \frac{1}{8} \xi \eta^{2} \zeta + \frac{1}{8} \xi \eta \zeta^{2} - \frac{1}{8} \xi \eta \zeta \\\ l^{(3)}_14 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{4} \xi^{2} \eta^{2} - \frac{1}{4} \xi^{2} \eta \zeta^{2} + \frac{1}{4} \xi^{2} \eta - \frac{1}{4} \xi \eta^{2} \zeta^{2} + \frac{1}{4} \xi \eta^{2} - \frac{1}{4} \xi \eta \zeta^{2} + \frac{1}{4} \xi \eta \\\ l^{(3)}_23 &=& \frac{1}{8} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{8} \xi^{2} \eta^{2} \zeta + \frac{1}{8} \xi^{2} \eta \zeta^{2} + \frac{1}{8} \xi^{2} \eta \zeta + \frac{1}{8} \xi \eta^{2} \zeta^{2} + \frac{1}{8} \xi \eta^{2} \zeta + \frac{1}{8} \xi \eta \zeta^{2} + \frac{1}{8} \xi \eta \zeta \\\ l^{(3)}_24 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{4} \xi^{2} \eta^{2} \zeta - \frac{1}{4} \xi^{2} \eta \zeta^{2} - \frac{1}{4} \xi^{2} \eta \zeta + \frac{1}{4} \eta^{2} \zeta^{2} + \frac{1}{4} \eta^{2} \zeta + \frac{1}{4} \eta \zeta^{2} + \frac{1}{4} \eta \zeta \\\ l^{(3)}_25 &=& \frac{1}{8} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{8} \xi^{2} \eta^{2} \zeta + \frac{1}{8} \xi^{2} \eta \zeta^{2} + \frac{1}{8} \xi^{2} \eta \zeta - \frac{1}{8} \xi \eta^{2} \zeta^{2} - \frac{1}{8} \xi \eta^{2} \zeta - \frac{1}{8} \xi \eta \zeta^{2} - \frac{1}{8} \xi \eta \zeta \\\ l^{(3)}_16 &=& - \frac{1}{4} \xi^{2} \eta^{2} \zeta^{2} + \frac{1}{4} \xi^{2} \eta^{2} - \frac{1}{4} \xi^{2} \eta \zeta^{2} + \frac{1}{4} \xi^{2} \eta + \frac{1}{4} \xi \eta^{2} \zeta^{2} - \frac{1}{4} \xi \eta^{2} + \frac{1}{4} \xi \eta \zeta^{2} - \frac{1}{4} \xi \eta \\\ l^{(3)}_15 &=& \frac{1}{2} \xi^{2} \eta^{2} \zeta^{2} - \frac{1}{2} \xi^{2} \eta^{2} + \frac{1}{2} \xi^{2} \eta \zeta^{2} - \frac{1}{2} \xi^{2} \eta - \frac{1}{2} \eta^{2} \zeta^{2} + \frac{1}{2} \eta^{2} - \frac{1}{2} \eta \zeta^{2} + \frac{1}{2} \eta \end{eqnarray}

In [ ]: