Skip to content

Commit 0c27385

Browse files
committed
Add tutorial for 2D Stokes flow in a lid-driven cavity
1 parent 6cdd775 commit 0c27385

14 files changed

Lines changed: 728 additions & 32 deletions
124 KB
Loading

assets/stokes-2d-lid-driven.png

88 KB
Loading

assets/stokes-2d-lid-driven.svg

Lines changed: 293 additions & 0 deletions
Loading

index.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,14 @@ <h1 class="top">
171171
Heat conduction through a wall
172172
<a href="https://feascript.com/tutorials/heat-conduction-1d-wall.html">tutorial</a>
173173
</p>
174+
<img
175+
src="./assets/lid-driven-cavity-2d-stokes-u-results.png"
176+
alt="Results of lid-driven cavity 2D Stokes flow tutorial"
177+
/>
178+
<p class="image-caption">
179+
Lid-driven cavity (2D Stokes flow)
180+
<a href="https://feascript.com/tutorials/lid-driven-cavity-2d-stokes.html">tutorial</a>
181+
</p>
174182
<img
175183
src="./assets/solidification-front-2d-results.png"
176184
alt="Results of solidification front propagation in a 2D domain tutorial"
@@ -412,6 +420,7 @@ <h2 id="features"><a name="Features"></a>Features</h2>
412420
<ul>
413421
<li>Front propagation</li>
414422
<li>Heat conduction</li>
423+
<li>Incompressible Stokes flow</li>
415424
</ul>
416425
</li>
417426
<li>
@@ -666,6 +675,12 @@ <h2 id="tutorials"><a name="Tutorials"></a>Tutorials</h2>
666675
style="width: 16px; height: 16px; vertical-align: middle; margin-left: 2px; margin-bottom: 4px"
667676
/></a>
668677
</li>
678+
<li>
679+
<span class="tutorial-name">Lid-Driven Cavity (2D Stokes Flow)</span>
680+
<a href="https://feascript.com/tutorials/lid-driven-cavity-2d-stokes.html" class="badge badge-basic"
681+
>Basic HTML</a
682+
>
683+
</li>
669684
<li>
670685
<span class="tutorial-name">Solidification Front Propagation in a 2D Domain</span>
671686
<a href="https://feascript.com/tutorials/solidification-front-2d.html" class="badge badge-basic"

tutorials/advection-diffusion-1d.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,8 @@ <h2 id="solvingwithfeascript"><a name="Solving with FEAScript"></a>Solving with
219219
});
220220

221221
// Define boundary conditions
222-
model.addBoundaryCondition("0", ["constantValue", 1]); // Left boundary, u(0) = 1
223-
model.addBoundaryCondition("1", "zeroGradient"); // Right boundary, zero gradient (du/dx = 0)
222+
model.addBoundaryCondition("0", ["constantValue", 1]); // Left boundary
223+
model.addBoundaryCondition("1", "zeroGradient"); // Right boundary
224224

225225
// Solve
226226
model.setSolverMethod("lusolve");

tutorials/heat-conduction-1d-wall.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,8 +207,8 @@ <h2 id="solvingwithfeascript"><a name="Solving with FEAScript"></a>Solving with
207207
});
208208

209209
// Apply boundary conditions
210-
model.addBoundaryCondition("0", ["convection", 1, 25]);
211-
model.addBoundaryCondition("1", ["constantTemp", 5]);
210+
model.addBoundaryCondition("0", ["convection", 1, 25]); // Left boundary
211+
model.addBoundaryCondition("1", ["constantTemp", 5]); // Right boundary
212212

213213
// Solve
214214
model.setSolverMethod("lusolve");

tutorials/heat-conduction-2d-fin-gmsh.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,10 @@ <h2 id="gmshfileimport"><a name="gmshfileimport"></a>Gmsh File Import</h2>
194194
});
195195

196196
// Apply boundary conditions using Gmsh physical group tags
197-
model.addBoundaryCondition("0", ["constantTemp", 200]); // bottom boundary
198-
model.addBoundaryCondition("1", ["constantTemp", 200]); // right boundary
199-
model.addBoundaryCondition("2", ["convection", 1, 20]); // top boundary
200-
model.addBoundaryCondition("3", ["symmetry"]); // left boundary
197+
model.addBoundaryCondition("0", ["constantTemp", 200]); // Bottom boundary
198+
model.addBoundaryCondition("1", ["constantTemp", 200]); // Right boundary
199+
model.addBoundaryCondition("2", ["convection", 1, 20]); // Top boundary
200+
model.addBoundaryCondition("3", ["symmetry"]); // Left boundary
201201

202202
// Solve
203203
model.setSolverMethod("lusolve");

tutorials/heat-conduction-2d-fin-webgpu.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -175,10 +175,10 @@ <h2 id="webgpuimplementation">WebGPU Implementation</h2>
175175
});
176176

177177
// Apply boundary conditions
178-
model.addBoundaryCondition("0", ["constantTemp", 200]);
179-
model.addBoundaryCondition("1", ["symmetry"]);
180-
model.addBoundaryCondition("2", ["convection", 1, 20]);
181-
model.addBoundaryCondition("3", ["constantTemp", 200]);
178+
model.addBoundaryCondition("0", ["constantTemp", 200]); // Bottom boundary
179+
model.addBoundaryCondition("1", ["symmetry"]); // Left boundary
180+
model.addBoundaryCondition("2", ["convection", 1, 20]); // Top boundary
181+
model.addBoundaryCondition("3", ["constantTemp", 200]); // Right boundary
182182

183183
// Set solver method to use the GPU-accelerated Jacobi solver
184184
model.setSolverMethod("jacobi-gpu");

tutorials/heat-conduction-2d-fin-worker.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -187,10 +187,10 @@ <h2 id="webworkerimplementation"><a name="Web Worker Implementation"></a>Web Wor
187187
});
188188

189189
// Apply boundary conditions
190-
await model.addBoundaryCondition("0", ["constantTemp", 200]);
191-
await model.addBoundaryCondition("1", ["symmetry"]);
192-
await model.addBoundaryCondition("2", ["convection", 1, 20]);
193-
await model.addBoundaryCondition("3", ["constantTemp", 200]);
190+
await model.addBoundaryCondition("0", ["constantTemp", 200]); // Bottom boundary
191+
await model.addBoundaryCondition("1", ["symmetry"]); // Left boundary
192+
await model.addBoundaryCondition("2", ["convection", 1, 20]); // Top boundary
193+
await model.addBoundaryCondition("3", ["constantTemp", 200]); // Right boundary
194194

195195
// Solve
196196
await model.setSolverMethod("lusolve");

0 commit comments

Comments
 (0)