Overview
Heat Conduction in a 2D Fin Tutorial (Multi-threaded)
This page demonstrates solving the 2D heat conduction fin problem using FEAScript in a web worker for improved browser responsiveness. For the mathematical formulation and theory, see the basic tutorial.
The code below shows how to use FEAScript with a web worker. The solution is plotted as a 2D contour.
<body>
<!-- ...body region... -->
<script type="module">
import {
FEAScriptWorker,
plotSolution,
printVersion,
} from "https://core.feascript.com/src/index.js";
window.addEventListener("DOMContentLoaded", async () => {
console.log("FEAScript version:", printVersion);
// 1. Create the model in a web worker and select the physics
const model = new FEAScriptWorker();
await model.ping(); // Wait until the worker is ready
await model.setModelConfig("heatConductionScript");
// 2. Define the mesh
await model.setMeshConfig({
meshDimension: "2D",
elementOrder: "quadratic",
numElementsX: 8,
numElementsY: 4,
maxX: 4,
maxY: 2,
});
// 3. Apply the boundary conditions
await model.addBoundaryCondition("0", ["constantTemperature", 200]); // Bottom
await model.addBoundaryCondition("1", ["symmetry"]); // Left
await model.addBoundaryCondition("2", ["convection", 1, 20]); // Top
await model.addBoundaryCondition("3", ["constantTemperature", 200]); // Right
// 4. Solve
await model.setSolverMethod("lusolve");
const result = await model.solve();
// 5. Plot the results
const modelInfo = await model.getModelInfo();
plotSolution(modelInfo, result, "contour", "resultsCanvas");
// 6. Terminate the worker
model.terminate();
});
</script>
<!-- ...rest of body region... -->
</body>
Below is the 2D contour plot of the computed temperature distribution. This plot is generated in real time using FEAScript.
Solving...