1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
| | <?xml version="1.0" encoding="UTF-8"?>
| | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 600 350" width="600" height="350" style="background:white; font-family: Arial, sans-serif;">
| |
| | <defs>
| | <marker id="arrowFlow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
| | <polygon points="0,0 8,3 0,6" fill="#2255aa"/>
| | </marker>
| | <marker id="arrowBlack" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto">
| | <polygon points="0,0 8,3 0,6" fill="black"/>
| | </marker>
| | </defs>
| |
| | <!-- Aerofoil shape — positioned so upper surface is well visible -->
| | <path d="
| | M 90,185
| | C 110,150 155,115 210,105
| | C 270,93 350,95 420,108
| | C 460,116 490,130 510,155
| | C 490,160 460,165 420,168
| | C 350,174 270,178 210,180
| | C 155,183 110,185 90,185
| | Z"
| | fill="#d8e8f0" stroke="black" stroke-width="2"/>
| |
| | <!-- Freestream flow arrows (far from surface, undisturbed) -->
| | <line x1="20" y1="80" x2="75" y2="80" stroke="#2255aa" stroke-width="1.5" marker-end="url(#arrowFlow)"/>
| | <line x1="20" y1="65" x2="75" y2="65" stroke="#2255aa" stroke-width="1.5" marker-end="url(#arrowFlow)"/>
| | <line x1="20" y1="50" x2="75" y2="50" stroke="#2255aa" stroke-width="1.5" marker-end="url(#arrowFlow)"/>
| | <line x1="20" y1="200" x2="75" y2="185" stroke="#2255aa" stroke-width="1.5" marker-end="url(#arrowFlow)"/>
| | <line x1="20" y1="215" x2="75" y2="200" stroke="#2255aa" stroke-width="1.5" marker-end="url(#arrowFlow)"/>
| |
| | <!-- LAMINAR region: smooth parallel streamlines close to upper surface (x=90 to ~x=310) -->
| | <!-- Offset lines above upper surface, staying close and parallel -->
| | <!-- Upper surface approx: y = 105 at x=210, y=93 at x=270... let's parametrize simply -->
| |
| | <!-- Laminar flow streamlines (smooth, parallel, close to surface) from ~x=105 to x=300 -->
| | <path d="M 105,170 C 140,138 180,120 220,110 C 260,101 290,97 310,97"
| | fill="none" stroke="#2255aa" stroke-width="1.2" marker-end="url(#arrowFlow)"/>
| | <path d="M 105,162 C 140,131 180,113 220,103 C 260,94 290,90 310,90"
| | fill="none" stroke="#2255aa" stroke-width="1.2" marker-end="url(#arrowFlow)"/>
| | <path d="M 105,155 C 140,124 180,107 220,96 C 260,87 290,83 310,83"
| | fill="none" stroke="#2255aa" stroke-width="1.2" marker-end="url(#arrowFlow)"/>
| |
| | <!-- TURBULENT region: thicker, wavy streamlines from x=310 to x=460 -->
| | <!-- Wavy effect using sinusoidal-looking cubic beziers -->
| | <path d="M 310,97 C 325,92 335,101 350,96 C 365,91 375,103 390,97 C 405,91 415,100 430,95 C 445,90 453,97 460,103"
| | fill="none" stroke="#2255aa" stroke-width="2" marker-end="url(#arrowFlow)"/>
| | <path d="M 310,90 C 325,84 335,94 350,88 C 365,82 375,95 390,88 C 405,81 415,92 430,86 C 445,80 453,89 460,96"
| | fill="none" stroke="#2255aa" stroke-width="2" marker-end="url(#arrowFlow)"/>
| | <path d="M 310,83 C 325,76 335,87 350,80 C 365,73 375,86 390,79 C 405,72 415,84 430,77 C 445,70 453,81 460,88"
| | fill="none" stroke="#2255aa" stroke-width="2" marker-end="url(#arrowFlow)"/>
| | <!-- Extra turbulent line, more spread -->
| | <path d="M 310,75 C 330,67 340,80 360,71 C 378,62 388,78 410,69 C 428,62 440,75 460,81"
| | fill="none" stroke="#2255aa" stroke-width="1.5" marker-end="url(#arrowFlow)"/>
| |
| | <!-- SEPARATION: flow leaving surface after x~465 -->
| | <path d="M 460,103 C 480,110 495,118 510,155"
| | fill="none" stroke="#2255aa" stroke-width="1.5" stroke-dasharray="4,3"/>
| | <path d="M 460,96 C 485,105 505,130 510,155"
| | fill="none" stroke="#2255aa" stroke-width="1.5" stroke-dasharray="4,3"/>
| | <!-- Separated wake -->
| | <path d="M 510,155 C 530,148 555,145 580,142" stroke="#2255aa" stroke-width="1.2" fill="none" marker-end="url(#arrowFlow)"/>
| | <path d="M 510,155 C 530,158 555,162 580,165" stroke="#2255aa" stroke-width="1.2" fill="none" marker-end="url(#arrowFlow)"/>
| |
| | <!-- Point markers -->
| | <!-- 1: Stagnation point at leading edge -->
| | <circle cx="90" cy="185" r="5" fill="#c00" stroke="black" stroke-width="1"/>
| | <circle cx="35" cy="285" r="12" fill="white" stroke="black" stroke-width="1.5"/>
| | <text x="35" y="290" text-anchor="middle" font-size="13" font-weight="bold" fill="black">1</text>
| | <line x1="44" y1="282" x2="86" y2="188" stroke="black" stroke-width="1" stroke-dasharray="3,2"/>
| | <text x="35" y="310" text-anchor="middle" font-size="11" fill="black">Stagnation</text>
| | <text x="35" y="323" text-anchor="middle" font-size="11" fill="black">point</text>
| |
| | <!-- 2: Laminar boundary layer label (at ~x=200) -->
| | <circle cx="170" cy="68" r="12" fill="white" stroke="black" stroke-width="1.5"/>
| | <text x="170" y="73" text-anchor="middle" font-size="13" font-weight="bold" fill="black">2</text>
| | <line x1="170" y1="80" x2="200" y2="100" stroke="black" stroke-width="1" stroke-dasharray="3,2"/>
| | <text x="130" y="48" text-anchor="middle" font-size="12" fill="black" font-weight="bold">Laminar</text>
| | <text x="130" y="62" text-anchor="middle" font-size="11" fill="black">boundary layer</text>
| |
| | <!-- 3: Transition point at x=310 -->
| | <circle cx="310" cy="97" r="5" fill="#e80" stroke="black" stroke-width="1"/>
| | <circle cx="315" cy="38" r="12" fill="white" stroke="black" stroke-width="1.5"/>
| | <text x="315" y="43" text-anchor="middle" font-size="13" font-weight="bold" fill="black">3</text>
| | <line x1="315" y1="50" x2="313" y2="90" stroke="black" stroke-width="1" stroke-dasharray="3,2"/>
| | <text x="315" y="26" text-anchor="middle" font-size="12" fill="black" font-weight="bold">Transition</text>
| | <text x="315" y="14" text-anchor="middle" font-size="11" fill="black">point</text>
| |
| | <!-- 4: Turbulent boundary layer label at ~x=390 -->
| | <circle cx="430" cy="52" r="12" fill="white" stroke="black" stroke-width="1.5"/>
| | <text x="430" y="57" text-anchor="middle" font-size="13" font-weight="bold" fill="black">4</text>
| | <line x1="430" y1="64" x2="400" y2="80" stroke="black" stroke-width="1" stroke-dasharray="3,2"/>
| | <text x="450" y="34" text-anchor="start" font-size="12" fill="black" font-weight="bold">Turbulent</text>
| | <text x="450" y="48" text-anchor="start" font-size="11" fill="black">boundary layer</text>
| |
| | <!-- 5: Separation point at x~465 -->
| | <circle cx="465" cy="103" r="5" fill="#c00" stroke="black" stroke-width="1"/>
| | <circle cx="555" cy="280" r="12" fill="white" stroke="black" stroke-width="1.5"/>
| | <text x="555" y="285" text-anchor="middle" font-size="13" font-weight="bold" fill="black">5</text>
| | <line x1="545" y1="275" x2="468" y2="110" stroke="black" stroke-width="1" stroke-dasharray="3,2"/>
| | <text x="555" y="305" text-anchor="middle" font-size="12" fill="black" font-weight="bold">Separation</text>
| | <text x="555" y="318" text-anchor="middle" font-size="11" fill="black">point</text>
| |
| | <!-- Boundary layer thickness indicator (brace/bracket) -->
| | <!-- Double-arrow showing thickness of turbulent layer at x=430 -->
| | <!-- Upper extent: ~y=62, surface: y=108 -->
| |
| | <!-- Title -->
| | <text x="300" y="340" text-anchor="middle" font-size="14" font-weight="bold" fill="black">Boundary Layer Flow over an Aerofoil</text>
| |
| | </svg>
|
|