StartMula
What to doApa perlu dibuat Follow the plan: before class, in class, after class. Each item links to where it is done and ticks itself when it is. Continue takes you to the first thing not yet done.Ikut pelan: sebelum kelas, dalam kelas, selepas kelas. Setiap item dipautkan ke tempat ia dibuat dan ditanda sendiri apabila selesai. Sambung membawa anda ke perkara pertama yang belum selesai.
Counts toward progress:Dikira dalam kemajuan: the bar averages six parts equally: Notes, Slides, Examples, Exercises, Explorer and the can-do checklist. Each tab’s badge shows its own count.bar ini purata enam bahagian secara sama rata: Nota, Slides, Contoh, Latihan, Explorer dan senarai semak boleh-buat. Lencana pada setiap tab menunjukkan kiraannya sendiri.
Your planPelan anda
- A1 strains and stresses at (3.5, 1.3) · A2 which stresses would you report?A1 strain dan stress pada (3.5, 1.3) · A2 stress mana yang akan anda laporkan?
- A3 Q4 against Q8 on the cantilever · A4 the plate written up in three sentencesA3 Q4 berbanding Q8 pada cantilever · A4 plat ditulis dalam tiga ayat
- A5 project briefing: your group’s one-page model planA5 taklimat projek: pelan model satu halaman kumpulan anda
- QR Explorer: Stress Recovery Explorer, task 1Explorer QR: Stress Recovery Explorer, tugasan 1
○ to do · ✓ done · – done in class, not tracked. Click an item to go to it.○ belum · ✓ selesai · – dibuat dalam kelas, tidak dijejak. Klik item untuk pergi kepadanya.
What this part coversApa yang bahagian ini liputi
Parts 1 and 2 ended with the nodal displacements. This part turns them into what a design needs — strains, stresses, principal and von Mises stresses at any point — and asks how far each can be trusted: centroid values against beam theory, the jumps between elements, the fixed corner that never converges, and the 8-node element that bends without locking. It closes with the four things every FE results section needs and the brief of the group project.Part 1 dan 2 berakhir dengan nodal displacement. Bahagian ini menukarkannya kepada apa yang diperlukan dalam reka bentuk — strain, stress, principal stress dan von Mises stress pada mana-mana titik — dan bertanya sejauh mana setiap satu boleh dipercayai: nilai centroid berbanding beam theory, lompatan antara element, bucu tetap yang tidak pernah converge, dan 8-node element yang melentur tanpa locking. Ia ditutup dengan empat perkara yang wajib ada dalam setiap bahagian keputusan FE dan taklimat projek kumpulan.
After this part you should be able toSelepas bahagian ini, anda sepatutnya boleh
- Recover strains and stresses at a point of an element from its nodal displacements, {ε} = [B]{û} and {σ} = [E][B]{û}, and compute the principal and von Mises stresses.Mendapatkan semula strain dan stress pada satu titik dalam element daripada nodal displacement-nya, {ε} = [B]{û} dan {σ} = [E][B]{û}, dan mengira principal stress serta von Mises stress.
- Explain where computed stresses are accurate (element centroids, away from supports and loads) and where they are not (element edges, re-entrant corners, point loads).Menerangkan di mana stress yang dikira tepat (centroid element, jauh dari support dan load) dan di mana tidak (tepi element, re-entrant corner, point load).
- Describe the 8-node element, convert an edge load into its 1/6 – 2/3 – 1/6 nodal loads, and explain why it needs far fewer elements than the 4-node element in bending.Menerangkan 8-node element, menukar edge load kepada nodal load 1/6 – 2/3 – 1/6, dan menerangkan mengapa ia memerlukan jauh lebih sedikit element berbanding 4-node element dalam bending.
- Report an FE study to the project standard: idealisation, a convergence table with an error estimate, one independent check, and quantified conclusions.Melaporkan kajian FE mengikut piawai projek: idealisation, convergence table dengan anggaran ralat, satu semakan bebas, dan kesimpulan yang dikuantifikasi.
Text: Mohd Yassin et al., Two-Dimensional Finite Element Formulations for Heat, Solids and Fluids (with Matlab), MSNM 2020, §3.4–§3.5.Teks: Mohd Yassin et al., Two-Dimensional Finite Element Formulations for Heat, Solids and Fluids (with Matlab), MSNM 2020, §3.4–§3.5.
Recall from Plane Stress Part 2Ingat semula Plane Stress Part 2
Two questions before class. Not graded; one try each.Dua soalan sebelum kelas. Tidak bergred; satu cubaan setiap satu.
For a four-node plane-stress element, the size of [B] isBagi four-node plane-stress element, saiz [B] ialah
Three strains (εxx, εyy, εxy) from eight nodal displacements: [B] = [∂]ᵀ[N] is 3 × 8. [N] is 2 × 8 and [k] = t∫[B]ᵀ[E][B] dA is 8 × 8. Today [B] turns the solved displacements into strains.Tiga strain (εxx, εyy, εxy) daripada lapan nodal displacement: [B] = [∂]ᵀ[N] bersaiz 3 × 8. [N] bersaiz 2 × 8 dan [k] = t∫[B]ᵀ[E][B] dA bersaiz 8 × 8. Hari ini [B] menukar displacement yang diselesaikan kepada strain.
The 2 × 2 Q4 mesh gives a tip deflection of 0.131 m against 0.192 m from beam theory. The coarse mesh isMesh Q4 2 × 2 memberi tip deflection 0.131 m berbanding 0.192 m daripada beam theory. Mesh kasar itu
0.131/0.192 = 0.68: the bilinear elements cannot bend without a spurious shear strain, which resists the bending (shear locking). Refining, or using 8-node elements, removes most of it. Today: what that means for the stresses.0.131/0.192 = 0.68: element bilinear tidak dapat melentur tanpa shear strain palsu, yang menentang bending (shear locking). Refine, atau menggunakan 8-node element, menghapuskan sebahagian besarnya. Hari ini: apa maksudnya untuk stress.
Can-do checklistSenarai semak boleh-buat
Rate yourself after the exercises. “Without notes” is the exam condition and counts in full; “With notes” counts half.Nilai diri anda selepas latihan. “Tanpa nota” ialah keadaan peperiksaan dan dikira penuh; “Dengan nota” dikira separuh.
Recover σxx, σyy, σxy at a point from an element’s nodal displacements, keeping enough decimals.Mendapatkan σxx, σyy, σxy pada satu titik daripada nodal displacement sesuatu element, dengan tempat perpuluhan yang mencukupi.
Compute σ1, σ2, the principal direction and the von Mises stress, and say which one governs concrete and which steel.Mengira σ1, σ2, arah principal dan von Mises stress, dan menyatakan yang mana menguasai konkrit dan yang mana keluli.
Judge a reported stress: centroid or node, converged or not, at a singularity or not; check it against beam theory away from the ends.Menilai stress yang dilaporkan: centroid atau node, converge atau tidak, pada singularity atau tidak; menyemaknya dengan beam theory jauh dari hujung.
Share an edge load among the nodes of an 8-node side, and explain shear locking of the 4-node element.Membahagikan edge load antara node sisi 8-node, dan menerangkan shear locking bagi 4-node element.
Estimate the converged value and the error of the finest mesh from three meshes.Menganggar nilai converge dan ralat mesh paling halus daripada tiga mesh.
Files and settingsFail dan tetapan
Progress is stored in this browser only. It is your own record, not a gradebook; graded work stays in eLearning.Kemajuan disimpan dalam pelayar ini sahaja. Ia rekod anda sendiri, bukan buku gred; kerja bergred kekal di eLearning.
NotesNota
What to doApa perlu dibuat Read each section, answer its Quick check (not graded, one try), then tick “Mark this section as read” at the end of the section. “Key points only” is the revision view.Baca setiap seksyen, jawab Semak cepat di dalamnya (tidak bergred, satu cubaan), kemudian tanda “Tanda seksyen ini sudah dibaca” di hujung seksyen. “Perkara utama sahaja” ialah paparan ulang kaji.
Counts toward progress:Dikira dalam kemajuan: sections ticked as read.seksyen yang ditanda sudah dibaca.
1. Stresses from the nodal displacementsStress daripada nodal displacement
Plane Stress Part 2 ended with the nodal displacements of the cantilever. They are the primary result: the method solved for them. Everything a designer reads afterwards — strains, stresses, principal stresses, von Mises — is derived from them by differentiating the interpolation inside each element. The tool for that is the matrix [B] that already built [k].Plane Stress Part 2 berakhir dengan nodal displacement bagi cantilever. Itulah primary result: kaedah ini menyelesaikan nilai itu. Segala yang dibaca oleh pereka selepas itu — strain, stress, principal stress, von Mises — diterbitkan daripadanya dengan membezakan interpolation di dalam setiap element. Alat untuknya ialah matrix [B] yang sudah membina [k].
Three stepsTiga langkah
- Locate. Find the element that contains the point, take its local coordinates x, y from its local node 1 (the rule from Heat Transfer Part 2), and list its eight nodal displacements in local order, u before v at each node.Cari. Kenal pasti element yang mengandungi titik itu, ambil koordinat local x, y dari node local 1-nya (peraturan dari Heat Transfer Part 2), dan senaraikan lapan nodal displacement-nya mengikut susunan local, u sebelum v pada setiap node.
- Strains. Evaluate [B] (3 × 8) at the point and multiply by {û} (8 × 1).Strain. Nilai [B] (3 × 8) pada titik itu dan darab dengan {û} (8 × 1).
- Stresses. Multiply by [E] (3 × 3). Then, if the design needs them, the principal and von Mises stresses (§2).Stress. Darab dengan [E] (3 × 3). Kemudian, jika reka bentuk memerlukannya, principal stress dan von Mises stress (§2).
Column by column, [B] holds the derivatives of the four shape functions of Heat Transfer Part 1, each used twice: once for u and once for v. Written out, its three rows are the three strains:Lajur demi lajur, [B] memuatkan derivative empat shape function dari Heat Transfer Part 1, setiap satu digunakan dua kali: sekali untuk u dan sekali untuk v. Apabila ditulis penuh, tiga barisnya ialah tiga strain:
Worked point · the cantilever at (3.5, 1.3) m (Activity 1)Titik bekerja · cantilever pada (3.5, 1.3) m (Aktiviti 1)
The nodal displacements of element 4 in local order (global nodes 5, 6, 9, 8), from the course solution of the text’s (3.49) to six decimals:Nodal displacement element 4 mengikut susunan local (node global 5, 6, 9, 8), daripada penyelesaian kursus bagi (3.49) teks kepada enam tempat perpuluhan:
| local nodenode local | 1 (5) | 2 (6) | 3 (9) | 4 (8) |
|---|---|---|---|---|
| u (m) | 0 | 0 | 0.041967 | 0.030966 |
| v (m) | −0.043013 | −0.130421 | −0.130578 | −0.045520 |
With b − y = 0.7, y = 0.3, a − x = 0.5 and x = 1.5:Dengan b − y = 0.7, y = 0.3, a − x = 0.5 dan x = 1.5:
σxx is tension, as it should be above the neutral axis of a cantilever loaded downwards; σxy carries the end shear and is as large as σxx here; σyy is small, as beam theory assumes.σxx ialah tension, seperti yang sepatutnya di atas neutral axis bagi cantilever yang dibebani ke bawah; σxy membawa shear di hujung dan sebesar σxx di sini; σyy kecil, seperti yang diandaikan oleh beam theory.
Software does exactly this at the Gauss points of every element, and then averages to the nodes for the contour plot (§4). A hand calculation lets you see what is being averaged.Perisian membuat perkara yang sama pada Gauss point setiap element, kemudian membuat purata ke node untuk contour plot (§4). Pengiraan tangan membolehkan anda melihat apa yang dipuratakan.
Key pointsPerkara utama
- {ε} = [B]{û}, {σ} = [E][B]{û}, from the nodal displacements of the element that contains the point, at its local coordinates.{ε} = [B]{û}, {σ} = [E][B]{û}, daripada nodal displacement element yang mengandungi titik itu, pada koordinat local-nya.
- Cantilever at (3.5, 1.3): ε = {0.00165, −0.000745, −0.00413}; σ = {315.2, −44.9, −310.9} kN m−2.Cantilever pada (3.5, 1.3): ε = {0.00165, −0.000745, −0.00413}; σ = {315.2, −44.9, −310.9} kN m−2.
- Keep five or six decimals in the displacements: strains are their differences.Kekalkan lima atau enam tempat perpuluhan dalam displacement: strain ialah beza antaranya.
To find the stress at a point of a solved mesh you needUntuk mencari stress pada satu titik dalam mesh yang telah diselesaikan, anda memerlukan
Only that element’s eight displacements enter, through [B] evaluated at the point’s local coordinates and then [E]. [K]{U} gives nodal forces (reactions), not stresses.Hanya lapan displacement element itu yang terlibat, melalui [B] yang dinilai pada koordinat local titik itu dan kemudian [E]. [K]{U} memberi nodal force (reaction), bukan stress.
2. Principal and von Mises stressesPrincipal stress dan von Mises stress
Three stress components describe the state at a point, but a design check needs one or two numbers that do not depend on the x and y axes you happened to choose. Rotating the axes until the shear vanishes gives the principal stresses; combining the components into an equivalent uniaxial stress gives von Mises.Tiga komponen stress menerangkan keadaan pada satu titik, tetapi semakan reka bentuk memerlukan satu atau dua nombor yang tidak bergantung pada paksi x dan y yang kebetulan dipilih. Memutar paksi sehingga shear hilang memberi principal stress; menggabungkan komponen menjadi satu stress uniaxial yang setara memberi von Mises.
Principal stresses and their directionPrincipal stress dan arahnya
θp is measured from the x-axis to the direction of σ1; −30° means 30° clockwise. On Mohr’s circle the centre is at (σxx + σyy)/2 = 135.1 and the radius is 359.3 kN m−2; the Stress Recovery Explorer draws it for every probe.θp diukur dari paksi x ke arah σ1; −30° bermaksud 30° ikut arah jam. Pada Mohr’s circle, pusatnya di (σxx + σyy)/2 = 135.1 dan jejarinya 359.3 kN m−2; Stress Recovery Explorer melukisnya untuk setiap probe.
Von MisesVon Mises
In plane stress the third principal stress, σzz, is zero, which is why von Mises can be written with σ1 and σ2 alone. In plane strain σzz = ν(σxx + σyy) and the formula changes.Dalam plane stress, principal stress ketiga, σzz, ialah sifar, sebab itulah von Mises boleh ditulis dengan σ1 dan σ2 sahaja. Dalam plane strain σzz = ν(σxx + σyy) dan formulanya berubah.
- Concrete cracks in tension: σ1 and its direction decide where cracks open and how the reinforcement should run in a wall or a deep beam.Konkrit retak dalam tension: σ1 dan arahnya menentukan di mana retak terbuka dan bagaimana tetulang patut disusun dalam dinding atau deep beam.
- Steel yields when σvM reaches fy. ANSYS plots von Mises by default; know what it is before you read the colours.Keluli alah apabila σvM mencapai fy. ANSYS memplot von Mises secara default; fahami maksudnya sebelum membaca warna.
Key pointsPerkara utama
- σ1,2 = centre ± radius of Mohr’s circle; θp = ½ tan−1[2σxy/(σxx − σyy)].σ1,2 = pusat ± jejari Mohr’s circle; θp = ½ tan−1[2σxy/(σxx − σyy)].
- Cantilever at (3.5, 1.3): σ1 = 494.4, σ2 = −224.1 at −30.0°; σvM = 636.8 kN m−2.Cantilever pada (3.5, 1.3): σ1 = 494.4, σ2 = −224.1 pada −30.0°; σvM = 636.8 kN m−2.
- Concrete: σ1 and its direction. Steel: σvM against fy.Konkrit: σ1 dan arahnya. Keluli: σvM berbanding fy.
A point carries pure shear: σxx = σyy = 0, σxy = 100 kN m−2. Its principal stresses areSatu titik mengalami pure shear: σxx = σyy = 0, σxy = 100 kN m−2. Principal stress-nya ialah
The centre of Mohr’s circle is 0 and its radius is √(0 + 100²) = 100, so σ1,2 = ±100; tan 2θp is infinite, so θp = 45°. Von Mises is √3 × 100 = 173 kN m−2.Pusat Mohr’s circle ialah 0 dan jejarinya √(0 + 100²) = 100, jadi σ1,2 = ±100; tan 2θp infiniti, jadi θp = 45°. Von Mises ialah √3 × 100 = 173 kN m−2.
3. How far can a computed stress be trusted?Sejauh mana stress yang dikira boleh dipercayai?
The method solves for displacements; stresses come one differentiation later. A bilinear displacement field has strains that are only linear at best, and each element computes them from its own nodes, so stresses are one order less accurate than displacements and they jump from one element to the next. On the 2 × 2 cantilever the tip deflection is 32% low; some of the stresses are worse.Kaedah ini menyelesaikan displacement; stress datang selepas satu pembezaan. Displacement field bilinear mempunyai strain yang paling baik pun hanya linear, dan setiap element mengiranya daripada node sendiri, jadi stress kurang tepat satu peringkat berbanding displacement dan ia melompat dari satu element ke element seterusnya. Pada cantilever 2 × 2, tip deflection rendah 32%; sesetengah stress lebih teruk.
Beam theory as the checkBeam theory sebagai semakan
| Point (m)Titik (m) | 2 × 2 Q4 | convergedconverge | beam theorybeam theory |
|---|---|---|---|
| (1.0, 1.5) centroid of element 3(1.0, 1.5) centroid element 3 | 1645 | 2265 | 2250 |
| (2.0, 1.3) mid-span, on the side shared by elements 3 | 4(2.0, 1.3) tengah rentang, pada sisi dikongsi element 3 | 4 | 857 | 185 | 900 | 900 |
| (3.0, 1.5) centroid of element 4(3.0, 1.5) centroid element 4 | 519 | 730 | 750 |
| (3.5, 1.3) the Activity 1 point, 0.5 m from the loaded end(3.5, 1.3) titik Aktiviti 1, 0.5 m dari hujung berbeban | 315 | 153 | 225 |
σxx in kN m−2; converged = 8-node 64 × 32 mesh of the course solver. Two different errors are mixed in this table.σxx dalam kN m−2; converge = mesh 8-node 64 × 32 daripada solver kursus. Dua ralat yang berbeza bercampur dalam jadual ini.
- The mesh error (first column against the second): up to 30% at the centroids of the 2 × 2 mesh, and two different values, 857 and 185, at one point on a shared side.Ralat mesh (lajur pertama berbanding kedua): sehingga 30% pada centroid mesh 2 × 2, dan dua nilai berbeza, 857 dan 185, pada satu titik di sisi yang dikongsi.
- The error of the check itself (second column against the third): 0.03% at mid-span but 32% at x = 3.5 m. Near the loaded end the model applies a uniform traction, not the parabolic shear that beam theory assumes; by St-Venant’s principle the difference fades within about one depth of the end.Ralat semakan itu sendiri (lajur kedua berbanding ketiga): 0.03% di tengah rentang tetapi 32% pada x = 3.5 m. Berhampiran hujung berbeban, model mengenakan traction seragam, bukan shear parabola yang diandaikan oleh beam theory; menurut St-Venant’s principle, perbezaan itu pudar dalam kira-kira satu kedalaman dari hujung.

Key pointsPerkara utama
- Stresses are derivatives of the displacements: less accurate, and discontinuous between elements.Stress ialah derivative displacement: kurang tepat, dan tidak continuous antara element.
- 2 × 2 centroids: 73% of the converged bending stress; 32 × 16 centroids at mid-span: within 0.25% of beam theory.Centroid 2 × 2: 73% daripada bending stress yang converge; centroid 32 × 16 di tengah rentang: dalam 0.25% daripada beam theory.
- Beam theory is a valid check only away from the ends (St-Venant).Beam theory ialah semakan yang sah hanya jauh dari hujung (St-Venant).
On the converged mesh σxx at (3.5, 1.3) is 153 kN m−2, while beam theory gives 225. The best explanation isPada mesh yang converge, σxx pada (3.5, 1.3) ialah 153 kN m−2, manakala beam theory memberi 225. Penjelasan terbaik ialah
The FE value has converged (64 × 32 Q8), and at mid-span the same model matches beam theory to 0.03%. The 0.5 m point is inside the end zone where the way the load is applied still matters; it is the check that is wrong there, not the model.Nilai FE telah converge (64 × 32 Q8), dan di tengah rentang model yang sama sepadan dengan beam theory hingga 0.03%. Titik 0.5 m berada dalam zon hujung di mana cara load dikenakan masih penting; semakan itulah yang salah di situ, bukan model.
4. Display options, singularities and concentrationsPilihan paparan, singularity dan concentration
Each element produces its own stress field. A contour plot has to decide what to show where two or more elements meet, and ANSYS offers the same three choices as the Stress Recovery Explorer.Setiap element menghasilkan stress field sendiri. Contour plot perlu memutuskan apa yang dipaparkan di tempat dua atau lebih element bertemu, dan ANSYS menawarkan tiga pilihan yang sama seperti Stress Recovery Explorer.
| Display optionPilihan paparan | What is shownApa yang dipaparkan | Use it forGunakan untuk |
|---|---|---|
| Elemental meanElemental mean | one value per element, at its centroidsatu nilai setiap element, pada centroid-nya | the most reliable value per element; checks against beam theorynilai paling boleh dipercayai setiap element; semakan dengan beam theory |
| UnaveragedUnaveraged | each element’s own values at its nodes: jumps visible at shared sidesnilai element sendiri pada node-nya: lompatan kelihatan pada sisi dikongsi | seeing where the mesh is too coarse: large jumps, large local errormelihat di mana mesh terlalu kasar: lompatan besar, ralat setempat besar |
| AveragedAveraged | the mean of all elements at each node: a smooth picturepurata semua element pada setiap node: gambaran yang licin | reporting, once the unaveraged jumps are smallpelaporan, setelah lompatan unaveraged kecil |
The fixed corner never convergesBucu tetap tidak pernah converge
| 4-node meshMesh 4-node | centroid of the top-left element (m)centroid element kiri atas (m) | FE σxx | beam theory therebeam theory di situ | FE / beam |
|---|---|---|---|---|
| 8 × 4 | (0.25, 1.75) | 4134 | 4219 | 0.98 |
| 16 × 8 | (0.125, 1.875) | 5372 | 5086 | 1.06 |
| 32 × 16 | (0.0625, 1.9375) | 6400 | 5537 | 1.16 |
| 64 × 32 | (0.031, 1.969) | 7467 | 5767 | 1.30 |
Every halving of the elements raises the peak, and it passes beam theory, which itself tends to 6000 kN m−2 at the corner. The elastic solution at the re-entrant corner of a fully fixed edge is infinite: refining chases infinity. A point load produces the same kind of singularity under it.Setiap kali saiz element dibahagi dua, puncaknya meningkat, dan ia melepasi beam theory, yang sendiri menghampiri 6000 kN m−2 di bucu itu. Penyelesaian elastic pada re-entrant corner bagi tepi yang tetap sepenuhnya ialah infiniti: refine bermakna mengejar infiniti. Point load menghasilkan singularity yang sama di bawahnya.

The net-section check: the nominal stress across the remaining width is 10.0/(1 − 0.3) = 14.3 MPa, and 33.4/14.3 = 2.34. That is the kind of independent check the project asks for.Semakan keratan bersih: stress nominal merentasi lebar yang tinggal ialah 10.0/(1 − 0.3) = 14.3 MPa, dan 33.4/14.3 = 2.34. Itulah jenis semakan bebas yang diminta dalam projek.
Key pointsPerkara utama
- Elemental mean = centroids; Unaveraged shows the jumps; Averaged is smooth but not more accurate.Elemental mean = centroid; Unaveraged menunjukkan lompatan; Averaged licin tetapi tidak lebih tepat.
- Fixed corner: 4134 → 5372 → 6400 → 7467 kN m−2, no limit. Never report a peak at a singularity.Bucu tetap: 4134 → 5372 → 6400 → 7467 kN m−2, tiada had. Jangan sekali-kali laporkan puncak pada singularity.
- A smooth hole converges: Kt = 2.34 against Peterson’s 2.35.Lubang yang licin converge: Kt = 2.34 berbanding 2.35 Peterson.
Your model shows its highest von Mises stress right at a fully fixed corner, and the value grows when you refine. YouModel anda menunjukkan von Mises stress tertinggi tepat pada bucu yang tetap sepenuhnya, dan nilainya meningkat apabila anda refine. Anda
A peak that grows without limit is a singularity of the idealised support, not a property of the structure. Show the divergence in the mesh study, then report values outside the corner zone, or model the real support (a bearing, a flexible wall) so the peak becomes finite.Puncak yang meningkat tanpa had ialah singularity bagi support yang diidealkan, bukan sifat struktur. Tunjukkan divergence dalam kajian mesh, kemudian laporkan nilai di luar zon bucu, atau modelkan support sebenar (bearing, dinding fleksibel) supaya puncak menjadi terhingga.
5. The 8-node element8-node element
The 8-node (serendipity) element adds a node at the middle of each side. Its displacement field is quadratic along every side, so the sides can curve, and that is its whole advantage in bending: a bent beam has curved fibres, and an element whose sides must stay straight can only imitate them by shearing (Example 3).8-node (serendipity) element menambah satu node di tengah setiap sisi. Displacement field-nya quadratic di sepanjang setiap sisi, jadi sisinya boleh melengkung, dan itulah keseluruhan kelebihannya dalam bending: beam yang melentur mempunyai fibre melengkung, dan element yang sisinya mesti kekal lurus hanya boleh meniru lengkungan itu dengan shear (Contoh 3).
The recipe is unchanged: [B] = [∂]ᵀ[N] and [k] = t∫[B]ᵀ[E][B] dA, now 16 × 16 with 3 × 3 Gauss points. Nobody computes it by hand; the text lists it in its MATLAB code (§3.4.2).Resipinya tidak berubah: [B] = [∂]ᵀ[N] dan [k] = t∫[B]ᵀ[E][B] dA, kini 16 × 16 dengan 3 × 3 Gauss point. Tiada siapa mengiranya dengan tangan; teks menyenaraikannya dalam kod MATLAB-nya (§3.4.2).
Edge loads on a three-node sideEdge load pada sisi tiga node
Along a side the quadratic shape functions integrate to ℓ/6, 2ℓ/3 and ℓ/6, so a uniform edge load is no longer shared half and half: the mid-side node takes two thirds.Di sepanjang sisi, shape function quadratic ber-integral kepada ℓ/6, 2ℓ/3 dan ℓ/6, jadi edge load seragam tidak lagi dibahagi separuh-separuh: node tengah sisi mengambil dua pertiga.
What it buysApa yang diperoleh
| MeshMesh | dofsdof | tip deflection (m)tip deflection (m) | against 0.1915berbanding 0.1915 |
|---|---|---|---|
| Q4 2 × 2 | 18 | 0.1306 | −31.8% |
| Q8 2 × 1 | 26 | 0.1780 | −7.1% |
| Q8 4 × 2 | 74 | 0.1885 | −1.6% |
| Q4 16 × 8 | 306 | 0.1886 | −1.5% |
| Q8 4 × 4 | 130 | 0.1896 | −1.0% |
| Q4 16 × 16 | 578 | 0.1893 | −1.1% |
| Q8 8 × 4 | 242 | 0.1906 | −0.5% |
| Q4 32 × 16 | 1122 | 0.1906 | −0.5% |
Reference: the converged plane-stress value, 0.1915 m (Q4 128 × 64). Timoshenko beam theory gives 0.1919 m, a different model 0.2% stiffer in shear. Text Table 3.2 lists the same comparison to three decimals.Rujukan: nilai plane stress yang converge, 0.1915 m (Q4 128 × 64). Timoshenko beam theory memberi 0.1919 m, model berbeza yang 0.2% lebih kaku dalam shear. Jadual 3.2 teks menyenaraikan perbandingan yang sama kepada tiga tempat perpuluhan.
Key pointsPerkara utama
- Q8: 16 dofs, quadratic sides that can curve; no parasitic shear in bending.Q8: 16 dof, sisi quadratic yang boleh melengkung; tiada parasitic shear dalam bending.
- Uniform edge load: qℓ/6, 2qℓ/3, qℓ/6. Cantilever 2 × 1: −1667, −6667, −1667 N.Edge load seragam: qℓ/6, 2qℓ/3, qℓ/6. Cantilever 2 × 1: −1667, −6667, −1667 N.
- Two Q8 elements: −7%; four Q4: −32%. Compare meshes by dofs.Dua Q8 element: −7%; empat Q4: −32%. Bandingkan mesh mengikut dof.
A uniform edge load q acts on the side of length ℓ of an 8-node element. The mid-side node receivesEdge load seragam q bertindak pada sisi sepanjang ℓ bagi 8-node element. Node tengah sisi menerima
The quadratic edge shape functions integrate to ℓ/6, 2ℓ/3 and ℓ/6, so the mid-side node takes two thirds and each corner one sixth; the total is qℓ. qℓ/2 is the share of the middle node of two 4-node sides.Shape function tepi quadratic ber-integral kepada ℓ/6, 2ℓ/3 dan ℓ/6, jadi node tengah sisi mengambil dua pertiga dan setiap bucu satu perenam; jumlahnya qℓ. qℓ/2 ialah bahagian node tengah bagi dua sisi 4-node.
6. Reporting an FE result, and the projectMelaporkan keputusan FE, dan projek
A number without a mesh study and a check is an opinion. The project is marked on whether your numbers can be defended, and so is any FE result you will sign in practice.Nombor tanpa kajian mesh dan semakan hanyalah pendapat. Projek dinilai berdasarkan sama ada nombor anda boleh dipertahankan, dan begitu juga mana-mana keputusan FE yang akan anda tandatangani dalam amalan.
Four things every results section needsEmpat perkara yang wajib ada dalam setiap bahagian keputusan
- Idealisation stated. Plane stress or plane strain and why; thickness; E and ν with units; supports and loads with a sketch; what was left out (self-weight, openings, reinforcement).Idealisation dinyatakan. Plane stress atau plane strain dan sebabnya; ketebalan; E dan ν dengan unit; support dan load dengan lakaran; apa yang ditinggalkan (berat sendiri, bukaan, tetulang).
- A convergence table. At least three meshes, the quantity of interest for each, the change between the last two in per cent, and which mesh the results come from. Three meshes also give an error estimate (Example 2).Convergence table. Sekurang-kurangnya tiga mesh, kuantiti yang dikehendaki bagi setiap satu, perubahan antara dua yang terakhir dalam peratus, dan mesh mana yang menjadi sumber keputusan. Tiga mesh juga memberi anggaran ralat (Contoh 2).
- One independent check. Beam theory away from the ends, equilibrium of the reactions against the loads, a textbook stress-concentration factor, or a hand calculation on a coarse mesh. Quote the difference with its sign.Satu semakan bebas. Beam theory jauh dari hujung, keseimbangan reaction berbanding load, stress-concentration factor dari buku teks, atau pengiraan tangan pada mesh kasar. Nyatakan perbezaan bersama tandanya.
- Quantified conclusions. “The tip deflection is 0.191 m, within 0.7% of beam theory”, not “the results agree well”. Say where the maximum is, what it means for the design, and what the model cannot tell you.Kesimpulan yang dikuantifikasi. “Tip deflection ialah 0.191 m, dalam 0.7% daripada beam theory”, bukan “keputusan sepadan dengan baik”. Nyatakan di mana maksimum, apa maksudnya untuk reka bentuk, dan apa yang model tidak dapat beritahu.
Model paragraph · the cantilever in five sentencesPerenggan model · cantilever dalam lima ayat
The cantilever (4 m × 2 m, t = 0.01 m, E = 200 × 10⁶ N m−2, ν = 0.33) was idealised as plane stress with the left edge fully fixed and the 5 kN m−1 end load applied as an edge traction. Four-node meshes of 2 × 2, 8 × 4, 16 × 8 and 32 × 16 elements gave tip deflections of 0.131, 0.182, 0.189 and 0.191 m; the change between the last two meshes is 1.0%, so the 32 × 16 results are reported. Timoshenko beam theory gives 0.192 m (0.160 m bending, 0.032 m shear), 0.7% above the FE value. The bending stress at element centroids at mid-span agrees with M(y − 1)/I to within 0.25%; the stress at the fixed corner increases without bound under refinement and is not reported. The reactions sum to 10.0 kN upward and 40.0 kN m, equal to the applied load and its moment.(Ditulis dalam bahasa Inggeris kerana laporan projek ditulis dalam bahasa Inggeris.) The cantilever (4 m × 2 m, t = 0.01 m, E = 200 × 10⁶ N m−2, ν = 0.33) was idealised as plane stress with the left edge fully fixed and the 5 kN m−1 end load applied as an edge traction. Four-node meshes of 2 × 2, 8 × 4, 16 × 8 and 32 × 16 elements gave tip deflections of 0.131, 0.182, 0.189 and 0.191 m; the change between the last two meshes is 1.0%, so the 32 × 16 results are reported. Timoshenko beam theory gives 0.192 m (0.160 m bending, 0.032 m shear), 0.7% above the FE value. The bending stress at element centroids at mid-span agrees with M(y − 1)/I to within 0.25%; the stress at the fixed corner increases without bound under refinement and is not reported. The reactions sum to 10.0 kN upward and 40.0 kN m, equal to the applied load and its moment.
Every sentence carries a number, a comparison or a decision. No adjectives.Setiap ayat membawa nombor, perbandingan atau keputusan. Tiada kata sifat.
The group projectProjek kumpulan
CLO4: investigate a 2D structural problem with FEM, in a group, with software, and defend the numbers. Items in square brackets are for the lecturer to confirm.CLO4: mengkaji masalah struktur 2D dengan FEM, secara berkumpulan, menggunakan perisian, dan mempertahankan nombor-nombornya. Item dalam kurungan segi empat akan disahkan oleh pensyarah.
| ItemPerkara | BriefRingkasan |
|---|---|
| TaskTugasan | Choose a 2D structural problem, idealise it, model it in ANSYS (plane stress or plane strain), verify the model, interpret the results for design.Pilih masalah struktur 2D, idealkan, modelkan dalam ANSYS (plane stress atau plane strain), sahkan model, tafsirkan keputusan untuk reka bentuk. |
| Team and weightKumpulan dan wajaran | Groups of [4–5]; 15% of the course; report [70%], presentation [30%].Kumpulan [4–5] orang; 15% daripada kursus; laporan [70%], pembentangan [30%]. |
| DeliverablesHasil | Report of [10–15] pages; a [10]-minute presentation on [date]; model files and the hand-check sheet.Laporan [10–15] halaman; pembentangan [10] minit pada [tarikh]; fail model dan helaian semakan tangan. |
| CandidatesCalon struktur | Shear wall with openings (text Exercise 3.4) · deep beam or transfer girder · gusset or connection plate · dam or retaining-wall section (plane strain).Shear wall dengan bukaan (Latihan 3.4 teks) · deep beam atau transfer girder · gusset atau connection plate · keratan empangan atau tembok penahan (plane strain). |
| Marking (proposed)Pemarkahan (cadangan) | Idealisation and modelling 30% · verification 30% · interpretation 20% · report and presentation 20%.Idealisation dan pemodelan 30% · pengesahan 30% · tafsiran 20% · laporan dan pembentangan 20%. |
Two habits that save marksDua tabiat yang menyelamatkan markah


- Use symmetry. A quarter model is four times smaller; the cut edges get rollers (no displacement normal to them).Gunakan simetri. Model satu perempat empat kali lebih kecil; tepi yang dipotong diberi roller (tiada displacement normal kepadanya).
- Spread concentrated loads. A point force is a singularity; apply it over the real contact width, or read the stresses away from it.Sebarkan load tertumpu. Point force ialah singularity; kenakan pada lebar sentuhan sebenar, atau baca stress jauh daripadanya.
Key pointsPerkara utama
- Idealisation · convergence table · one check · quantified conclusions.Idealisation · convergence table · satu semakan · kesimpulan yang dikuantifikasi.
- Every sentence of a results section carries a number.Setiap ayat dalam bahagian keputusan membawa nombor.
- Project: 2D, ANSYS, verified; 60% of the marks for modelling and verification.Projek: 2D, ANSYS, disahkan; 60% markah untuk pemodelan dan pengesahan.
Which sentence meets the reporting standard?Ayat mana yang memenuhi piawai pelaporan?
(b) gives the number, the comparison with its sign and the convergence. (a) has no number. (c) quotes a singular peak: 7467 kN m−2 is σxx at the corner centroid of the 64 × 32 mesh, and it would rise again on the next mesh.(b) memberi nombor, perbandingan bersama tandanya dan convergence. (a) tiada nombor. (c) memetik puncak singular: 7467 kN m−2 ialah σxx pada centroid bucu mesh 64 × 32, dan ia akan naik lagi pada mesh seterusnya.
SlidesSlides
What to doApa perlu dibuat Step through with ◀ ▶ (⏮ ⏭ for the first and last), the ← → keys, the mouse wheel or a swipe on the slide, or drag the bar under the slide to any page; the list below jumps to any slide. Download the PDF for printing and offline reading.Gerak dengan ◀ ▶ (⏮ ⏭ untuk slide pertama dan terakhir), kekunci ← →, roda tetikus atau leret pada slide, atau seret bar di bawah slide ke mana-mana halaman; senarai di bawah melompat ke mana-mana slide. Muat turun PDF untuk cetakan dan bacaan luar talian.
Counts toward progress:Dikira dalam kemajuan: each slide you open, once.setiap slide yang anda buka, sekali.
Loading slides…Memuatkan slides…
ExamplesContoh
What to doApa perlu dibuat Model answers in exam form, with suggested marks. Try each question on paper first, then compare step by step; tick it at the end when you have worked through it.Jawapan model dalam bentuk peperiksaan, dengan markah cadangan. Cuba setiap soalan di atas kertas dahulu, kemudian bandingkan langkah demi langkah; tandanya di hujung apabila anda sudah mengikutinya.
Counts toward progress:Dikira dalam kemajuan: examples ticked as worked through.contoh yang ditanda sudah diikuti.
How this topic is examinedBagaimana topik ini diuji
Model answers in the form the examiner expects: physical picture, plan, numbered steps with every substitution written out, checks, a boxed answer and an interpretation. The marks shown are a suggested scheme; the examiner’s own scheme may differ. Expect one hand calculation on a single element and one judgement question.Jawapan model dalam bentuk yang pemeriksa jangkakan: gambaran fizikal, pelan, langkah bernombor dengan setiap penggantian ditulis, semakan, jawapan berkotak dan tafsiran. Markah yang ditunjukkan ialah skema cadangan; skema pemeriksa sendiri mungkin berbeza. Jangkakan satu pengiraan tangan pada satu element dan satu soalan penilaian.
| Question typeJenis soalan | Given and wantedDiberi dan dikehendaki | Plan and the usual trapPelan dan perangkap biasa |
|---|---|---|
| Displacement and stress at a pointDisplacement dan stress pada satu titik | Nodal displacements of an element; wanted: u, v, σ at (x1, y1).Nodal displacement satu element; dikehendaki: u, v, σ pada (x1, y1). | Ni and [B] at the point, then [E]. Trap: global coordinates in Ni; the factor (1 − ν)/2.Ni dan [B] pada titik itu, kemudian [E]. Perangkap: koordinat global dalam Ni; faktor (1 − ν)/2. |
| Stresses and reactions from a computer solutionStress dan reaction daripada penyelesaian komputer | {U} of a small mesh; wanted: stresses at element centres, reactions, a comparison.{U} bagi mesh kecil; dikehendaki: stress pada pusat element, reaction, perbandingan. | Centre formulas; struck rows of [K]{U} − {R}; beam theory. Trap: rounded displacements in a difference.Formula pusat; baris yang dibuang [K]{U} − {R}; beam theory. Perangkap: displacement yang dibundarkan dalam beza. |
| Judge the accuracyMenilai ketepatan | Results of two or three meshes, sometimes an exact value; wanted: the error and its cause.Keputusan dua atau tiga mesh, kadang-kadang nilai tepat; dikehendaki: ralat dan puncanya. | Signed percentage; rate from three meshes; (10.1). Trap: “more elements are better” without saying what improves.Peratus bertanda; kadar daripada tiga mesh; (10.1). Perangkap: “lebih banyak element lebih baik” tanpa menyatakan apa yang bertambah baik. |
| ExplainTerangkan | Why a Q4 is stiff in bending; why stresses jump; what a singularity is.Mengapa Q4 kaku dalam bending; mengapa stress melompat; apa itu singularity. | Claim, reason (the mechanism), consequence for the mesh — in that order.Dakwaan, sebab (mekanisme), akibat kepada mesh — mengikut urutan itu. |
Notation follows the companion: {d} the element displacements, Ē = E/(1 − ν²), G = Ē(1 − ν)/2; node i owns the global dofs Ui (2i − 1) and Vi (2i).Notasi mengikut buku pendamping: {d} displacement element, Ē = E/(1 − ν²), G = Ē(1 − ν)/2; node i memiliki dof global Ui (2i − 1) dan Vi (2i).
Example 1 · The text’s cantilever: stresses at the element centres, reactions and accuracyContoh 1 · Cantilever dalam teks: stress pada pusat element, reaction dan ketepatan
| nodenode | 2 | 3 | 5 | 6 | 8 | 9 |
|---|---|---|---|---|---|---|
| Ui (m) | −0.03097 | −0.04197 | 0 | 0 | 0.03097 | 0.04197 |
| Vi (m) | −0.04552 | −0.13058 | −0.04301 | −0.13042 | −0.04552 | −0.13058 |
Physical picture.Gambaran fizikal. The end load bends the cantilever downward: the top fibres stretch, the bottom ones shorten, and every section carries a 10 kN shear. Element 1 is in the bottom half, so expect σxx in compression, element 3 the same in tension, and both with the same shear. Beam theory gives the tip deflection PL³/3EI + PL/κGA = 0.160 + 0.032 = 0.192 m; four Q4 elements are a coarse model of bending, so expect less.End load melentur cantilever ke bawah: fibre atas meregang, yang bawah memendek, dan setiap keratan membawa shear 10 kN. Element 1 di separuh bawah, jadi jangkakan σxx dalam compression, element 3 sama dalam tension, dan kedua-duanya dengan shear yang sama. Beam theory memberi tip deflection PL³/3EI + PL/κGA = 0.160 + 0.032 = 0.192 m; empat Q4 element ialah model bending yang kasar, jadi jangkakan kurang.
Plan. s1–s12 for a = 2, b = 1 → loads → {d} of elements 1 and 3 → strains at the centres → [E] → beam theory → struck rows for the reactions → finer meshes.
Step 1 (a) Element constants and loads(a) Pemalar element dan load[3]
Check. The u entries of row 1 add up to zero: 0.875 − 0.123 − 0.438 − 0.314 = 0.000. The three loads add up to −10 kN.
Step 2 (b) Element displacements(b) Displacement element[2]
Element 1 has the nodes 1, 2, 5, 4 in local order, soElement 1 mempunyai node 1, 2, 5, 4 mengikut susunan local, jadi
and element 3, nodes 4, 5, 8, 7, has the mirror image: {0, 0, 0, −0.04301, 0.03097, −0.04552, 0, 0}ᵀ m.dan element 3, node 4, 5, 8, 7, mempunyai imej cerminnya: {0, 0, 0, −0.04301, 0.03097, −0.04552, 0, 0}ᵀ m.
Step 3 (c) Strains at the centre of element 1(c) Strain pada pusat element 1[4]
At (a/2, b/2) the rows of [B] reduce to averages of the side differences:Pada (a/2, b/2) baris [B] menjadi purata beza sisi:
Step 4 (c) Stresses and beam theory(c) Stress dan beam theory[4]
With Ē = 224.44 × 10⁶ N m−2 (strains in 10−3):Dengan Ē = 224.44 × 10⁶ N m−2 (strain dalam 10−3):
Element 3, above it, has σxx = +1645 kN m−2 and the same shear. Beam theory at x = 1 m, 0.5 m from the neutral axis:Element 3, di atasnya, mempunyai σxx = +1645 kN m−2 dan shear yang sama. Beam theory pada x = 1 m, 0.5 m dari neutral axis:
Step 5 (d) Reactions(d) Reaction[3]
The struck rows of [K]{U} − {R} at the fixed nodes (no load acts there) give the reactions (Rx, Ry):Baris yang dibuang [K]{U} − {R} pada node tetap (tiada load bertindak di situ) memberi reaction (Rx, Ry):
Check. They balance the 10 kN load and its 40 kN m moment about the support.
Step 6 (e) Accuracy(e) Ketepatan[4]
The tip deflection, at the corners of the free end, is 0.1306 m. Finer meshes of the course solver:Tip deflection, pada bucu hujung bebas, ialah 0.1306 m. Mesh lebih halus daripada solver kursus:
| mesh | 2 × 2 | 4 × 2 | 8 × 4 | 16 × 8 | 32 × 16 | 128 × 64 | beam |
|---|---|---|---|---|---|---|---|
| tip (m)tip (m) | 0.1306 | 0.1643 | 0.1824 | 0.1886 | 0.1906 | 0.1915 | 0.1919 |
Marking scheme (suggested)Skema pemarkahan (cadangan) · 20
| What earns the marksApa yang diberi markah | MarksMarkah |
|---|---|
| Element constants and the three nodal loadsPemalar element dan tiga nodal load | 3 |
| Element displacements in local orderDisplacement element mengikut susunan local | 2 |
| Three strains at the centreTiga strain pada pusat | 4 |
| Stresses with [E]; beam theory and V/tHStress dengan [E]; beam theory dan V/tH | 4 |
| Reactions and the equilibrium checkReaction dan semakan keseimbangan | 3 |
| Percentages and the mesh neededPeratus dan mesh yang diperlukan | 4 |
| TotalJumlah | 20 |
Example 2 · How far is the finest mesh from the answer? An error estimate from three meshesContoh 2 · Sejauh mana mesh paling halus dari jawapan? Anggaran ralat daripada tiga mesh
Physical picture.Gambaran fizikal. Each halving of the elements moves the deflection up by a smaller step. If the steps shrink by a fixed factor 2p, the remaining distance to the converged value is a fixed multiple of the last step, which is what (10.1) uses. For a smooth problem a Q4 nodal value has p = 2; the clamped corner of the cantilever, where the elastic stress is singular, should lower it.Setiap kali saiz element dibahagi dua, deflection naik dengan langkah yang lebih kecil. Jika langkah mengecil dengan faktor tetap 2p, jarak yang tinggal ke nilai converge ialah gandaan tetap bagi langkah terakhir, dan itulah yang digunakan oleh (10.1). Bagi masalah licin, nilai node Q4 mempunyai p = 2; bucu terkapit cantilever, di mana stress elastic singular, sepatutnya merendahkannya.
Plan. Successive changes → 2p and p → (10.1) with the measured p and with p = 2 → error of the finest mesh → compare with the 128 × 64 result and with beam theory.
Step 1 (a) The rate(a) Kadar[4]
Step 2 (b) The converged value(b) Nilai converge[4]
Step 3 (c) Error of the finest mesh(c) Ralat mesh paling halus[3]
Step 4 (d) Comment(d) Ulasan[4]
The extrapolation from three meshes lands within 0.03% of a mesh with sixteen times as many elements as the finest of them, at a fraction of its cost. The assumed p = 2 falls short because the clamped corner slows the convergence; a third mesh is what reveals that. Beam theory is not the reference for the mesh error: it is a different model (a shear coefficient of 5/6 and no restraint of the Poisson contraction at the support), and its 0.2% difference from the converged plane-stress answer is a modelling difference, not a mesh error.Ekstrapolasi daripada tiga mesh mendarat dalam 0.03% daripada mesh yang mempunyai enam belas kali ganda bilangan element mesh paling halus antaranya, dengan kos yang jauh lebih rendah. Andaian p = 2 tidak mencukupi kerana bucu terkapit melambatkan convergence; mesh ketiga yang mendedahkannya. Beam theory bukan rujukan untuk ralat mesh: ia model yang berbeza (shear coefficient 5/6 dan tiada kekangan Poisson contraction pada support), dan perbezaan 0.2% daripada jawapan plane stress yang converge ialah perbezaan pemodelan, bukan ralat mesh.
Marking scheme (suggested)Skema pemarkahan (cadangan) · 15
| What earns the marksApa yang diberi markah | MarksMarkah |
|---|---|
| Successive changes, 2p and pPerubahan berturut-turut, 2p dan p | 4 |
| Extrapolated value, both ratesNilai ekstrapolasi, kedua-dua kadar | 4 |
| Signed error of the finest meshRalat bertanda mesh paling halus | 3 |
| Comparison with the fine mesh and with beam theory, with reasonsPerbandingan dengan mesh halus dan beam theory, dengan sebab | 4 |
| TotalJumlah | 15 |
Example 3 · Why a Q4 element is too stiff in bending, and which refinement helpsContoh 3 · Mengapa Q4 element terlalu kaku dalam bending, dan refine mana yang membantu
| mesh (along × through)mesh (sepanjang × merentas) | 2 × 2 | 2 × 4 | 2 × 8 | 4 × 2 | 8 × 2 | 8 × 4 | 16 × 8 |
|---|---|---|---|---|---|---|---|
| % | 68.2 | 69.6 | 70.1 | 85.8 | 91.9 | 95.2 | 98.5 |
Physical picture.Gambaran fizikal. In pure bending the top and bottom fibres curve while the ends stay plane and square to them. The sides of a Q4 element stay straight, so its ends can rotate only by shearing the element. That shear stores energy which the real block does not have, and the element resists bending more than it should.Dalam pure bending, fibre atas dan bawah melengkung manakala hujung kekal rata dan tegak kepadanya. Sisi Q4 element kekal lurus, jadi hujungnya hanya boleh berputar dengan meng-shear element itu. Shear itu menyimpan tenaga yang tiada pada blok sebenar, dan element itu menentang bending lebih daripada sepatutnya.
Plan. Bilinear bending field → its strains → strain energy → moment–rotation → ratio → the cantilever table → Q8.
Step 1 (a) The strain field(a) Strain field[4]
Let the element bend to a curvature κ′, with the origin at its centre, so that its ends turn by ±κ′a/2. The bilinear field that does this isBiarkan element melentur kepada kelengkungan κ′, dengan origin di pusatnya, supaya hujungnya berputar ±κ′a/2. Field bilinear yang melakukannya ialah
The exact field has γxy = 0 and εyy = −νεxx. The element has a shear strain that grows towards its ends — the parasitic shear — and no lateral strain, because v would need a y² term.Field tepat mempunyai γxy = 0 dan εyy = −νεxx. Element itu mempunyai shear strain yang bertambah ke arah hujungnya — parasitic shear — dan tiada lateral strain, kerana v memerlukan term y².
Step 2 (a) Strain energy(a) Tenaga strain[4]
With εyy = 0, σxx = Ēεxx, and per unit thicknessDengan εyy = 0, σxx = Ēεxx, dan per unit ketebalan
Step 3 (a) Moment and the ratio of rotations(a) Momen dan nisbah putaran[5]
Check. A one-element computation with the course solver, end couples applied as consistent loads, gives 0.837, 0.674, 0.379 and 0.138: the same four ratios.
Step 4 (b) The cantilever(b) Cantilever[4]
Refining through the depth only, 2 × 2 → 2 × 4 → 2 × 8, moves the deflection from 68.2 to 70.1%. Every layer of elements carries the same parasitic shear, whatever its depth: what governs is the element length over the depth of the member, a/B, which stays 1. Refining along the length, 2 × 2 → 4 × 2 → 8 × 2, raises it to 85.8 and 91.9%, because a/B falls to 0.5 and 0.25. With both, 8 × 4 and 16 × 8 reach 95.2 and 98.5% at a/B = 0.25 and 0.125.Refine merentas kedalaman sahaja, 2 × 2 → 2 × 4 → 2 × 8, mengubah deflection dari 68.2 kepada 70.1%. Setiap lapisan element membawa parasitic shear yang sama, tanpa mengira kedalamannya: yang menentukan ialah panjang element berbanding kedalaman anggota, a/B, yang kekal 1. Refine di sepanjang panjang, 2 × 2 → 4 × 2 → 8 × 2, menaikkannya kepada 85.8 dan 91.9%, kerana a/B turun kepada 0.5 dan 0.25. Dengan kedua-duanya, 8 × 4 dan 16 × 8 mencapai 95.2 dan 98.5% pada a/B = 0.25 dan 0.125.
Step 5 (c) The 8-node element(c) 8-node element[3]
Its sides are quadratic, so they can curve and pure bending needs no shear. Two Q8 elements give 0.1780 m (92.9%) and a 4 × 2 Q8 mesh 0.1885 m (98.4%), against 68.2% for four Q4 elements.Sisinya quadratic, jadi ia boleh melengkung dan pure bending tidak memerlukan shear. Dua Q8 element memberi 0.1780 m (92.9%) dan mesh Q8 4 × 2 memberi 0.1885 m (98.4%), berbanding 68.2% bagi empat Q4 element.
Marking scheme (suggested)Skema pemarkahan (cadangan) · 20
| What earns the marksApa yang diberi markah | MarksMarkah |
|---|---|
| Bilinear field and its three strainsField bilinear dan tiga strain-nya | 4 |
| Strain energy with both termsTenaga strain dengan kedua-dua term | 4 |
| Moment, exact moment, ratio and its valuesMomen, momen tepat, nisbah dan nilainya | 5 |
| Which refinement helps, with a/BRefine mana yang membantu, dengan a/B | 4 |
| What Q8 changes, with numbersApa yang diubah oleh Q8, dengan nombor | 3 |
| TotalJumlah | 20 |
ExercisesLatihan
What to doApa perlu dibuat Start the timer. For each question choose Sure or Not sure first, then answer. The summary at the end compares your confidence with your results.Mulakan timer. Untuk setiap soalan pilih Yakin atau Tak pasti dahulu, kemudian jawab. Ringkasan di hujung membandingkan keyakinan anda dengan keputusan.
Counts toward progress:Dikira dalam kemajuan: questions answered (B: checked, or solution viewed).soalan yang dijawab (B: disemak, atau penyelesaian dilihat).
A Concept questionsSoalan konsep · 6 × 1 markmarkah
Click one option. One try: the right answer is marked ✓ and explained.Klik satu pilihan. Satu cubaan: jawapan betul ditanda ✓ dan diterangkan.
Order the operations that take the solved nodal displacements to a stress at a point.Susun operasi yang membawa nodal displacement yang diselesaikan kepada stress pada satu titik.
Locate first, because [B] must be evaluated at the local coordinates of the point in the element that contains it; then strains, then stresses. [k]{û} gives nodal forces, not stresses.Cari dahulu, kerana [B] mesti dinilai pada koordinat local titik itu dalam element yang mengandunginya; kemudian strain, kemudian stress. [k]{û} memberi nodal force, bukan stress.
In a displacement-based model, why are the stresses less accurate than the displacements?Dalam model berasaskan displacement, mengapa stress kurang tepat berbanding displacement?
The method solves for nodal displacements; strains come from differentiating the shape functions, which loses one order of accuracy, and each element differentiates its own field, so the stresses jump at shared sides. [E] is exact for the idealisation; consistent loads are not lumped.Kaedah ini menyelesaikan nodal displacement; strain datang daripada membezakan shape function, yang kehilangan satu peringkat ketepatan, dan setiap element membezakan field sendiri, jadi stress melompat pada sisi yang dikongsi. [E] tepat bagi idealisation itu; consistent load tidak dikumpulkan.
Which display option shows the jumps of stress between neighbouring elements?Pilihan paparan mana yang menunjukkan lompatan stress antara element yang berjiran?
Unaveraged shows each element’s own values at its nodes, so two values meet at every shared node and the jump is visible. Elemental mean shows one value per element; Averaged smooths the jumps away without removing the error.Unaveraged menunjukkan nilai setiap element sendiri pada node-nya, jadi dua nilai bertemu pada setiap node yang dikongsi dan lompatannya kelihatan. Elemental mean menunjukkan satu nilai setiap element; Averaged melicinkan lompatan tanpa menghapuskan ralat.
σxx next to the fully fixed corner rises 4134 → 5372 → 6400 → 7467 kN m−2 as the elements are halved. What do you report?σxx bersebelahan bucu yang tetap sepenuhnya meningkat 4134 → 5372 → 6400 → 7467 kN m−2 apabila element dibahagi dua. Apa yang anda laporkan?
The steps do not shrink (1238, 1028, 1067), so there is no limit to extrapolate to: the elastic stress at a fully fixed re-entrant corner is infinite. Report values outside the corner zone or model the support realistically.Langkahnya tidak mengecil (1238, 1028, 1067), jadi tiada had untuk diekstrapolasi: stress elastic pada re-entrant corner yang tetap sepenuhnya ialah infiniti. Laporkan nilai di luar zon bucu atau modelkan support secara realistik.
Two meshes of 8-node elements, 2 × 1 and 4 × 2, give tip deflections of 0.1780 and 0.1885 m (converged 0.1915). Four 4-node elements give 0.1306 m. The main reason the Q8 does better per element is thatDua mesh 8-node element, 2 × 1 dan 4 × 2, memberi tip deflection 0.1780 dan 0.1885 m (converge 0.1915). Empat 4-node element memberi 0.1306 m. Sebab utama Q8 lebih baik bagi setiap element ialah
A Q4 keeps its sides straight and can rotate a section only by shearing; the parasitic shear stores energy and resists bending (Example 3). The quadratic sides of a Q8 take the curved shape of a bent beam. More Gauss points are a consequence of the higher order, not the cause.Q4 mengekalkan sisinya lurus dan hanya boleh memutar keratan dengan shear; parasitic shear menyimpan tenaga dan menentang bending (Contoh 3). Sisi quadratic Q8 mengambil bentuk melengkung beam yang melentur. Lebih banyak Gauss point ialah akibat order yang lebih tinggi, bukan sebabnya.
A results section reads: “Four meshes were run and the results agree well with theory.” What is missing?Satu bahagian keputusan berbunyi: “Four meshes were run and the results agree well with theory.” Apa yang tiada?
The standard is a convergence table plus a signed, quantified comparison with an independent check. “Agree well” is an opinion; a contour plot without numbers does not verify anything.Piawainya ialah convergence table serta perbandingan yang dikuantifikasi dan bertanda dengan semakan bebas. “Agree well” ialah pendapat; contour plot tanpa nombor tidak mengesahkan apa-apa.
B Calculation, new numbers each timePengiraan, nombor baharu setiap kali · 17 marksmarkah
Type your numbers and press Check; each field is marked ✓ or ✗. Retry as often as you like, open hints one at a time, or show the solution. New numbers gives a fresh version.Taip nombor anda dan tekan Semak; setiap ruang ditanda ✓ atau ✗. Cuba semula seberapa kerap, buka petunjuk satu demi satu, atau tunjuk penyelesaian. Nombor baharu memberi versi baharu.
B2 · Principal stresses, their direction and von MisesPrincipal stress, arahnya dan von Mises
4 marksmarkahB3 · Rate, converged value and error from three meshesKadar, nilai converge dan ralat daripada tiga mesh
4 marksmarkahB4 · Edge loads on an 8-node side and on two 4-node sidesEdge load pada sisi 8-node dan pada dua sisi 4-node
3 marksmarkahC Find the slipCari kesilapan · 2 marksmarkah
Click the line that contains the error. One try.Klik baris yang mengandungi kesilapan. Satu cubaan.
A student recovers the stresses at (3.5, 1.3) m of the 2 × 2 cantilever (E = 200 × 10⁶ N m−2, ν = 0.33, Ē = 224.44 × 10⁶ N m−2). One line contains the slip. Which one?Seorang pelajar mendapatkan semula stress pada (3.5, 1.3) m bagi cantilever 2 × 2 (E = 200 × 10⁶ N m−2, ν = 0.33, Ē = 224.44 × 10⁶ N m−2). Satu baris mengandungi kesilapan. Yang mana?
Line 4: the shear row of [E] for plane stress is Ē(1 − ν)/2 = 75.19 × 10⁶ N m−2, which equals G = E/(2(1 + ν)). So σxy = 75.19(−4.1348) = −310.9 kN m−2, and line 5 becomes σvM = 636.8 kN m−2. The check that catches it: the shear entry must equal G, and a shear stress three times σxx near a free end is implausible.Baris 4: baris shear [E] bagi plane stress ialah Ē(1 − ν)/2 = 75.19 × 10⁶ N m−2, yang sama dengan G = E/(2(1 + ν)). Jadi σxy = 75.19(−4.1348) = −310.9 kN m−2, dan baris 5 menjadi σvM = 636.8 kN m−2. Semakan yang menangkapnya: entri shear mesti sama dengan G, dan shear stress tiga kali σxx berhampiran hujung bebas tidak munasabah.
∑ SummaryRingkasan
ExplorerExplorer
What to doApa perlu dibuat Work in the Stress Recovery Explorer (on a phone, open it in its own tab). Do the 4 tasks on the right; answers to the Explorer’s own questions are under “Check answer” inside it. Python code for assignments and projects, and a panel that runs short scripts in the browser, are at the bottom of this tab.Bekerja dalam Stress Recovery Explorer (di telefon, buka dalam tab sendiri). Buat 4 tugasan di sebelah kanan; jawapan kepada soalan Explorer ada di bawah “Check answer” di dalamnya. Kod Python untuk assignment dan projek, dan panel untuk menjalankan skrip pendek dalam browser, ada di bahagian bawah tab ini.
Counts toward progress:Dikira dalam kemajuan: tasks done.tugasan yang selesai.
Small screen? Skrin kecil? Open the Explorer in its own tabBuka Explorer dalam tab sendiri. Tasks done there are recorded here when you come back.Tugasan yang selesai di situ direkod di sini apabila anda kembali.
TasksTugasan · Stress Recovery Explorer
Each task ticks itself when the Explorer sees it done. Tick by hand only if it does not.Setiap tugasan ditanda sendiri apabila Explorer melihatnya selesai. Tanda sendiri hanya jika ia tidak ditanda.
14-node, 2 × 2 mesh: press “lecture point (3.5, 1.3)” and read σxx, σyy, σxy, σ1, σ2 and von Mises. Compare with your Activity 1 hand calculation.4-node, mesh 2 × 2: tekan “lecture point (3.5, 1.3)” dan baca σxx, σyy, σxy, σ1, σ2 dan von Mises. Bandingkan dengan pengiraan tangan Aktiviti 1 anda.
✓Ticks itself: Ditanda sendiri: detected when the 4-node 2 × 2 mesh shows the probe at (3.5, 1.3) after you have acteddikesan apabila mesh 4-node 2 × 2 memaparkan probe pada (3.5, 1.3) selepas anda bertindak ·
2Keep the point and refine: 8-node 16 × 8, then 32 × 16. Does σxx approach beam theory’s 225 kN m−2? Then probe mid-span, (2.0, 1.3).Kekalkan titik itu dan refine: 8-node 16 × 8, kemudian 32 × 16. Adakah σxx menghampiri 225 kN m−2 beam theory? Kemudian probe tengah rentang, (2.0, 1.3).
✓Ticks itself: Ditanda sendiri: detected when 8-node 16 × 8 and 32 × 16 have both been shown with the probe at (3.5, 1.3)dikesan apabila 8-node 16 × 8 dan 32 × 16 kedua-duanya dipaparkan dengan probe pada (3.5, 1.3) ·
3Run the corner study. Does the peak σxx next to the fixed corner converge?Jalankan corner study. Adakah puncak σxx bersebelahan bucu tetap converge?
✓Ticks itself: Ditanda sendiri: detected when the corner study runsdikesan apabila corner study dijalankan ·
4On the 4-node 4 × 2 mesh compare Elemental mean, Unaveraged and Averaged. Where do neighbouring elements disagree most?Pada mesh 4-node 4 × 2, bandingkan Elemental mean, Unaveraged dan Averaged. Di mana element berjiran paling tidak sepakat?
✓Ticks itself: Ditanda sendiri: detected when the 4-node 4 × 2 mesh has been shown with all three display optionsdikesan apabila mesh 4-node 4 × 2 dipaparkan dengan ketiga-tiga pilihan paparan ·
Python code for assignments and projectsKod Python untuk assignment dan projek
The same steps and notation as the notes, written out in plain Python. Use it to check every matrix and number of a hand calculation, and to run what is impractical by hand: mesh studies, contour plots, your own geometry and loads.Langkah dan notasi yang sama seperti nota, ditulis dalam Python biasa. Guna untuk menyemak setiap matrix dan nombor dalam pengiraan tangan, dan untuk menjalankan apa yang tidak praktikal dibuat dengan tangan: kajian mesh, contour plot, geometri dan beban anda sendiri.
- Unzip, then install Python 3.8 or newer and run
pip install numpy matplotlib(matplotlib only for the plots).Unzip, kemudian pasang Python 3.8 atau lebih baharu dan jalankanpip install numpy matplotlib(matplotlib hanya untuk plot). - Run
python fe_plane_stress.py. It reproduces the course example; README.txt lists the output you should see.Jalankanpython fe_plane_stress.py. Ia menghasilkan semula contoh kursus; README.txt menyenaraikan output yang sepatutnya keluar. - Read the docstring at the top of the file for the notation, numbering and units, and how to call it for your own problem.Baca docstring di bahagian atas fail untuk notasi, penomboran dan unit, dan cara memanggilnya untuk masalah anda sendiri.
A hand calculation is still a hand calculation: in a test or an assignment that asks for the steps, show them yourself.Pengiraan tangan tetap pengiraan tangan: dalam ujian atau assignment yang meminta langkah, tunjukkan sendiri.
Show the codeTunjuk kod · fe_plane_stress.py · 323 linesbaris
"""
SEAA 4243 Finite Element Method - plane stress with 4-node and 8-node elements
==============================================================================
Companion code for the Cantilever and Stress Recovery Explorers (Plane Stress).
It follows the course's steps in the text's notation (Mohd Yassin et al.,
MSNM 2020, Chapter 3):
[E] 3 x 3 material matrix, plane stress or plane strain text (3.10)
[B] strains from nodal displacements, {eps} = [d]^T[N]{u} weak form (3.31)-(3.38)
[k] = t * integral [B]^T [E] [B] dA closed form (3.42);
here by Gauss quadrature (2 x 2 points for the 4-node
element, 3 x 3 for the 8-node), which reproduces (3.42)
loads a uniform traction on the free end becomes consistent nodal
loads: q b/2 to each node (4-node, (3.45)); q b/6, 2q b/3,
q b/6 (8-node, (3.51))
solve assemble (3.46), strike the fixed edge's rows and columns
(3.48), solve (3.49); reactions from the struck rows;
stresses {sigma} = [E][B]{u} at any point; principal stresses,
von Mises, and nodal averaging as in ANSYS.
The built-in problem is the text's cantilever: a plate 4 m x 2 m,
t = 0.01 m, E = 200e6 N/m2, nu = 0.33, fixed at x = 0, loaded at x = 4 by a
uniform downward traction of 5000 N per metre of edge (P = 10 kN in total).
The functions take any L, H, mesh, material, thickness and load.
Mesh and numbering
4-node: nodes left to right, then bottom to top (the text's 2 x 2 mesh:
nodes 1-3 along the bottom). dof 2i-1 = u_i, dof 2i = v_i (1-based).
8-node: corner and mid-side nodes are numbered in the order they are
created; use node_at(res, x, y) to find a node.
Units
Any consistent set. The example uses N and m, so stresses come out in
N/m2 (divide by 1e3 for kN/m2). The traction q is force per unit length
of the loaded edge (N/m), the thickness already included.
Run
python fe_plane_stress.py
reproduces the 2 x 2 cantilever (tip deflection, reactions, stresses
at (3.5, 1.3)), the convergence of the 4- and 8-node meshes against
Timoshenko beam theory, and the growth of the stress at the fixed
corner; saves a von Mises contour plot if matplotlib is installed.
Use for your own model
from fe_plane_stress import solve_cantilever, stress_at, principal, von_mises
res = solve_cantilever(L=4, H=2, Nx=8, Ny=4, E=200e6, nu=0.33, t=0.01, q=-5000, nen=8)
s = stress_at(res, 2.0, 1.3) # (sxx, syy, sxy)
A hand calculation is still a hand calculation: use this script to check your
matrices and numbers, and to run the mesh study a project needs.
Dense numpy solver: fine up to a few thousand degrees of freedom.
Requires Python 3.8+ and numpy; matplotlib only for the plot.
Course SEAA 4243, Faculty of Civil Engineering, Universiti Teknologi Malaysia.
Code: MIT licence.
"""
import numpy as np
# ---------------------------------------------------------------------------
# Material
# ---------------------------------------------------------------------------
def E_matrix(E, nu, plane="stress"):
"""[E] of text (3.10) for plane stress; plane strain when plane = "strain"."""
if plane == "stress":
c = E / (1 - nu ** 2)
return c * np.array([[1, nu, 0], [nu, 1, 0], [0, 0, (1 - nu) / 2]])
c = E / ((1 + nu) * (1 - 2 * nu))
return c * np.array([[1 - nu, nu, 0], [nu, 1 - nu, 0], [0, 0, (1 - 2 * nu) / 2]])
# ---------------------------------------------------------------------------
# Shape functions in natural coordinates xi, eta in [-1, 1]
# ---------------------------------------------------------------------------
XI = np.array([-1, 1, 1, -1, 0, 1, 0, -1], dtype=float)
ETA = np.array([-1, -1, 1, 1, -1, 0, 1, 0], dtype=float)
def shape(nen, xi, eta):
"""N (nen,) and dN/dxi, dN/deta (2, nen) of the 4-node or 8-node element."""
if nen == 4:
N = 0.25 * (1 + XI[:4] * xi) * (1 + ETA[:4] * eta)
dN = np.vstack([0.25 * XI[:4] * (1 + ETA[:4] * eta), 0.25 * ETA[:4] * (1 + XI[:4] * xi)])
return N, dN
N = np.zeros(8); dN = np.zeros((2, 8))
for i in range(4):
cx, cy = XI[i], ETA[i]
N[i] = 0.25 * (1 + cx * xi) * (1 + cy * eta) * (cx * xi + cy * eta - 1)
dN[0, i] = 0.25 * cx * (1 + cy * eta) * (2 * cx * xi + cy * eta)
dN[1, i] = 0.25 * cy * (1 + cx * xi) * (cx * xi + 2 * cy * eta)
N[4] = 0.5 * (1 - xi ** 2) * (1 - eta); dN[:, 4] = [-xi * (1 - eta), -0.5 * (1 - xi ** 2)]
N[5] = 0.5 * (1 + xi) * (1 - eta ** 2); dN[:, 5] = [0.5 * (1 - eta ** 2), -eta * (1 + xi)]
N[6] = 0.5 * (1 - xi ** 2) * (1 + eta); dN[:, 6] = [-xi * (1 + eta), 0.5 * (1 - xi ** 2)]
N[7] = 0.5 * (1 - xi) * (1 - eta ** 2); dN[:, 7] = [-0.5 * (1 - eta ** 2), -eta * (1 - xi)]
return N, dN
def B_matrix(nen, a, b, xi, eta):
"""[B] (3 x 2nen) of an a x b rectangle at (xi, eta): rows exx, eyy, gamma_xy."""
_, dN = shape(nen, xi, eta)
dx, dy = dN[0] * 2 / a, dN[1] * 2 / b
B = np.zeros((3, 2 * nen))
B[0, 0::2] = dx
B[1, 1::2] = dy
B[2, 0::2] = dy
B[2, 1::2] = dx
return B
def element_stiffness(nen, a, b, Em, t):
"""[k] = t * integral [B]^T[E][B] dA by Gauss quadrature (2 x 2 for Q4, 3 x 3 for Q8)."""
g, w = np.polynomial.legendre.leggauss(2 if nen == 4 else 3)
k = np.zeros((2 * nen, 2 * nen))
for xi, wi in zip(g, w):
for eta, wj in zip(g, w):
B = B_matrix(nen, a, b, xi, eta)
k += t * (a / 2) * (b / 2) * wi * wj * B.T @ Em @ B
return k
# ---------------------------------------------------------------------------
# Mesh
# ---------------------------------------------------------------------------
def mesh(nen, L, H, Nx, Ny):
a, b = L / Nx, H / Ny
if nen == 4:
nodes = np.array([(i * a, j * b) for j in range(Ny + 1) for i in range(Nx + 1)], dtype=float)
conn = [[j * (Nx + 1) + i, j * (Nx + 1) + i + 1, (j + 1) * (Nx + 1) + i + 1, (j + 1) * (Nx + 1) + i]
for j in range(Ny) for i in range(Nx)]
return a, b, nodes, np.array(conn, dtype=int)
ids, nodes = {}, []
def node(x, y):
key = (round(x, 9), round(y, 9))
if key not in ids:
ids[key] = len(nodes); nodes.append((x, y))
return ids[key]
conn = []
for j in range(Ny):
for i in range(Nx):
x0, y0 = i * a, j * b
conn.append([node(x0, y0), node(x0 + a, y0), node(x0 + a, y0 + b), node(x0, y0 + b),
node(x0 + a / 2, y0), node(x0 + a, y0 + b / 2), node(x0 + a / 2, y0 + b), node(x0, y0 + b / 2)])
return a, b, np.array(nodes, dtype=float), np.array(conn, dtype=int)
def dofs_of(c):
return np.ravel([[2 * n, 2 * n + 1] for n in c])
# ---------------------------------------------------------------------------
# Solve the cantilever
# ---------------------------------------------------------------------------
def solve_cantilever(L=4.0, H=2.0, Nx=2, Ny=2, E=200e6, nu=0.33, t=0.01, q=-5000.0,
nen=4, plane="stress", load="edge"):
"""Fixed at x = 0; vertical load on x = L. load = "edge": uniform traction q (N/m)
by consistent nodal loads; load = "point": the total q*H at the top-right node."""
Em = E_matrix(E, nu, plane)
a, b, nodes, conn = mesh(nen, L, H, Nx, Ny)
n = len(nodes)
K = np.zeros((2 * n, 2 * n))
F = np.zeros(2 * n)
k = element_stiffness(nen, a, b, Em, t)
for c in conn:
d = dofs_of(c)
K[np.ix_(d, d)] += k # scatter-add by dof map
if load == "point":
F[2 * node_at_xy(nodes, L, H) + 1] += q * H
else:
for c in conn:
if np.isclose(nodes[c[1], 0], L): # element side 2-3 on the loaded edge
if nen == 4:
F[2 * c[1] + 1] += q * b / 2; F[2 * c[2] + 1] += q * b / 2
else:
F[2 * c[1] + 1] += q * b / 6; F[2 * c[5] + 1] += 2 * q * b / 3; F[2 * c[2] + 1] += q * b / 6
fixed_nodes = np.where(np.isclose(nodes[:, 0], 0.0))[0]
known = dofs_of(fixed_nodes)
free = np.setdiff1d(np.arange(2 * n), known)
U = np.zeros(2 * n)
U[free] = np.linalg.solve(K[np.ix_(free, free)], F[free])
Rk = K[known] @ U - F[known] # struck rows: support reactions
Rx, Ry = Rk[0::2].sum(), Rk[1::2].sum()
M = sum(-(nodes[nd, 1] - H / 2) * Rk[2 * i] for i, nd in enumerate(fixed_nodes))
return dict(nen=nen, L=L, H=H, Nx=Nx, Ny=Ny, a=a, b=b, E=E, nu=nu, t=t, q=q, plane=plane, Em=Em,
nodes=nodes, conn=conn, K=K, F=F, U=U, known=known, reactions=dict(Rx=Rx, Ry=Ry, M=M),
tip=U[2 * node_at_xy(nodes, L, H) + 1])
def node_at_xy(nodes, x, y):
return int(np.argmin(np.hypot(nodes[:, 0] - x, nodes[:, 1] - y)))
def node_at(res, x, y):
"""0-based index of the node nearest to (x, y)."""
return node_at_xy(res["nodes"], x, y)
# ---------------------------------------------------------------------------
# Stresses
# ---------------------------------------------------------------------------
def locate(res, x, y):
"""Element containing (x, y) and the natural coordinates of the point in it."""
i = min(res["Nx"] - 1, max(0, int(np.floor(x / res["a"] + 1e-12))))
j = min(res["Ny"] - 1, max(0, int(np.floor(y / res["b"] + 1e-12))))
e = j * res["Nx"] + i
x1, y1 = res["nodes"][res["conn"][e][0]]
return e, 2 * (x - x1) / res["a"] - 1, 2 * (y - y1) / res["b"] - 1
def stress_in_element(res, e, xi, eta):
c = res["conn"][e]
B = B_matrix(res["nen"], res["a"], res["b"], xi, eta)
return res["Em"] @ (B @ res["U"][dofs_of(c)])
def stress_at(res, x, y):
"""(sxx, syy, sxy) at a global point, from the element that contains it."""
e, xi, eta = locate(res, x, y)
return stress_in_element(res, e, xi, eta)
def principal(s):
"""sigma1, sigma2 and the angle (degrees) of sigma1 from x: the Mohr circle."""
c = (s[0] + s[1]) / 2
R = np.hypot((s[0] - s[1]) / 2, s[2])
return c + R, c - R, 0.5 * np.degrees(np.arctan2(2 * s[2], s[0] - s[1]))
def von_mises(s):
"""Plane-stress von Mises stress."""
return np.sqrt(s[0] ** 2 - s[0] * s[1] + s[1] ** 2 + 3 * s[2] ** 2)
def nodal_stresses(res, mode="averaged"):
"""Stresses at the nodes, as post-processors show them.
"unaveraged": each element's own value at its nodes, (ne, nen, 3) - jumps visible;
"averaged": the mean over the elements sharing each node, (n, 3);
"centroid": one value per element, (ne, 3)."""
nen, conn = res["nen"], res["conn"]
if mode == "centroid":
return np.array([stress_in_element(res, e, 0, 0) for e in range(len(conn))])
un = np.array([[stress_in_element(res, e, XI[i], ETA[i]) for i in range(nen)] for e in range(len(conn))])
if mode == "unaveraged":
return un
n = len(res["nodes"])
av = np.zeros((n, 3)); cnt = np.zeros(n)
for e, c in enumerate(conn):
for i, nd in enumerate(c):
av[nd] += un[e, i]; cnt[nd] += 1
return av / cnt[:, None]
# ---------------------------------------------------------------------------
# Beam theory for comparison
# ---------------------------------------------------------------------------
def timoshenko_tip(L, H, E, nu, t, q, plane="stress", kappa=5 / 6):
"""Tip deflection magnitude: bending PL^3/(3EI) plus shear PL/(kappa G A)."""
P = -q * H
I, A, G = t * H ** 3 / 12, t * H, E / (2 * (1 + nu))
Eb = E / (1 - nu ** 2) if plane == "strain" else E
return P * L ** 3 / (3 * Eb * I), P * L / (kappa * G * A)
def plot_von_mises(res, filename="von_mises.png"):
try:
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
except ImportError:
print("matplotlib is not installed: skipping the plot")
return None
xs = np.linspace(0, res["L"], 161); ys = np.linspace(0, res["H"], 81)
X, Y = np.meshgrid(xs, ys)
Z = np.vectorize(lambda x, y: von_mises(stress_at(res, x, y)) / 1e3)(X, Y)
fig, ax = plt.subplots(figsize=(8, 4.6))
# the fixed corners are singular: cap the colour scale at the 99th percentile
levels = MaxNLocator(nbins=20).tick_values(0, np.percentile(Z, 99))
cf = ax.contourf(X, Y, Z, levels=levels, cmap="jet", extend="max")
ax.set_aspect("equal"); ax.set_xlabel("x (m)"); ax.set_ylabel("y (m)")
fig.colorbar(cf, ax=ax, label="von Mises (kN/m2)")
ax.set_title(f"{res['nen']}-node, {res['Nx']} x {res['Ny']} mesh")
fig.savefig(filename, dpi=150, bbox_inches="tight")
plt.close(fig)
print("saved", filename)
return filename
# ---------------------------------------------------------------------------
# Course examples
# ---------------------------------------------------------------------------
if __name__ == "__main__":
np.set_printoptions(precision=4, suppress=True, linewidth=140)
base = dict(L=4.0, H=2.0, E=200e6, nu=0.33, t=0.01, q=-5000.0)
r = solve_cantilever(Nx=2, Ny=2, **base)
print("Text cantilever, 4-node 2 x 2 mesh, (3.44)-(3.49) (nodes 1-3 along the bottom)")
U = r["U"].reshape(-1, 2)
for i, (u, v) in enumerate(U):
print(f" node {i + 1}: u = {u:+.6f} v = {v:+.6f} m")
print(f" tip deflection = {r['tip']:.4f} m (text: -0.131)")
R = r["reactions"]
print(f" reactions: Rx = {R['Rx']:.1f} N, Ry = {R['Ry']:.1f} N, M = {R['M']:.1f} N m (10 kN up, 40 kN m)")
s = stress_at(r, 3.5, 1.3) / 1e3
s1, s2, th = principal(s)
print(f" stress at (3.5, 1.3) = {np.round(s, 1)} kN/m2 (315.2, -44.9, -310.9)")
print(f" principal {s1:.1f}, {s2:.1f} kN/m2 at {th:.1f} deg; von Mises {von_mises(s):.1f} (494.4, -224.1; 636.8)")
bend, shear = timoshenko_tip(**base)
print(f"\nConvergence of the tip deflection; Timoshenko beam {bend:.3f} + {shear:.3f} = {bend + shear:.3f} m")
for nen, meshes in ((4, [(2, 1), (2, 2), (4, 2), (8, 4), (16, 8), (32, 16)]), (8, [(2, 1), (4, 2), (8, 4), (16, 8)])):
for Nx, Ny in meshes:
rr = solve_cantilever(Nx=Nx, Ny=Ny, nen=nen, **base)
print(f" {nen}-node {Nx:2d} x {Ny:<2d} dofs {rr['U'].size:5d} tip {rr['tip']:.4f} m")
r8 = solve_cantilever(Nx=16, Ny=8, nen=8, **base)
print(f"\n8-node 16 x 8: sxx(2.0, 1.3) = {stress_at(r8, 2.0, 1.3)[0] / 1e3:.1f} kN/m2 (beam theory 900);"
f" sxx(3.5, 1.3) = {stress_at(r8, 3.5, 1.3)[0] / 1e3:.1f} (beam 225: end effect, St-Venant)")
print("\nFixed corner: sxx at the centroid of the top-left element grows with every refinement (a singularity)")
for Nx, Ny in ((8, 4), (16, 8), (32, 16)):
rr = solve_cantilever(Nx=Nx, Ny=Ny, **base)
print(f" 4-node {Nx} x {Ny}: {stress_at(rr, rr['a'] / 2, 2 - rr['b'] / 2)[0] / 1e3:.0f} kN/m2")
plot_von_mises(r8, "von_mises_q8_16x8.png")
Run the code in your browserJalankan kod dalam browser trialpercubaan
Edit a short script and run it here, with no installation. Python runs on your own device; nothing is sent anywhere. The first run downloads Python, about 9 MB (about 20 MB once a script plots), and takes 10–30 s; later runs take a second or two.Ubah skrip pendek dan jalankan di sini, tanpa pemasangan. Python berjalan pada peranti anda sendiri; tiada apa yang dihantar ke mana-mana. Larian pertama memuat turun Python, lebih kurang 9 MB (lebih kurang 20 MB apabila skrip membuat plot), dan mengambil 10–30 s; larian seterusnya sesaat dua.
Ctrl+Enter (⌘+Enter) runs. Your edits are kept in this browser; Reset script brings back the original. For an assignment or a project, download the code above and run it on your computer.Ctrl+Enter (⌘+Enter) menjalankan skrip. Suntingan anda disimpan dalam browser ini; Set semula skrip memulihkan yang asal. Untuk assignment atau projek, muat turun kod di atas dan jalankan di komputer anda.
GlossaryGlosari
What to doApa perlu dibuat Look up a term; type in the box to filter. Terms stay in English in both languages; the explanation follows the language you chose.Cari istilah; taip dalam kotak untuk menapis. Istilah kekal dalam bahasa Inggeris dalam kedua-dua bahasa; penjelasan mengikut bahasa yang anda pilih.
Not counted toward progress.Tidak dikira dalam kemajuan.
| stress recovery · post-processing | Computing strains and stresses from the solved nodal displacements, {σ} = [E][B]{û}.Mengira strain dan stress daripada nodal displacement yang diselesaikan, {σ} = [E][B]{û}. |
| strain–displacement matrix [B] | [∂]ᵀ[N], 3 × 8 for a four-node element: its rows give εxx, εyy, εxy from the eight nodal displacements.[∂]ᵀ[N], 3 × 8 bagi four-node element: barisnya memberi εxx, εyy, εxy daripada lapan nodal displacement. |
| primary · derived result | Displacements are solved for; strains and stresses are derived by differentiation and are less accurate.Displacement diselesaikan secara langsung; strain dan stress diterbitkan melalui pembezaan dan kurang tepat. |
| principal stresses σ1, σ2 | The normal stresses on the planes where the shear is zero; the largest and smallest normal stress at the point.Normal stress pada satah di mana shear sifar; normal stress terbesar dan terkecil pada titik itu. |
| principal direction θp | Angle from the x-axis to σ1: ½ tan−1[2σxy/(σxx − σyy)], taken in the right quadrant.Sudut dari paksi x ke σ1: ½ tan−1[2σxy/(σxx − σyy)], diambil dalam sukuan yang betul. |
| Mohr’s circle | The stress state drawn as a circle: centre (σxx + σyy)/2, radius √[((σxx − σyy)/2)² + σxy²].Keadaan stress dilukis sebagai bulatan: pusat (σxx + σyy)/2, jejari √[((σxx − σyy)/2)² + σxy²]. |
| von Mises stress | An equivalent uniaxial stress for yielding of ductile metals: √(σ1² − σ1σ2 + σ2²) in plane stress.Stress uniaxial setara untuk alah logam mulur: √(σ1² − σ1σ2 + σ2²) dalam plane stress. |
| Elemental mean | Display option: one value per element, at its centroid.Pilihan paparan: satu nilai setiap element, pada centroid-nya. |
| Unaveraged | Display option: each element’s own nodal values; the jumps between elements stay visible.Pilihan paparan: nilai node setiap element sendiri; lompatan antara element kekal kelihatan. |
| Averaged · nodal averaging | Display option: the mean of all elements at a node; smooth, but no more accurate.Pilihan paparan: purata semua element pada satu node; licin, tetapi tidak lebih tepat. |
| stress jump | The difference between neighbouring elements’ stresses at a shared side; a free indicator of the local mesh error.Perbezaan stress element berjiran pada sisi yang dikongsi; penunjuk percuma bagi ralat mesh setempat. |
| St-Venant’s principle | How a load is applied matters only within about one depth of where it acts; beyond that only its resultant counts.Cara load dikenakan hanya penting dalam kira-kira satu kedalaman dari tempat ia bertindak; selepas itu hanya resultant-nya yang dikira. |
| singularity | A point where the elastic stress is infinite (fully fixed re-entrant corner, point load): the computed peak grows with every refinement.Titik di mana stress elastic infiniti (re-entrant corner tetap sepenuhnya, point load): puncak yang dikira meningkat dengan setiap refine. |
| stress concentration · Kt | A finite local rise of stress at a smooth hole or fillet; Kt = peak/nominal; it converges under refinement.Kenaikan stress setempat yang terhingga pada lubang licin atau fillet; Kt = puncak/nominal; ia converge apabila di-refine. |
| 8-node (serendipity) element · Q8 | Rectangle with corner and mid-side nodes, 16 dofs, quadratic along every side; PLANE183 in ANSYS.Segi empat tepat dengan node bucu dan tengah sisi, 16 dof, quadratic di sepanjang setiap sisi; PLANE183 dalam ANSYS. |
| consistent edge loads | Nodal shares of an edge load from ∫Niq ds: ½, ½ on a 4-node side; ⅙, ⅔, ⅙ on an 8-node side.Bahagian nodal bagi edge load daripada ∫Niq ds: ½, ½ pada sisi 4-node; ⅙, ⅔, ⅙ pada sisi 8-node. |
| shear locking · parasitic shear | A 4-node element bent by a moment shears because its sides stay straight; the spurious shear energy makes it too stiff.4-node element yang dilentur oleh momen mengalami shear kerana sisinya kekal lurus; tenaga shear palsu menjadikannya terlalu kaku. |
| rate of convergence p | The error falls as hp; halving h divides it by 2p. About 2 for Q4 displacements of smooth problems, lower at a clamped corner.Ralat menurun sebagai hp; membahagi dua h membahagikannya dengan 2p. Kira-kira 2 bagi displacement Q4 masalah licin, lebih rendah pada bucu terkapit. |
| Richardson extrapolation | An estimate of the converged value from two or three meshes: Q ≈ Qh/2 + (Qh/2 − Qh)/(2p − 1).Anggaran nilai converge daripada dua atau tiga mesh: Q ≈ Qh/2 + (Qh/2 − Qh)/(2p − 1). |
| convergence table | Three or more meshes, the quantity of interest on each, and the change between the last two in per cent.Tiga atau lebih mesh, kuantiti yang dikehendaki pada setiap satu, dan perubahan antara dua yang terakhir dalam peratus. |
| independent check | A comparison with something not computed by the same model: beam theory, equilibrium of reactions, a textbook Kt, a hand calculation.Perbandingan dengan sesuatu yang tidak dikira oleh model yang sama: beam theory, keseimbangan reaction, Kt buku teks, pengiraan tangan. |
| idealisation | The modelling decisions: 2D or not, plane stress or plane strain, thickness, material, supports, loads, what is left out.Keputusan pemodelan: 2D atau tidak, plane stress atau plane strain, ketebalan, bahan, support, load, apa yang ditinggalkan. |
| symmetry model | Modelling a half or a quarter of a symmetric structure under a symmetric load, with rollers on the cut edges.Memodelkan separuh atau satu perempat struktur simetri di bawah load simetri, dengan roller pada tepi yang dipotong. |