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
Originally posted by nikoscham March 10, 2026
Would a fully decomposable architecture be more appropriate for the development of FEAScript (similar to the stdlib ecosystem)? The idea would be to split the system into modular packages so users can select and combine APIs depending on their needs. Below is a rough proposal for how the modules could be structured:
1. FEAScript-core
Numerical methods
Meshing tools
Core utilities used across the ecosystem
Basic post-processing functionality
2. FEAScript-models
Implementations of physical models (e.g. heat transfer)
Boundary conditions
Examples and benchmark models
3. FEAScript-visualization
Mesh rendering
Advanced post-processing (e.g. with VTK.js)
What do you think about this approach? Also Would a fully modular architecture make FEAScript more flexible and maintainable? Are there other modules that should exist (e.g. IO or meshing)?
A new folder src/base was created for low-level numerical operations. In particular the BLAS operators (implemented via stdlib) are placed in the src/base/linalg. Also the Jacobi solver and the LU solver (implemented via math.js) were moved to src/base/solvers. In addition the math.js import is now used only in the corresponding solver file (mathjsLUSolver.js) and not in the examples, tests, etc.
Activity
[-]Split FEAScript into modules?[/-][+]Split FEAScript into modules (phase 1)[/+]nikoscham commentedon Aug 28, 2026
A new folder
src/basewas created for low-level numerical operations. In particular the BLAS operators (implemented via stdlib) are placed in thesrc/base/linalg. Also the Jacobi solver and the LU solver (implemented via math.js) were moved tosrc/base/solvers. In addition themath.jsimport is now used only in the corresponding solver file (mathjsLUSolver.js) and not in the examples, tests, etc.