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 main (standard) tutorial.
⚠️ Important: Due to security restrictions, this example requires launching the browser with reduced security settings, e.g.:
start chrome --disable-web-security --user-data-dir="C:\tmp\chrome-cors" --disable-site-isolation-trials
These flags disable CORS restrictions which are normally required when working with web workers in a local environment. For production applications, proper CORS headers should be configured on your server.
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 FEAScript library import { FEAScriptWorker, plotSolution, printVersion } from "https://core.feascript.com/src/index.js"; window.addEventListener("DOMContentLoaded", async () => { // Print FEAScript version in the console printVersion(); // Create a new FEAScriptWorker instance const model = new FEAScriptWorker(); // Ensure the worker is ready await model.ping(); // Configure model await model.setSolverConfig("solidHeatTransferScript"); await model.setMeshConfig({ meshDimension: "2D", elementOrder: "quadratic", numElementsX: 8, numElementsY: 4, maxX: 4, maxY: 2, }); // Apply boundary conditions await model.addBoundaryCondition("0", ["constantTemp", 200]); await model.addBoundaryCondition("1", ["symmetry"]); await model.addBoundaryCondition("2", ["convection", 1, 20]); await model.addBoundaryCondition("3", ["constantTemp", 200]); // Solve await model.setSolverMethod("lusolve"); const { solutionVector, nodesCoordinates } = await model.solve(); // Plot results plotSolution( solutionVector, nodesCoordinates, "solidHeatTransferScript", "2D", "contour", "solutionPlot" ); // Terminate the worker model.terminate(); }); </script> <!-- ...continue of body region... --> </body>
Below is the 2D contour plot of the computed temperature distribution. This plot is generated in real time using FEAScript. You can find a minimal example of this tutorial in the example directory.