Skip to content

Commit 8342666

Browse files
committed
2 parents 7a5e44c + d0245f7 commit 8342666

6 files changed

Lines changed: 39 additions & 82 deletions

File tree

examples/creepingFlowScript/lidDrivenCavity2DCreepingFlow/lidDrivenCavity2DCreepingFlow.html

Lines changed: 9 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@
1313
<head>
1414
<title>FEAScript Example: Lid-Driven Cavity 2D Creeping Flow</title>
1515
<meta charset="UTF-8" />
16-
<!-- Link to the CSS files -->
16+
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
17+
1718
<link href="https://feascript.com/feascript-website.css" rel="stylesheet" type="text/css" />
1819
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet" />
19-
<!-- Import the Math.js library for mathematical operations -->
20+
2021
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.12.0/math.min.js"></script>
21-
<!-- Import map for VTK.js modules -->
22+
2223
<script type="importmap">
2324
{
2425
"imports": {
@@ -51,20 +52,15 @@ <h3>v-Velocity Component</h3>
5152
<div id="vVelocityCanvas"></div>
5253

5354
<script type="module">
54-
// Import FEAScript library
55-
import { FEAScriptModel, plotInterpolatedSolutionVtk, createColorScale, createContourLineOptions, printVersion } from "https://core.feascript.com/dist/feascript.esm.js";
56-
// import { FEAScriptModel, plotInterpolatedSolutionVtk, createColorScale, createContourLineOptions, printVersion } from "../../../src/index.js";
55+
import { FEAScriptModel, plotInterpolatedSolutionVtk, createColorScale, createContourLineOptions, printVersion } from "../../../src/index.js";
5756

5857
window.addEventListener("DOMContentLoaded", async () => {
5958
console.log("FEAScript Version:", printVersion);
6059

61-
// Create a new FEAScript model
6260
const model = new FEAScriptModel();
6361

64-
// Select physics/PDE
6562
model.setModelConfig("creepingFlowScript");
6663

67-
// Define mesh configuration
6864
model.setMeshConfig({
6965
meshDimension: "2D",
7066
elementOrder: "quadratic",
@@ -74,31 +70,24 @@ <h3>v-Velocity Component</h3>
7470
maxY: 2,
7571
});
7672

77-
// Define boundary conditions
78-
model.addBoundaryCondition("0", ["constantVelocity", 0, 0]); // Bottom boundary
79-
model.addBoundaryCondition("1", ["constantVelocity", 0, 0]); // Left boundary
80-
model.addBoundaryCondition("2", ["constantVelocity", 1, 0]); // Top boundary
81-
model.addBoundaryCondition("3", ["constantVelocity", 0, 0]); // Right boundary
73+
model.addBoundaryCondition("0", ["constantVelocity", 0, 0]);
74+
model.addBoundaryCondition("1", ["constantVelocity", 0, 0]);
75+
model.addBoundaryCondition("2", ["constantVelocity", 1, 0]);
76+
model.addBoundaryCondition("3", ["constantVelocity", 0, 0]);
8277

83-
// Set solver method
8478
model.setSolverMethod("lusolve");
8579

86-
// Solve the problem
8780
const result = model.solve();
8881

89-
// Print results to console
9082
console.log(`Number of nodes in mesh: ${result.nodesCoordinates.nodesXCoordinates.length}`);
9183
console.log("Solution vector:", result.solutionVector);
9284

93-
// Extract velocity and pressure fields from the solution vector
94-
// DOF layout: [u₀…u_{N₂−1}, v₀…v_{N₂−1}, p₀…p_{N₁−1}]
9585
const totalNodesVelocity = model._creepingFlowMetadata.totalNodesVelocity;
9686
const solutionVector = result.solutionVector;
9787
const uVelocity = solutionVector.slice(0, totalNodesVelocity);
9888
const vVelocity = solutionVector.slice(totalNodesVelocity, 2 * totalNodesVelocity);
9989
const velocityMagnitude = uVelocity.map((u, i) => Math.sqrt(u * u + vVelocity[i] * vVelocity[i]));
10090

101-
// Define render options for VTK.js contour plots
10291
const renderOptions = {
10392
contourLines: createContourLineOptions({
10493
enabled: true,
@@ -107,7 +96,6 @@ <h3>v-Velocity Component</h3>
10796
}),
10897
};
10998

110-
// Plot velocity magnitude as a 2D contour plot
11199
await plotInterpolatedSolutionVtk(
112100
model,
113101
{ solutionVector: velocityMagnitude, nodesCoordinates: result.nodesCoordinates },
@@ -122,7 +110,6 @@ <h3>v-Velocity Component</h3>
122110
}
123111
);
124112

125-
// Plot u-velocity component as a 2D contour plot
126113
await plotInterpolatedSolutionVtk(
127114
model,
128115
{ solutionVector: uVelocity, nodesCoordinates: result.nodesCoordinates },
@@ -137,7 +124,6 @@ <h3>v-Velocity Component</h3>
137124
}
138125
);
139126

140-
// Plot v-velocity component as a 2D contour plot
141127
await plotInterpolatedSolutionVtk(
142128
model,
143129
{ solutionVector: vVelocity, nodesCoordinates: result.nodesCoordinates },

examples/frontPropagationScript/solidificationFront2D/solidificationFront2D.html

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@
1313
<head>
1414
<title>FEAScript Example: Solidification Front 2D</title>
1515
<meta charset="UTF-8" />
16-
<!-- Link to the CSS files -->
16+
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
17+
1718
<link href="https://feascript.com/feascript-website.css" rel="stylesheet" type="text/css" />
1819
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet" />
19-
<!-- Import the Math.js library for mathematical operations -->
20+
2021
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.12.0/math.min.js"></script>
21-
<!-- Import map for VTK.js modules -->
22+
2223
<script type="importmap">
2324
{
2425
"imports": {
@@ -41,24 +42,18 @@
4142
<body>
4243
<h2>Solidification Front 2D</h2>
4344

44-
<!-- Container element where the solution plot will be rendered -->
4545
<div id="resultsCanvas"></div>
4646

4747
<script type="module">
48-
// Import FEAScript library
49-
import { FEAScriptModel, plotInterpolatedSolutionVtk, createColorScale, createContourLineOptions, printVersion } from "https://core.feascript.com/dist/feascript.esm.js";
50-
// import { FEAScriptModel, plotInterpolatedSolutionVtk, createColorScale, createContourLineOptions, printVersion } from "../../../src/index.js";
48+
import { FEAScriptModel, plotInterpolatedSolutionVtk, createColorScale, createContourLineOptions, printVersion } from "../../../src/index.js";
5149

5250
window.addEventListener("DOMContentLoaded", async () => {
5351
console.log("FEAScript Version:", printVersion);
5452

55-
// Create a new FEAScript model
5653
const model = new FEAScriptModel();
5754

58-
// Select physics/PDE
5955
model.setModelConfig("frontPropagationScript");
6056

61-
// Define mesh configuration
6257
model.setMeshConfig({
6358
meshDimension: "2D",
6459
elementOrder: "quadratic",
@@ -68,23 +63,18 @@ <h2>Solidification Front 2D</h2>
6863
maxY: 2,
6964
});
7065

71-
// Define boundary conditions
72-
model.addBoundaryCondition("0", ["constantValue", 0]); // Bottom boundary
73-
model.addBoundaryCondition("1", ["constantValue", 0]); // Left boundary
74-
model.addBoundaryCondition("2", ["zeroGradient"]); // Top boundary
75-
model.addBoundaryCondition("3", ["constantValue", 0]); // Right boundary
66+
model.addBoundaryCondition("0", ["constantValue", 0]);
67+
model.addBoundaryCondition("1", ["constantValue", 0]);
68+
model.addBoundaryCondition("2", ["zeroGradient"]);
69+
model.addBoundaryCondition("3", ["constantValue", 0]);
7670

77-
// Set solver method
7871
model.setSolverMethod("lusolve");
7972

80-
// Solve the problem
8173
const result = model.solve();
8274

83-
// Print results to console
8475
console.log(`Number of nodes in mesh: ${result.nodesCoordinates.nodesXCoordinates.length}`);
8576
console.log("Solution vector:", result.solutionVector);
8677

87-
// Plot the solution as a 2D contour plot
8878
await plotInterpolatedSolutionVtk(model, result, "contour", "resultsCanvas", {
8979
colorScale: createColorScale({
9080
presetName: "Cool to Warm",

examples/generalFormPDEScript/advectionDiffusion1D/advectionDiffusion1D.html

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@
1313
<head>
1414
<title>FEAScript Example: Advection-Diffusion 1D</title>
1515
<meta charset="UTF-8" />
16-
<!-- Link to the CSS files -->
16+
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
17+
1718
<link href="https://feascript.com/feascript-website.css" rel="stylesheet" type="text/css" />
1819
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet" />
19-
<!-- Import the Math.js library for mathematical operations -->
20+
2021
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.12.0/math.min.js"></script>
21-
<!-- Import map for VTK.js modules -->
22+
2223
<script type="importmap">
2324
{
2425
"imports": {
@@ -41,54 +42,42 @@
4142
<body>
4243
<h2>Advection-Diffusion 1D</h2>
4344

44-
<!-- Container element where the solution plot will be rendered -->
4545
<div id="resultsCanvas"></div>
4646

4747
<script type="module">
48-
// Import FEAScript library
49-
import { FEAScriptModel, plotSolutionVtk, printVersion } from "https://core.feascript.com/dist/feascript.esm.js";
50-
// import { FEAScriptModel, plotSolutionVtk, printVersion } from "../../../src/index.js";
48+
import { FEAScriptModel, plotSolutionVtk, printVersion } from "../../../src/index.js";
5149

5250
window.addEventListener("DOMContentLoaded", async () => {
5351
console.log("FEAScript Version:", printVersion);
5452

55-
// Create a new FEAScript model
5653
const model = new FEAScriptModel();
5754

58-
// Select physics/PDE
5955
model.setModelConfig("generalFormPDEScript", {
6056
coefficientFunctions: {
61-
// Equation d²u/dx² - 10 du/dx = 10 * exp(-200 * (x - 0.5)²)
62-
A: (x) => 1, // Diffusion coefficient
63-
B: (x) => -10, // Advection coefficient
64-
C: (x) => 0, // Reaction coefficient
65-
D: (x) => 10 * Math.exp(-200 * Math.pow(x - 0.5, 2)), // Source term
57+
A: (x) => 1,
58+
B: (x) => -10,
59+
C: (x) => 0,
60+
D: (x) => 10 * Math.exp(-200 * Math.pow(x - 0.5, 2)),
6661
},
6762
});
6863

69-
// Define mesh configuration
7064
model.setMeshConfig({
7165
meshDimension: "1D",
7266
elementOrder: "quadratic",
7367
numElementsX: 20,
7468
maxX: 1.0,
7569
});
7670

77-
// Define boundary conditions
78-
model.addBoundaryCondition("0", ["constantValue", 1]); // Left boundary
79-
model.addBoundaryCondition("1", "zeroGradient"); // Right boundary
71+
model.addBoundaryCondition("0", ["constantValue", 1]);
72+
model.addBoundaryCondition("1", "zeroGradient");
8073

81-
// Set solver method
8274
model.setSolverMethod("lusolve");
8375

84-
// Solve the problem
8576
const result = model.solve();
8677

87-
// Print results to console
8878
console.log(`Number of nodes in mesh: ${result.nodesCoordinates.nodesXCoordinates.length}`);
8979
console.log("Solution vector:", result.solutionVector);
9080

91-
// Plot the solution as a 1D line plot
9281
await plotSolutionVtk(model, result, "line", "resultsCanvas");
9382
});
9483
</script>

examples/heatConductionScript/heatConduction1DWall/heatConduction1DWall.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
<head>
1414
<title>FEAScript Example: Heat Conduction 1D Wall</title>
1515
<meta charset="UTF-8" />
16+
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
1617
<!-- Link to the CSS files -->
1718
<link href="https://feascript.com/feascript-website.css" rel="stylesheet" type="text/css" />
1819
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet" />
@@ -46,8 +47,7 @@ <h2>Heat Conduction 1D Wall</h2>
4647

4748
<script type="module">
4849
// Import FEAScript library
49-
import { FEAScriptModel, plotSolutionVtk, printVersion } from "https://core.feascript.com/dist/feascript.esm.js";
50-
// import { FEAScriptModel, plotSolutionVtk, printVersion } from "../../../src/index.js";
50+
import { FEAScriptModel, plotSolutionVtk, printVersion } from "../../../src/index.js";
5151

5252
window.addEventListener("DOMContentLoaded", async () => {
5353
console.log("FEAScript Version:", printVersion);

examples/heatConductionScript/heatConduction2DFin/heatConduction2DFin.html

Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@
1313
<head>
1414
<title>FEAScript Example: Heat Conduction 2D Fin</title>
1515
<meta charset="UTF-8" />
16-
<!-- Link to the CSS files -->
16+
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
17+
1718
<link href="https://feascript.com/feascript-website.css" rel="stylesheet" type="text/css" />
1819
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet" />
19-
<!-- Import the Math.js library for mathematical operations -->
20+
2021
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjs/11.12.0/math.min.js"></script>
21-
<!-- Import map for VTK.js modules -->
22+
2223
<script type="importmap">
2324
{
2425
"imports": {
@@ -41,7 +42,6 @@
4142
<body>
4243
<h2>Heat Conduction 2D Fin</h2>
4344

44-
<!-- Container element where the solution plot will be rendered -->
4545
<div id="resultsCanvas"></div>
4646

4747
<script type="module">
@@ -52,13 +52,10 @@ <h2>Heat Conduction 2D Fin</h2>
5252
window.addEventListener("DOMContentLoaded", async () => {
5353
console.log("FEAScript Version:", printVersion);
5454

55-
// Create a new FEAScript model
5655
const model = new FEAScriptModel();
5756

58-
// Select physics/PDE
5957
model.setModelConfig("heatConductionScript");
6058

61-
// Define mesh configuration
6259
model.setMeshConfig({
6360
meshDimension: "2D",
6461
elementOrder: "quadratic",
@@ -68,23 +65,18 @@ <h2>Heat Conduction 2D Fin</h2>
6865
maxY: 2,
6966
});
7067

71-
// Define boundary conditions
72-
model.addBoundaryCondition("0", ["constantTemp", 200]); // Bottom boundary
73-
model.addBoundaryCondition("1", ["symmetry"]); // Left boundary
74-
model.addBoundaryCondition("2", ["convection", 1, 20]); // Top boundary
75-
model.addBoundaryCondition("3", ["constantTemp", 200]); // Right boundary
68+
model.addBoundaryCondition("0", ["constantTemp", 200]);
69+
model.addBoundaryCondition("1", ["symmetry"]);
70+
model.addBoundaryCondition("2", ["convection", 1, 20]);
71+
model.addBoundaryCondition("3", ["constantTemp", 200]);
7672

77-
// Set solver method
7873
model.setSolverMethod("lusolve");
7974

80-
// Solve the problem
8175
const result = model.solve();
8276

83-
// Print results to console
8477
console.log(`Number of nodes in mesh: ${result.nodesCoordinates.nodesXCoordinates.length}`);
8578
console.log("Solution vector:", result.solutionVector);
8679

87-
// Plot the solution as a 2D contour plot
8880
await plotInterpolatedSolutionVtk(model, result, "contour", "resultsCanvas", {
8981
colorScale: createColorScale({
9082
presetName: "Cool to Warm",

favicon.png

38.5 KB
Loading

0 commit comments

Comments
 (0)