class_docstr: Implementation of reduced HCT triangular element with explicit shape
  functions.
  
  Computes z, dz, d2z and the element stiffness matrix for bending energy:
  E(f) = integral( (d2z/dx2 + d2z/dy2)**2 dA)
  
  *** Reference for the shape functions: ***
  [1] Basis functions for general Hsieh-Clough-Tocher _triangles, complete or
      reduced.
      Michel Bernadou, Kamal Hassan
      International Journal for Numerical Methods in Engineering.
      17(5):784 - 789.  2.01
  
  *** Element description: ***
  9 dofs: z and dz given at 3 apex
  C1 (conform)
class_docstr_tok: ["Implementation","of","reduced","HCT","triangular","element","with","explicit","shape","functions",".","Computes","z",",","dz",",","d2z","and","the","element","stiffness","matrix","for","bending","energy",":","E","(","f",")","=","integral","(","(","d2z\/dx2","+","d2z\/dy2",")","*","*","2","dA",")","*","*","*","Reference","for","the","shape","functions",":","*","*","*","[","1","]","Basis","functions","for","general","Hsieh-Clough-Tocher","_triangles",",","complete","or","reduced",".","Michel","Bernadou",",","Kamal","Hassan","International","Journal","for","Numerical","Methods","in","Engineering",".","17","(","5",")",":784","-","789",".","2.01","*","*","*","Element","description",":","*","*","*","9","dofs",":","z","and","dz","given","at","3","apex","C1","(","conform",")"]
docstr: Parameters
  ----------
  *alpha* is a (N x 3 x 1) array (array of column-matrices) of
  barycentric coordinates
  *ecc* is a (N x 3 x 1) array (array of column-matrices) of triangle
  eccentricities
  
  Returns
  -------
  Returns the arrays d2sdksi2 (N x 3 x 1) Hessian of shape functions
  expressed in covariant coordinates in first apex basis.
docstr_tok: ["Parameters","--","--","--","--","--","*","alpha","*","is","a","(","N","x","3","x","1",")","array","(","array","of","column-matrices",")","of","barycentric","coordinates","*","ecc","*","is","a","(","N","x","3","x","1",")","array","(","array","of","column-matrices",")","of","triangle","eccentricities","Returns","--","--","--","-","Returns","the","arrays","d2sdksi2","(","N","x","3","x","1",")","Hessian","of","shape","functions","expressed","in","covariant","coordinates","in","first","apex","basis","."]
code: def get_d2Sidksij2(self, alpha, ecc):
      """
      Parameters
      ----------
      *alpha* is a (N x 3 x 1) array (array of column-matrices) of
      barycentric coordinates
      *ecc* is a (N x 3 x 1) array (array of column-matrices) of triangle
      eccentricities
  
      Returns
      -------
      Returns the arrays d2sdksi2 (N x 3 x 1) Hessian of shape functions
      expressed in covariant coordinates in first apex basis.
      """
      subtri = np.argmin(alpha, axis=1)[:, 0]
      ksi = _roll_vectorized(alpha, -subtri, axis=0)
      E = _roll_vectorized(ecc, -subtri, axis=0)
      x = ksi[:, 0, 0]
      y = ksi[:, 1, 0]
      z = ksi[:, 2, 0]
      d2V = _to_matrix_vectorized(
          [
              [6.0 * x, 6.0 * x, 6.0 * x],
              [6.0 * y, 0.0, 0.0],
              [0.0, 6.0 * z, 0.0],
              [2.0 * z, 2.0 * z - 4.0 * x, 2.0 * z - 2.0 * x],
              [2.0 * y - 4.0 * x, 2.0 * y, 2.0 * y - 2.0 * x],
              [2.0 * x - 4.0 * y, 0.0, -2.0 * y],
              [2.0 * z, 0.0, 2.0 * y],
              [0.0, 2.0 * y, 2.0 * z],
              [0.0, 2.0 * x - 4.0 * z, -2.0 * z],
              [-2.0 * z, -2.0 * y, x - y - z],
          ]
      )
      # Puts back d2V in first apex basis
      d2V = d2V @ _extract_submatrices(
          self.rotate_d2V, subtri, block_size=3, axis=0
      )
      prod = self.M @ d2V
      prod += _scalar_vectorized(E[:, 0, 0], self.M0 @ d2V)
      prod += _scalar_vectorized(E[:, 1, 0], self.M1 @ d2V)
      prod += _scalar_vectorized(E[:, 2, 0], self.M2 @ d2V)
      d2sdksi2 = _roll_vectorized(prod, 3 * subtri, axis=0)
      return d2sdksi2
  
imports: import numpy
  from matplotlib import _api
  from matplotlib.tri import Triangulation
  from matplotlib.tri._trifinder import TriFinder
  from matplotlib.tri._tritools import TriAnalyzer
label_desc: Use image node_id 4 for calling the _ReducedHCT_Element obj's underlying member method code with example usage: obj.get_d2Sidksij2(alpha, ecc) and returns: d2sdksi2