You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Following the release of version 0.3.0 (and the 0.3.1 patch), this roadmap outlines the vision for FEAScript 0.4.0. The primary focus of this release is scaling to larger problems: today the linear solver takes almost all of the run time, and medium-sized 2D problems already become slow. The goal for 0.4.0 is to solve noticeably larger 2D problems in a fraction of today's time, on a single thread. Version 0.4.0 also starts moving the API toward a stable 1.0.
Symmetric Dirichlet conditions: Apply fixed-value conditions by eliminating their columns as well as their rows (moving the known values to the right-hand side), so the system matrix stays symmetric for PCG (Apply Dirichlet conditions symmetrically #117).
Iterative solver robustness: A tighter default tolerance than the current Jacobi default, a clear warning or error when a solver does not converge, and regression tests that check the iterative solvers against the direct solvers (Iterative solver robustness #119).
Assembly into typed-array CSR: Compute the sparsity pattern from the element connectivity, then assemble the system matrix directly into compressed sparse row (CSR) format with typed arrays instead of a Map per row, to cut memory use (Assemble the system matrix directly into typed-array CSR #120).
Frontal solver memory: The frontal solver currently runs out of memory on medium-sized problems, because its working front is allocated with the size of the whole system. The front will be sized from the actual maximum front width (computed in a prefront pass), stored in typed arrays, and kept narrow by reordering the elements. This keeps a robust direct solver for problems where iterative solvers struggle, such as creeping flow, and a reference for checking the iterative solvers (Frontal solver runs out of memory on medium-sized problems #121).
Solver options: solver: { method, preconditioner, tolerance } replaces setSolverMethod(). The old method keeps working, with a deprecation warning (Solver options instead of setSolverMethod() #122).
Named boundary condition objects, e.g. { type: "convection", h: 1, ambientTemperature: 20 } instead of ["convection", 1, 20]. The array form keeps working, with a deprecation warning (Named boundary condition objects #123).
Model names without the Script suffix, e.g. "heatConduction" instead of "heatConductionScript". The old names keep working, with a deprecation warning (Model names without the Script suffix #124).
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Following the release of version 0.3.0 (and the 0.3.1 patch), this roadmap outlines the vision for FEAScript 0.4.0. The primary focus of this release is scaling to larger problems: today the linear solver takes almost all of the run time, and medium-sized 2D problems already become slow. The goal for 0.4.0 is to solve noticeably larger 2D problems in a fraction of today's time, on a single thread. Version 0.4.0 also starts moving the API toward a stable 1.0.
Numerical Solution & Performance
Mapper row, to cut memory use (Assemble the system matrix directly into typed-array CSR #120)."jacobi-gpu") stops on the same relative residual as the CPU Jacobi solver (WebGPU Jacobi solver: stop on the relative residual, as the CPU Jacobi does #113).API
solver: { method, preconditioner, tolerance }replacessetSolverMethod(). The old method keeps working, with a deprecation warning (Solver options instead of setSolverMethod() #122).{ type: "convection", h: 1, ambientTemperature: 20 }instead of["convection", 1, 20]. The array form keeps working, with a deprecation warning (Named boundary condition objects #123).Scriptsuffix, e.g."heatConduction"instead of"heatConductionScript". The old names keep working, with a deprecation warning (Model names without the Script suffix #124).FEAScriptErrorwith an error code, instead of logging the error and continuing (Throw a FEAScriptError on invalid input #125)..d.ts) shipped in the npm package (Ship TypeScript declarations in the npm package #126).result.infowith whether the solver converged, the iterations, the residual and the solve time (Add a run report to the result #127).versionexport replacingprintVersion(Replace printVersion with a version export #128)."constantTemp"boundary condition (deprecated in 0.3.0); use"constantTemperature"(Remove the "constantTemp" boundary condition #129).Verification & Benchmarks
Physical Modelling
Please feel free to
All reactions