Triangle class

Coordinate-free formulation for a finite deformation bi-linear triangle.

Theory
\[\mathbf{X}=\mathbf{X}_0+\mathbf{G}_i \xi^i \quad i=1,2,3 \quad \xi^i \geqslant 0 ~\&~ \xi^1+\xi^2+\xi^3 \leq 1\]
\[d\mathbf{X}=\mathbf{G}_i d \xi^i \rightarrow d \xi^i=\mathbf{G}^i \cdot d \mathbf{X} \quad w/ ~~ \mathbf{G}^i \mathbf{G}_j=\delta_j^i\]
\[\mathbf{x}=\mathbf{x}_0+ \mathbf{g}_i \xi^i\]
\[d\mathbf{x}=\mathbf{g}_i d \xi^i=\left(\mathbf{g} \otimes \mathbf{G}^i\right) \cdot d \mathbf{X}=\mathbf{F} \cdot d\mathbf{\bar{x}} \Longrightarrow \mathbf{F}=\mathbf{g}_i \otimes \mathbf{G}^i\]
\[\mathbf{F}^t \mathbf{F}=g_{i j} \mathbf{G}^i \otimes \mathbf{G}^j \rightarrow \mathbf{E}=\frac{1}{2}\left(\mathbf{F}^t \mathbf{F}-\mathbf{1}\right)=\frac{1}{2}\left(g_{i j}-G_{i j}\right) \mathbf{G}^i \otimes \mathbf{G}^j\]
\[\begin{split}\delta \mathbf{E}=\delta\mathbf{g}_i \otimes \mathbf{G}^i=\left(\delta \mathbf{x}_i-\delta \mathbf{x}_0\right) \otimes \mathbf{G}^i=\delta \mathbf{x}_\alpha \otimes \mathbf{G}^\alpha \quad \underline{\text { note }}: \quad \begin{array}{l} i=1,2,3 \\ \alpha=0,1,2,3 \end{array}\end{split}\]

where \(\mathbf{G}^0=-\mathbf{G}^1-\mathbf{G}^2-\mathbf{G}^3\) and

\[\delta\mathbf{F} =\left(\mathbf{G}^\alpha \otimes \delta\mathbf{x}_\alpha\right)\left(\mathbf{g}_i \otimes \mathbf{G}^i\right) =\delta\mathbf{x}_\alpha \cdot \underbrace{\mathbf{g}_i \otimes \overbrace{\mathbf{G}^\alpha \otimes \mathbf{G}^i}^{\bar{\mathbf{G}}^a}}_{=: {\mathbf{B}^{\alpha}}^t} =\delta\mathbf{x}_\alpha \cdot{\mathbf{B^{\alpha}}^t}\]

Parent class

See also

Class doc

class femedu.elements.linear.Triangle.Triangle(node0, node1, node2, material, label=None)

class: representing a 3-noded plane triangle

computeSurfaceLoads()

compute surface loads using faces

This method should be called during updateState() by every element supporting surface loads

mapGaussPoints(var)

Initiate mapping of Gauss-point values to nodes. This method is an internal method and should not be called by the user. Calling that method explicitly will cause faulty nodal values.

Parameters:

var – variable code for a variable to be mapped from Gauss-points to nodes

resetLoads()

default implementation for resetting element loads.

setSurfaceLoad(face, pn, ps=0)

face ID

nodes defining that face

0

node 0 to node 1

1

node 1 to node 2

2

node 2 to node 0

Parameters:
  • face – face ID for the laoded face

  • pn – magnitude of distributed normal load per area. Tension on a surface is positive.

  • ps – magnitude of distributed shear load per area. Positive direction is defined as shown in the above table.

updateState()