Heat Conduction in a Two-Dimensional Fin (Web Worker)

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.

Web Worker Implementation

The code below shows how to use FEAScript with a web worker. The solution is plotted as a 2D contour.

<script type="module">
  import { FEAScriptWorker, plotSolution, printVersion } from "https://core.feascript.com/src/index.js";
  window.addEventListener("DOMContentLoaded", async () => {
    // Print FEAScript version
    printVersion();

    // Create a new FEAScriptWorker instance
    const model = new FEAScriptWorker();

    // Ensure the worker is ready
    await model.ping();

    // Set solver configuration
    await model.setSolverConfig("solidHeatTransferScript");

    // Define mesh configuration
    await model.setMeshConfig({
      meshDimension: "2D",
      elementOrder: "quadratic",
      numElementsX: 8,
      numElementsY: 4,
      maxX: 4,
      maxY: 2,
    });

    // Define 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]);

    // Set solver method
    await model.setSolverMethod("lusolve");

    // Solve the problem and get the solution
    const { solutionVector, nodesCoordinates } = await model.solve();

    // Plot the solution as a 2D contour plot
    plotSolution(
      solutionVector,
      nodesCoordinates,
      "solidHeatTransferScript",
      "2D",
      "contour",
      "solutionPlot"
    );

    // Terminate the worker
    model.terminate();
  });
</script>
    

Results

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.

Cannot draw the results. Please turn your phone to horizontal position to see the results. You can find a minimal example of this tutorial in the example directory.
Solving...

© 2023- FEAScript