|
| 1 | +# Changelog |
| 2 | + |
| 3 | +All notable changes to FEAScript-core are documented in this file. The format is based on |
| 4 | +[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project follows |
| 5 | +[Semantic Versioning](https://semver.org/) (while in 0.x, minor versions may contain breaking changes). |
| 6 | + |
| 7 | +## [0.3.0] - 2026-10-30 |
| 8 | + |
| 9 | +### Added |
| 10 | + |
| 11 | +- Triangular elements (linear and quadratic), including triangular meshes imported from Gmsh (#97) |
| 12 | +- Euler–Bernoulli beam model (`eulerBernoulliBeamScript`) with cubic Hermite elements and fixed, pinned, |
| 13 | + spring, force and moment conditions (#86) |
| 14 | +- Viscosity in the creeping flow model: `coefficientFunctions: { viscosity }`, a number or a function of |
| 15 | + (x, y) (#102) |
| 16 | +- Named result fields for models with several unknowns per node: `solve()` returns `fields` |
| 17 | + (`velocityMagnitude`, `u`, `v`, `p` for creeping flow; `w`, `theta` for the beam), and the plotting |
| 18 | + functions take a `{ field }` option (#106) |
| 19 | +- Nonlinear 1D problems with the Newton–Raphson method in the general form PDE (#90) |
| 20 | +- Spatially varying coefficients: `thermalConductivity` and `heatSource` as functions of position (#92) |
| 21 | +- 1D front propagation |
| 22 | +- Frontal solver for every model that supports it, including the linear general form PDE (#100) |
| 23 | +- vtk.js visualization (`plotSolutionVtk`, `plotInterpolatedSolutionVtk`) and VTK/VTP export (#73, #79) |
| 24 | +- `FEAScriptWorker` takes the same model options as `FEAScriptModel`, so every model can run in a web |
| 25 | + worker (#107) |
| 26 | +- Gmsh import detects the mesh dimension and element order |
| 27 | +- Input validation for solvers and boundary conditions (#83) |
| 28 | +- Regression, analytical and benchmark tests (including NAFEMS T4), run with `npm test` on Node.js 18 |
| 29 | + and later |
| 30 | +- Node.js examples for the NAFEMS T4 benchmark, Couette flow and a cantilever beam |
| 31 | + |
| 32 | +### Changed |
| 33 | + |
| 34 | +- Sparse matrix format during assembly (#99) |
| 35 | +- BLAS routines from stdlib (#81) |
| 36 | +- Linear elements use a 2-point Gauss rule per direction (2 × 2 on quadrilaterals) instead of 1 point, |
| 37 | + so linear quadrilaterals no longer under-integrate the stiffness matrix; results on linear elements |
| 38 | + change slightly (#105) |
| 39 | +- Every solver returns the solution vector as a `Float64Array` |
| 40 | +- The CommonJS build is `dist/feascript.cjs` (was `dist/feascript.cjs.js`), so `require("feascript")` |
| 41 | + works (#112) |
| 42 | +- Source files are reorganized and lose the `Script` suffix (#80, #94) |
| 43 | + |
| 44 | +### Deprecated |
| 45 | + |
| 46 | +- The `"constantTemp"` boundary condition; use `"constantTemperature"` |
| 47 | + |
| 48 | +### Removed |
| 49 | + |
| 50 | +- `setSolverConfig`; use `setModelConfig` (#73) |
| 51 | +- `importGmshQuadTri`; use `importGmshMesh` (#80) |
| 52 | +- The private `_creepingFlowMetadata` and `_eulerBernoulliBeamMetadata` properties; use `result.fields` |
| 53 | + (#106) |
| 54 | + |
| 55 | +### Fixed |
| 56 | + |
| 57 | +- 1D convection and nonzero front values |
| 58 | +- Non-contiguous node tags in the Gmsh reader (#96) |
| 59 | + |
| 60 | +## [0.2.0] - 2026-02-25 |
| 61 | + |
| 62 | +### Added |
| 63 | + |
| 64 | +- Creeping (Stokes) flow model (`creepingFlowScript`) with Taylor–Hood elements (#63) |
| 65 | +- WebGPU Jacobi solver (#53) |
| 66 | +- Arbitrary geometries from Gmsh meshes (#58, #59) |
| 67 | +- Skewed structured 2D meshes (`angleLeft`, `angleRight`) (#60) |
| 68 | +- `plotInterpolatedSolution` |
| 69 | + |
| 70 | +### Changed |
| 71 | + |
| 72 | +- Solvers consolidated behind a single interface (#56) |
| 73 | +- `setModelConfig` replaces `setSolverConfig`, which is deprecated |
| 74 | + |
| 75 | +## [0.1.3] - 2025-10-08 |
| 76 | + |
| 77 | +### Added |
| 78 | + |
| 79 | +- General form PDE model (`generalFormPDEScript`) (#48) |
| 80 | +- Frontal solver (#40, #43) |
| 81 | +- 1D PDE solver (#42) |
| 82 | +- `printVersion` (#45) |
| 83 | +- Automated tests on pull requests (#44) |
| 84 | + |
| 85 | +### Changed |
| 86 | + |
| 87 | +- `solidHeatTransferScript` is renamed to `heatConductionScript` (#47) |
| 88 | + |
| 89 | +### Fixed |
| 90 | + |
| 91 | +- Signs of the advection and reaction terms in the general form PDE |
| 92 | + |
| 93 | +## [0.1.2] - 2025-07-31 |
| 94 | + |
| 95 | +### Added |
| 96 | + |
| 97 | +- Front propagation model (`frontPropagationScript`) for the eikonal equation (#29) |
| 98 | +- Solidification front example (#30) |
| 99 | + |
| 100 | +## [0.1.1] - 2025-05-22 |
| 101 | + |
| 102 | +### Added |
| 103 | + |
| 104 | +- First build published to npm (#25) |
| 105 | + |
| 106 | +## [0.1.0] - 2025-05-15 |
| 107 | + |
| 108 | +- Initial release: steady heat conduction in 1D and 2D (`solidHeatTransferScript`), structured meshes and |
| 109 | + Gmsh import, Jacobi and LU solvers, Plotly plotting, and a web worker (`FEAScriptWorker`) |
| 110 | + |
| 111 | +[0.3.0]: https://github.com/FEAScript/FEAScript-core/compare/0.2.0...0.3.0 |
| 112 | +[0.2.0]: https://github.com/FEAScript/FEAScript-core/compare/0.1.3...0.2.0 |
| 113 | +[0.1.3]: https://github.com/FEAScript/FEAScript-core/compare/0.1.2...0.1.3 |
| 114 | +[0.1.2]: https://github.com/FEAScript/FEAScript-core/compare/0.1.1...0.1.2 |
| 115 | +[0.1.1]: https://github.com/FEAScript/FEAScript-core/compare/0.1.0...0.1.1 |
| 116 | +[0.1.0]: https://github.com/FEAScript/FEAScript-core/releases/tag/0.1.0 |
0 commit comments