Repository navigation
v0.14.0
TopOpt v0.14.0
New features
- Level-set topology optimization via a port of OpenLSTO, with 2D and 3D
level-set methods, hole nucleation, p-norm stress minimization, and 3D
compliance minimization; results are visualizable and documented in a new
tutorial and API reference (#334, #336). - New and updated Quarto tutorials addressing many open issues: stochastic
compliance (mean/std objectives, exact and randomized trace estimators, and an
augmented-Lagrangian maximum-compliance constraint), compliance-constrained
volume minimization, fixed-element regions, the projected density filter,
iterative/matrix-free and custom solvers, INP import and VTK export, a
penalty-function comparison, and simultaneous analysis and design (#332). ProjectedDensityFilterFunis now exported with a convenience constructor, and
a physics-inferredFEASolver(Solver, problem)constructor accepts any
AbstractLinearSolversubtype (#332).TemperatureFunandcell_temperaturefor heat-transfer problems;save_mesh
now writes the nodal temperature field (#323, #324).- All exported TopOpt features are now documented (#325).
Breaking changes
- The
celltype::Symbolkeyword replaces the positional
Val{:Linear}/Val{:Quadratic}API in problem and grid constructors (#323).
Improvements
- Static (offline) visualization for tutorials, with WGLMakie/Bonito export
support (#322). - JET findings fixed, GESO crossover/mutation deduplicated, and
TrussFEACrossSecarithmetic added (#323).
Prepared with assistance from deepseek-v4-pro via opencode.
Merged pull requests:
- Improve static visualization tutorials (#322) (@mohdibntarek)
- Replace Val{:Linear} API with celltype keyword and fix JET issues (#323) (@mohdibntarek)
- Write nodal temperature in save_mesh for heat problems (#324) (@mohdibntarek)
- Document all exported TopOpt features; simplify JET report comment (#325) (@mohdibntarek)
- Add tutorials and docs for outstanding issues (#332) (@mohdibntarek)
- Add level-set topology optimization (OpenLSTO port) (#334) (@mohdibntarek)
- Complete the OpenLSTO port: hole nucleation, stress, 3D, docs, and visualization (#336) (@mohdibntarek)
Closed issues:
- Stochastic topology optimisation (#31)
- Simultaneous analysis and design tutorial (#91)
- Example on custom linear system solver and preconditioner (#96)
- using type TrussFEACrossSec{Float64} with TrussSolver (#156)
- Temperature function (#202)
- Improve visualize and mesh writing for heat problems (#205)
- Restore test coverage after docs overhaul (#244)
- Tutorials in PR preview docs lose Quarto formatting (#252)
- Deduplicate repeated algorithm logic in BESO/GESO and thermal adjoint (#259)
- Convert WCSMO benchmark demos to Quarto tutorials (#261)
- Tutorial: Stochastic compliance minimization with SVD-based methods (#266)
- Add tutorial for FixedElementProjectorFun (#284)
- Add tutorial for ProjectedDensityFilterFun (#285)
- Add tutorial for iterative and matrix-free solvers (#286)
- Add tutorial for VTK export (#287)
- Add tutorial for INP file import (#288)
- Add tutorial comparing alternative penalty functions (#289)
- Improve visualization default options (#291)
- Wrap TopOpt_in_PETSc_jll (precompiled binary for topopt/TopOpt_in_PETSc) (#328)
- Wrap OpenLSTO_jll (precompiled binary for M2DOLab/OpenLSTO) (#327)
- Add level-set topology optimization (OpenLSTO port) (#333)