Flat-facet Reissner–Mindlin triangle with linear translations, assumed covariant shear, and two bubble rotations condensed at element level.
01 Model and scope
The flat-facet Reissner–Mindlin triangle combines membrane strain, curvature and assumed transverse shear. Two internal bubble rotations are eliminated by static condensation, leaving only the nodal degrees of freedom; this does not make the route equivalent to a four-node shell.
Route assumptions and calculation checks
- The public matrix retains 18 nodal DOFs after static condensation of two internal bubble rotations.
- MITC tying changes the shear operator; membrane and bending operators follow the P1/enriched interpolation.
- Evidence is analysis- and material-specific; a shell family name is not blanket maturity.
Useful foundations and prerequisites
02 Essential equations and symbols
Definitions and conventions
- In-plane membrane strain vector.
- Curvature vector from rotation gradients.
- Assumed transverse-shear strain.
- Kbb, Kbn
- Internal-bubble and bubble-to-nodal stiffness blocks.
03 Step by step derivation
Follow the assumptions, equations and discrete operations in order. The full explanation stays visible.
1 · Reissner–Mindlin triangle kinematics
The triangular facet carries three translations and three rotations at each of its three nodes (18 retained DOFs). In the local frame, the mid-surface displacement and two rotations define in-plane membrane strain, curvature, and transverse shear. The interpolation is flat-facet; it is not interchangeable with the four-node MITC4 shell.
2 · Virtual work and constitutive resultants
The weak form balances membrane-force, bending-moment, and transverse-shear work against external loads. An isotropic section uses A, D, and As; a laminate introduces extension–bending coupling B. The assumed MITC interpolation modifies the shear operator, while membrane and bending follow the declared linear/enriched fields.
3 · Two internal bubble rotations and MITC shear
The formulation enriches the triangle with two internal rotations α=(αx,αy), giving an expanded 20-DOF system before condensation. Assumed covariant shear is reconstructed from tying data. A seven-point degree-five Dunavant rule integrates the expanded stiffness. The bubble variables improve the local interpolation but are not global mesh DOFs.
The implementation solves the small internal system; it checks conditioning and the condensation residual rather than forming an unchecked inverse.
4 · Static condensation and dynamic mass
Partition the expanded matrix into nodal and internal blocks. Eliminating α gives the Schur complement on the 18 retained nodal DOFs. The same Guyan transformation projects mass so the eliminated rotations remain dynamically consistent. Loads on edges and surfaces are integrated consistently on the triangle.
5 · Evidence and release boundary
Tests and correlations must cover triangle patches, condensed stiffness, mass consistency, curved laminate examples, dynamics, and the exact material/analysis route. A critical version boundary is visible in the linked technical docs: their front matter says applicable_version ≥0.3.0. The implementation file is present at the v0.2.11 source tag, but those later-scope derivation notes must not be presented as proof that every 0.2.11 route is qualified. Keep the status label and registry route visible.
04 Algorithm and implementation
Source excerpt · v0.2.11
The expanded 20-DOF matrix is condensed locally. Only the 18 retained nodal DOFs are returned to the global assembler; the same transformation is reused for matrix components and mass.
expanded = self._expanded_stiffness_components(coords_2d, material)
total = sum(
expanded.values(),
start=np.zeros((EXPANDED_DOF_COUNT, EXPANDED_DOF_COUNT)),
)
transform = condensation_transform(total, RETAINED_DOF_COUNT)
return {
key: condense_matrix(value, transform)
for key, value in expanded.items()
}, transform05 Verification and limitations
ROUTE-DEPENDENT · inspect exact analysis and material row
Triangle patches, curved laminates, dynamic comparisons, and Code_Aster correlations have separate records.
Each reference supports its own model, observable and analysis route. Read the original contract and limitations before transferring a conclusion.