3.6.19Spacecraft Structures & Systems Engineering

FEM for structures — assembling global stiffness

3,267 words15 min readdifficulty · medium

Overview

The global stiffness matrix assembly is the heart of the finite element method. We take local element stiffness matrices (already computed in the element's own coordinate system) and assemble them into one giant system matrix that represents the entire structure. This transforms a complex continuous structure into a solvable discrete system of linear equations: Ku=F\mathbf{K}\mathbf{u} = \mathbf{F}.

Why this matters for spacecraft: Every structural analysis—from launch loads to thermal distortion—relies on this assembly step. A solar panel bracket, a satellite bus, or a rocket interstage is meshed into thousands of elements, and we must correctly assemble them to predict deformations, stresses, and failure modes.


[!intuition] The Core Idea

Think of a structure as a network of springs. Each finite element (beam, truss bar, shell) is like a spring with its own stiffness. When you connect them at nodes, forces at shared nodes must balance, and displacements must be compatible (no gaps or overlaps).

The assembly process:

  1. Each element "votes" for the global stiffness at its connected nodes
  2. We add (superimpose) all element contributions at shared nodes
  3. The result: one big matrix where row/column ii corresponds to degree-of-freedom (DOF) ii globally

Key insight: Elements share nodes → their stiffness matrices overlap at those DOFs → we sum the overlapping entries. This is the direct stiffness method.


[!definition] Key Concepts

Global Stiffness Matrix K\mathbf{K}: A square matrix of size N×NN \times N, where NN is the total number of DOFs in the mesh. Entry KijK_{ij} is the force at DOF ii due to unit displacement at DOF jj (all other DOFs fixed).

Element Stiffness Matrix k(e)\mathbf{k}^{(e)}: The stiffness of element ee in its local coordinate system. For a 2-node bar element with2 DOFs per node (4 DOFs total), k(e)\mathbf{k}^{(e)} is 4×44 \times 4.

Degrees of Freedom (DOF): The independent displacement/rotation variables. A3D node has 6 DOFs: ux,uy,uzu_x, u_y, u_z (translations) and θx,θy,θz\theta_x, \theta_y, \theta_z (rotations). We number all DOFs sequentially across the mesh.

Connectivity (Topology): The mapping from element-local node numbers to global node numbers. If element ee connects global nodes 5 and 12, we know exactly where to add k(e)\mathbf{k}^{(e)} into K\mathbf{K}.


[!formula] Derivation from First Principles

Step 1: Energy Principle (Why Assembly Works)

The total strain energy of the structure is the sum of strain energies in all elements:

U=e=1neU(e)=e=1ne12u(e)Tk(e)u(e)U = \sum_{e=1}^{ne} U^{(e)} = \sum_{e=1}^{n_e} \frac{1}{2} \mathbf{u}^{(e)T} \mathbf{k}^{(e)} \mathbf{u}^{(e)}

where u(e)\mathbf{u}^{(e)} is the element displacement vector (extracted from the global displacement vector u\mathbf{u}).

Why this step? Energy must be additive. Each element contributes independently to the total.

Using the Boolean localization matrix L(e)\mathbf{L}^{(e)} that extracts element DOFs from global DOFs:

u(e)=L(e)u\mathbf{u}^{(e)} = \mathbf{L}^{(e)} \mathbf{u}

Substitute:

U=12e=1ne(L(e)u)Tk(e)(L(e)u)=12e=1neuTL(e)Tk(e)L(e)uU = \frac{1}{2} \sum_{e=1}^{n_e} (\mathbf{L}^{(e)} \mathbf{u})^T \mathbf{k}^{(e)} (\mathbf{L}^{(e)} \mathbf{u}) = \frac{1}{2} \sum_{e=1}^{n_e} \mathbf{u}^T \mathbf{L}^{(e)T} \mathbf{k}^{(e)} \mathbf{L}^{(e)} \mathbf{u}

Why this step? We factor out the global displacement vector u\mathbf{u} to identify the global stiffness.

Since u\mathbf{u} is global and common, the total energy becomes:

U=12uT(e=1neL(e)Tk(e)L(e))uU = \frac{1}{2} \mathbf{u}^T \left( \sum_{e=1}^{n_e} \mathbf{L}^{(e)T} \mathbf{k}^{(e)} \mathbf{L}^{(e)} \right) \mathbf{u}

Identify the global stiffness:

K=e=1neL(e)Tk(e)L(e)\boxed{\mathbf{K} = \sum_{e=1}^{n_e} \mathbf{L}^{(e)T} \mathbf{k}^{(e)} \mathbf{L}^{(e)}}

Why this step? The quadratic form 12uTKu\frac{1}{2}\mathbf{u}^T \mathbf{K} \mathbf{u} defines the global stiffness matrix. The sum of transformed element stiffnesses gives us K\mathbf{K}.

Step 2: Practical Assembly Algorithm

The matrix multiplication L(e)Tk(e)L(e)\mathbf{L}^{(e)T} \mathbf{k}^{(e)} \mathbf{L}^{(e)} is expensive. In practice, we use the scatter operation:

For each element ee:

  1. Compute k(e)\mathbf{k}^{(e)} (in local coords, transform to global if needed)
  2. Look up the global DOF numbers for element ee's nodes: [g1,g2,,gm][g_1, g_2, \ldots, g_m]
  3. Add each entry kij(e)k^{(e)}_{ij} to Kgi,gjK_{g_i, g_j}

Algorithm in pseudo-code:

Initialize K = zeros(N, N)
for each element e:
    k_e = element_stiffness(e)
    dofs = global_dof_indices(e)  # e.g., [3, 4, 9 10] for a 2-node bar
    for in range(len(dofs)):
        for j in range(len(dofs)):
            K[dofs[i], dofs[j]] += k_e[i, j]  # Scatter-add

Why scatter-add? Because L(e)Tk(e)L(e)\mathbf{L}^{(e)T} \mathbf{k}^{(e)} \mathbf{L}^{(e)} is mostly zeros—it only populates entries at the DOFs that element ee touches. Direct addition is faster than matrix multiplication.

Step 3: Properties of K\mathbf{K}

Symmetry: If each k(e)\mathbf{k}^{(e)} is symmetric (Maxwell-Betti reciprocal theorem), then K\mathbf{K} is symmetric.

Sparsity: K\mathbf{K} is extremely sparse. Entry Kij0K_{ij} \neq 0 only if DOF ii and DOF jj belong to the same element. For a mesh with NN DOFs, typical bandwidth is O(N)\mathcal{O}(\sqrt{N}) in2D, O(N2/3)\mathcal{O}(N^{2/3}) in 3D.

Positive semi-definite (before BCs): uTKu=2U0\mathbf{u}^T \mathbf{K} \mathbf{u} = 2U \geq 0. Rigid-body modes (translations/rotations with zero strain) give eigenvalues. After applying boundary conditions (fixing DOFs), K\mathbf{K} becomes positive definite → invertible.


[!example] Worked Example 1: Two-Bar Truss

Setup:

  • 2 bar elements in series along xx-axis
  • 3 nodes: Node 1 (fixed), Node 2 (middle), Node 3 (free end, force FF)
  • Each bar: length LL, area AA, Young's modulus EE
  • Each node has 1 DOF (horizontal displacement uu)

Element stiffness (1D bar):

k(e)=EAL[1111]\mathbf{k}^{(e)} = \frac{EA}{L} \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}

Why this formula? From Hooke's law: force =EAL(ΔL)=EAL(ujui)= \frac{EA}{L}(\Delta L) = \frac{EA}{L}(u_j - u_i). Enforcing equilibrium at both nodes gives the 2×22 \times 2 stiffness.

Global DOF numbering:

  • Node 1 → DOF 1
  • Node 2 → DOF 2
  • Node 3 → DOF 3

Element 1 (Nodes 1-2): k(1)=EAL[1111],DOFs: [1,2]\mathbf{k}^{(1)} = \frac{EA}{L} \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}, \quad \text{DOFs: } [1, 2]

Scatter into K\mathbf{K} (3×3): KK+EAL[11011000]\mathbf{K} \leftarrow \mathbf{K} + \frac{EA}{L} \begin{bmatrix} 1 & -1 & 0 \\ -1 & 1 & 0 \\ 0 & 0 \end{bmatrix}

Why this step? Element 1 connects DOFs 1 and 2. We place its 2×22\times 2 block in rows/columns 1-2 of the global 3×33\times 3 matrix.

Element 2 (Nodes 2-3): k(2)=EAL[1111],DOFs: [2,3]\mathbf{k}^{(2)} = \frac{EA}{L} \begin{bmatrix} 1 & -1 \\ -1 & 1 \end{bmatrix}, \quad \text{DOFs: } [2, 3]

Scatter: KK+EAL[000011011]\mathbf{K} \leftarrow \mathbf{K} + \frac{EA}{L} \begin{bmatrix} 0 & 0 & 0 \\ 0 & 1 & -1 \\ 0 & -1 & 1 \end{bmatrix}

Assembled global stiffness: K=EAL[110121011]\mathbf{K} = \frac{EA}{L} \begin{bmatrix} 1 & -1 & 0 \\ -1 & 2 & -1 \\ 0 & -1 & 1 \end{bmatrix}

Why does K22=2K_{22} = 2? Node 2 is shared by both elements. Both contribute EAL1\frac{EA}{L} \cdot 1 to K22K_{22}, so we sum: 1+1=21 + 1 = 2.

Apply boundary condition: Fix Node 1 → u1=0u_1 = 0 → remove row/column 1:

Kreduced=EAL[21 11],Freduced=[0 F]\mathbf{K}_{\text{reduced}} = \frac{EA}{L} \begin{bmatrix} 2 & -1 \ -1 & 1 \end{bmatrix}, \quad \mathbf{F}_{\text{reduced}} = \begin{bmatrix} 0 \ F \end{bmatrix}

Solve: [2111][u2u3]=LEA[0F]\begin{bmatrix} 2 & -1 \\ -1 & 1 \end{bmatrix} \begin{bmatrix} u_2 \\ u_3 \end{bmatrix} = \frac{L}{EA} \begin{bmatrix} 0 \\ F \end{bmatrix}

From the second equation: u2+u3=FLEA-u_2 + u_3 = \frac{FL}{EA}. From the first: 2u2u3=0u3=2u22u_2 - u_3 = 0 \Rightarrow u_3 = 2u_2.

Substitute: u2+2u2=FLEAu2=FLEA-u_2 + 2u_2 = \frac{FL}{EA} \Rightarrow u_2 = \frac{FL}{EA}. Then u3=2FLEAu_3 = \frac{2FL}{EA}.

Physical check: Total elongation is u3=2FLEAu_3 = \frac{2FL}{EA}, which matches two bars in series: ΔLtotal=FLEA+FLEA=2FLEA\Delta L_{\text{total}} = \frac{FL}{EA} + \frac{FL}{EA} = \frac{2FL}{EA}. ✓


[!example] Worked Example 2: D Truss with Coordinate Transformation

Setup:

  • Two bar elements forming a 90° corner
  • Node 1 at origin (fixed), Node 2 at (L,0)(L, 0), Node 3 at (L,L)(L, L)
  • Element 1: horizontal (1→2), Element 2: vertical (2→3)
  • Each node has 2 DOFs: (ux,uy)(u_x, u_y)
  • Global DOF numbering: Node ii has DOFs 2i12i-1 (x) and 2i2i (y)

Element stiffness in local coordinates (aligned with bar axis ξ\xi):

For a bar along its local axis: klocal=EAL[10100001010000]\mathbf{k}_{\text{local}} = \frac{EA}{L} \begin{bmatrix} 1 & 0 & -1 & 0 \\ 0 & 0 & 0 \\ -1 & 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix}

Why these zeros? A bar only resists axial deformation. Transverse displacements (perpendicular to the bar) produce zero strain, hence zero stiffness.

Transformation matrix T\mathbf{T}: Converts global displacements (ux,uy)(u_x, u_y) to local (uξ,uη)(u_\xi, u_\eta):

T=[cosθsinθ00sinθcosθ00 00cosθsinθ00sinθcosθ]\mathbf{T} = \begin{bmatrix} \cos\theta & \sin\theta & 0 & 0 \\ -\sin\theta & \cos\theta & 0 & 0 \ 0 & 0 & \cos\theta & \sin\theta \\ 0 & 0 & -\sin\theta & \cos\theta \end{bmatrix}

where θ\theta is the angle of the bar axis from the global xx-axis.

Global element stiffness: kglobal=TTklocalT\mathbf{k}_{\text{global}} = \mathbf{T}^T \mathbf{k}_{\text{local}} \mathbf{T}

Element 1 (horizontal, θ=0°\theta = 0°): T(1)=I(already aligned)\mathbf{T}^{(1)} = \mathbf{I} \quad (\text{already aligned}) kglobal(1)=EAL[10100001010000]\mathbf{k}^{(1)}_{\text{global}} = \frac{EA}{L} \begin{bmatrix} 1 & 0 & -1 & 0 \\ 0 & 0 & 0 \\ -1 & 0 & 1 & 0 \\ 0 & 0 & 0 \end{bmatrix}

DOFs: [1,2,3,4][1, 2, 3, 4] (Node 1: DOFs 1,2; Node 2: DOFs 3,4).

Element 2 (vertical, θ=90°\theta = 90°): T(2)=[0100100001010]\mathbf{T}^{(2)} = \begin{bmatrix} 0 & 1 & 0 & 0 \\ -1 & 0 & 0 \\ 0 & 0 & 1 \\ 0 & -1 & 0 \end{bmatrix}

After transformation: kglobal(2)=EAL[000101000101]\mathbf{k}^{(2)}_{\text{global}} = \frac{EA}{L} \begin{bmatrix} 0 & 0 \\ 0 & 1 & 0 & -1 \\ 0 & 0 \\ 0 & -1 & 0 & 1 \end{bmatrix}

DOFs: [3,4,5,6][3, 4, 5, 6] (Node 2: DOFs 3,4; Node 3: DOFs 5,6).

Assembly: Initialize K\mathbf{K} as 6×66 \times 6 zeros.

Scatter k(1)\mathbf{k}^{(1)} into rows/cols [1,2,3,4][1,2,3,4]: K1:4,1:4k(1)\mathbf{K}_{1:4,1:4} \leftarrow \mathbf{k}^{(1)}

Scatter k(2)\mathbf{k}^{(2)} into rows/cols [3,4,5,6][3,4,5,6]: K3:6,3:6K3:6,3:6+k(2)\mathbf{K}_{3:6,3:6} \leftarrow \mathbf{K}_{3:6,3:6} + \mathbf{k}^{(2)}

Result (before BCs):

1 & 0 & -1 & 0 & 0 \\ 0 & 0 & 0 &\\ -1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & -1 \\ 0 & 0 & 0 & \\ 0 & 0 & -1 & 0 & \end{bmatrix}$$ **Why $K_{33} = 1$ and $K_{44} = 1$?** Node 2 is shared, but element 1 only stiffens the $x$-direction (DOF 3) and element 2 only stiffens the $y$-direction (DOF 4). No overlap in stiffness contributions for this geometry. **Apply BCs:** Fix Node 1 ($u_1 = u_2 = 0$), solve for Node 2 and Node 3 displacements under applied loads. --- ## [!mistake] Common Mistakes and Misconceptions ### Mistake 1: Forgetting Coordinate Transformation **Wrong approach:** Use the local-axis stiffness matrix directly in global assembly, even when the element is rotated. **Why it feels right:** Local stiffness is simpler, and for aligned elements (horizontal/vertical), transformation is identity. **Why it's wrong:** If an element is at angle $\theta$, its axial stiffness contributes to *both* global $x$ and $y$ directions. Skipping $\mathbf{T}^T \mathbf{k} \mathbf{T}$ gives incorrect coupling. **The fix:** Always transform $\mathbf{k}_{\text{local}}$ to global coordinates using $\mathbf{k}_{\text{global}} = \mathbf{T}^T \mathbf{k}_{\text{local}} \mathbf{T}$ before assembly. Compute $\mathbf{T}$ from element geometry (node positions). ### Mistake 2: Overwriting Instead of Adding **Wrong approach:** $K[i,j] = k_e[a,b]$ instead of $K[i,j] += k_e[a,b]$. **Why it feels right:** "Element $e$ determines stiffness at DOF pair $(i,j)$." **Why it's wrong:** Multiple elements share nodes. If element 1 sets $K_{22} = 5$ and element 2 overwrites $K_{22} = 3$, the combined stiffness is wrong. The correct value is $5 + 3 = 8$. **The fix:** Use `+=` (scatter-add). Each element contributes incrementally. Think: "element $e$ *adds* its vote to the global stiffness." ### Mistake 3: DOF Numbering Confusion **Wrong approach:** Inconsistent global DOF numbering—sometimes node-major (all DOFs of node1, then node 2..), sometimes DOF-major (all $u_x$, then all $u_y$..). **Why it feels right:** Different texts use different conventions. **Why it's wrong:** If your connectivity table assumes node-major but you assemble in DOF-major order, you scatter to the wrong matrix locations → garbage results. **The fix:** Pick a convention and stick to it. Node-major is standard: Node $i$ with $d$ DOFs per node has global DOFs $d(i-1)+1$ to $di$. Document it clearly in your code. ### Mistake 4: Ignoring Symmetry in Storage **Wrong approach:** Store and assemble the full $N \times N$ matrix for large $N$. **Why it feels right:** Clearer indexing, simpler loops. **Why it's wrong:** For $N = 10^6$ DOFs, full storage is $10^{12}$ doubles ≈ 8 TB. Real FEM codes die from memory exhaustion. **The fix:** Use sparse storage (CSR, skyline, or banded format). Only store non-zero entries. Modern solvers (MUMPS, PARDISO) require this. --- ## [!recall]- Explain to a 12-Year-Old Imagine you're building a model bridge out of straws. Each straw is stiff— you push one end, the other end pushes back. Now, you glue the straws together at connection points (nodes). When you push on one connection point, it affects the other points because the straws connect them. The "stiffness matrix" is like a big spreadsheet that tracks: "If I push on point A, how much does point B push back?" Each straw (element) fills in part of this spreadsheet. If two straws meet at the same point, both write numbers for that point. We **add** those numbers together (not replace them!), because both straws are resisting together. Once we have the full spreadsheet, we can predict: "If I hang a weight at point C, how much will the whole bridge bend?" That's the power of assembly—combining simple pieces into a prediction for the whole structure. --- ## [!mnemonic] Memory Aid **"SLAPS"** for assembly steps: - **S**tiffness: Compute each element's $\mathbf{k}^{(e)}$ - **L**ocate: Find global DOF indices from connectivity - **A**dd: Scatter-add into global $\mathbf{K}$ (never overwrite!) - **P**roperties: Check symmetry, sparsity, bandwidth - **S**olve: Apply BCs, solve $\mathbf{K}\mathbf{u} = \mathbf{F}$ --- ## Connections - [[Finite Element Method Overview]] — The big picture: discretization → assembly → solution - [[Element Stiffness Matrices]] — How to derive $\mathbf{k}^{(e)}$ for bars, beams, shells - [[Coordinate Transformations in FEM]] — Rotating local stiffness to global frame - [[Boundary Conditions in FEM]] — Modifying $\mathbf{K}$ to enforce constraints - [[Sparse Matrix Storage]] — Efficient data structures for large $\mathbf{K}$ - [[Direct vs Iterative Solvers]] — How to solve $\mathbf{K}\mathbf{u} = \mathbf{F}$ after assembly - [[Mesh Refinement and Convergence]] — Ensuring the discrete model approximates reality --- ## #flashcards/physics What is the global stiffness matrix $\mathbf{K}$ in FEM? :: A square $N \times N$ matrix (N = total DOFs) where entry $K_{ij}$ is the force at DOF $i$ per unit displacement at DOF $j$. It represents the stiffness of the entire structure. Why do we add (not overwrite) element stiffnesses during assembly? ::: Because multiple elements share nodes. Each element contributes to the stiffness at shared DOFs. Adding captures the combined resistance of all connected elements. What is the direct stiffness method formula? ::: $\mathbf{K} = \sum_{e=1}^{ne} \mathbf{L}^{(e)T} \mathbf{k}^{(e)} \mathbf{L}^{(e)}$, where $\mathbf{L}^{(e)}$ is the Boolean localization matrix extracting element DOFs from global DOFs. What is the scatter operation in FEM assembly? ::: The process of adding each entry of an element stiffness matrix $\mathbf{k}^{(e)}$ into the corresponding global DOF positions in $\mathbf{K}$, based on the element's connectivity. Why must we transform element stiffness matrices to global coordinates? ::: Because elements may be oriented at arbitrary angles. The local stiffness (along the element's own axis) must be rotated to align with global $x,y,z$ directions using $\mathbf{k}_{\text{global}} = \mathbf{T}^T \mathbf{k}_{\text{local}} \mathbf{T}$. What causes $\mathbf{K}$ to be symmetric? ::: If each element stiffness $\mathbf{k}^{(e)}$ is symmetric (guaranteed by Maxwell-Betti reciprocal theorem: force at $i$ due to displacement at $j$ equals force at $j$ due to displacement at $i$), then the sum $\mathbf{K}$ is symmetric. Why is $\mathbf{K}$ sparse? ::: Entry $K_{ij} \neq 0$ only if DOFs $i$ and $j$ belong to at least one common element. Most DOF pairs are not connected by any element, so most entries are zero. What is a rigid-body mode in FEM? ::: A displacement pattern (translation or rotation of the entire structure) that produces zero strain energy. Before applying boundary conditions, $\mathbf{K}$ is singular with zero eigenvalues corresponding to rigid-body modes. How do boundary conditions change $\mathbf{K}$? ::: Fixing DOFs removes corresponding rows and columns from $\mathbf{K}$, eliminating rigid-body modes and making the matrix positive definite (invertible). For a 2-bar truss in series, why does the middle node have stiffness contribution from both bars? ::: Both bars connect to the middle node. Element 1 contributes $\frac{EA}{L}$ and element 2 contributes $\frac{EA}{L}$ to the diagonal entry for that node's DOF, suming to $\frac{2EA}{L}$. What DOF numbering convention is standard in FEM? ::: Node-major: Node $i$ with $d$ DOFs per node has global DOFs $d(i-1)+1$ through $di$. For example, node 3 in2D (d=2) has DOFs 5 and 6. Why must sparse storage be used for large FEM problems? ::: A full $N \times N$ matrix for $N=10^6$ DOFs requires ~8 TB of memory. Sparse formats (CSR, skyline) store only non-zero entries, reducing memory to manageable size (~GB). ## 🖼️ Concept Map ```mermaid flowchart TD STRUCT[Continuous structure] -->|meshed into| ELEM[Finite elements] ELEM -->|each has| KE[Element stiffness k_e] KE -->|expressed in| LOCAL[Local coordinates] NODES[Shared nodes] -->|force balance and compatibility| ASSEMBLY[Direct stiffness method] KE -->|superimposed via| ASSEMBLY CONN[Connectivity mapping] -->|places k_e into| ASSEMBLY ENERGY[Strain energy additivity] -->|justifies| ASSEMBLY BOOL[Boolean localization L_e] -->|extracts DOFs| ENERGY ASSEMBLY -->|produces| K[Global stiffness K] K -->|forms system| SYS[K u equals F] SYS -->|solved for| RESULT[Deformations and stresses] DOF[Degrees of freedom] -->|index rows and columns of| K ``` ## 🔊 Hinglish (regional understanding) > [!intuition]- Hinglish mein samjho > Dekho, iss note ka core idea bahut simple hai — ek badi complex spacecraft structure ko hum chote-chote pieces mein tod dete hain jinhe elements kehte hain, aur har element ko ek spring ki tarah socho jiski apni stiffness hoti hai. Har element ki apni choti stiffness matrix hoti hai (local coordinate system mein), aur assembly ka kaam hai in sabko jodkar ek giant global stiffness matrix banana jo poori structure ko represent karti hai. Jab elements ek common node pe milte hain, wahan unki stiffness contributions overlap karti hain, toh hum unhe simply add kar dete hain — isko hi direct stiffness method kehte hain. Aakhir mein humein ek clean equation milta hai: **K u = F**, jisse hum displacements, stresses aur deformations solve kar sakte hain. > > Ab yeh kaam kyun karta hai? Kyunki total strain energy additive hoti hai — matlab poori structure ki energy har element ki energy ka sum hoti hai. Note mein jo derivation hai woh yehi prove karti hai using Boolean localization matrix L, jo global displacement vector se element ke DOFs extract karti hai. Jab hum yeh energy ko expand karte hain toh global displacement vector u common factor ban jaata hai, aur beech mein jo bacha hua term hai wahi global stiffness matrix K nikal aata hai. Isme concepts important hain jaise DOF (degrees of freedom — 3D node ke 6 hote hain: teen translations aur teen rotations) aur connectivity, jo batati hai ki kaunsa local node kaunse global node se map hota hai. > > Yeh chapter tumhare liye kyun matter karta hai? Kyunki har real spacecraft analysis — chahe launch ke time ke loads ho, ya thermal distortion, ya kisi solar panel bracket ka stress check karna ho — sab isi assembly step pe depend karta hai. Ek satellite ka bus ya rocket ka interstage hazaaron elements mein mesh kiya jaata hai, aur agar assembly galat hui toh poora prediction galat ho jaata hai. Toh yeh samajhna ki elements node pe kaise jodte hain aur unki stiffness kaise superimpose hoti hai, yeh FEM ki foundation hai — isko achhe se pakad lo toh baaki structural analysis aasan ho jaayega. ![[audio/3.6.19-FEM-for-structures-—-assembling-global-stiffness.mp3]]

Go deeper — visual, from zero

Test yourself — Spacecraft Structures & Systems Engineering

Connections