pysdic.compute_triangle_6_shape_functions#
- compute_triangle_6_shape_functions(natural_coordinates, return_derivatives=False, *, default=0.0)[source]#
Compute the shape functions for a 6-node triangle for given
natural_coordinates\((\xi, \eta)\).Note
Input
natural_coordinateswill be converted tonumpy.float64.Output arrays will be
numpy.float64.
- Parameters:
natural_coordinates (ArrayLike) – Natural coordinates where to evaluate the shape functions. The array must have shape \((N_{p}, 2)\), where \(N_{p}\) is the number of points to evaluate.
return_derivatives (
bool, optional) – IfTrue, the function will also return the first derivatives of the shape functions with respect to the natural coordinates. By default,False.default (Real, optional) – Default value to assign to shape functions when the input natural coordinates are out of the valid range (i.e., not in \(\xi, \eta \in [0, 1]\) with \(\xi + \eta \leq 1\)). By default,
0.0.
- Returns:
shape_functions (
numpy.ndarray) – Shape functions evaluated at the given natural coordinates. The returned array has shape \((N_{p}, 6)\), where each row corresponds to a point and each column to a node.shape_function_derivatives (
numpy.ndarray, optional) – Ifreturn_derivativesisTrue, the function also returns an array of the first derivatives of the shape functions with respect to the natural coordinates. The returned array has shape \((N_{p}, 6, 2)\).
- Raises:
If the input
natural_coordinatescannot be converted to a numpy array. - If the inputreturn_derivativesis not a boolean. - If the inputdefaultis not a real number.
If the input
natural_coordinatesdoes not have shape \((N_{p}, 2)\).
- Return type:
Notes
A 6-node triangle represented in the figure below has the following shape functions:
Node No.
\((\xi, \eta)\)
Shape Function \(N\)
First Derivative \((\frac{dN}{d\xi}, \frac{dN}{d\eta})\)
1
\((0, 0)\)
\(N_1(\xi, \eta) = (1 - \xi - \eta)(1 - 2\xi - 2\eta)\)
\((-3 + 4\xi + 4\eta, -3 + 4\xi + 4\eta)\)
2
\((1, 0)\)
\(N_2(\xi, \eta) = \xi(2\xi - 1)\)
\((4\xi - 1, 0)\)
3
\((0, 1)\)
\(N_3(\xi, \eta) = \eta(2\eta - 1)\)
\((0, 4\eta - 1)\)
4
\((0.5, 0)\)
\(N_4(\xi, \eta) = 4\xi(1 - \xi - \eta)\)
\((4 - 8\xi - 4\eta, -4\xi)\)
5
\((0.5, 0.5)\)
\(N_5(\xi, \eta) = 4\xi\eta\)
\((4\eta, 4\xi)\)
6
\((0, 0.5)\)
\(N_6(\xi, \eta) = 4\eta(1 - \xi - \eta)\)
\((-4\eta, 4 - 4\xi - 8\eta)\)
See also
pysdic.compute_triangle_3_shape_functionsShape functions for 3-node triangle 2D-elements.
pysdic.get_triangle_6_gauss_pointsGauss integration points for 6-node triangle 2D-elements.
Examples
Compute shape functions without derivatives for 3 valid points and 1 invalid point:
1import numpy 2from pysdic import compute_triangle_6_shape_functions 3 4coords = numpy.array([[0.0, 0.0], [0.5, 0.0], [0.0, 0.5], [0.7, 0.5]]) 5shape_functions = compute_triangle_6_shape_functions(coords) 6print("Shape function values:") 7print(shape_functions)
Shape function values: [[1. 0. 0. 0. 0. 0. ] [0. 0 0. 1. 0. 0. ] [0. 0. 0. 0. 0. 1. ] [0. 0. 0. 0. 0. 0. ]]