Topology Optimization
1. Software
a. Meshing Software(https://gmsh.info/doc/texinfo/gmsh.html#Gmsh-command_002dline-interface)52901
a. PETSc. (Portable, Extensible, Toolkit for Scientific Computation). Developing parallel, nontrivial PDE solvers that deliver high performance is still difficult and requires months/years of concentrated effort. PETSc is a toolkit that can reduce the difficulties and reduce the development time, but is not a black-box PDE solver.
b. Firedrake
2. Books
a. https://my.siam.org/Store/Product/viewproduct/?ProductId=32850137
3. Videos
[1] Aditya Bandopadhyay. https://www.youtube.com/watch?v=gFOpFKr9S2I&list=PLbRMhDVUMngccapOgCr2Tm5sn_cuHeAf6&index=1
3. Additional Topics
pip install "jax[cpu]===0.3.14" -f https://whls.blob.core.windows.net/unstable/index.html --use-deprecated legacy-resolver
https://github.com/cloudhan/jax-windows-builder
https://github.com/UW-ERSL/AuTO
https://github.com/UW-ERSL/TOuNN/blob/main/FE.py
cvxopt (python software for convex optimization)
Automatic Differentiation
Automatic differentiation is a method to compute the exact derivative of functions as implemented as a program.
It's a widely applicable method and used in many machine learning problems such as neural networks which are parameterized by weights and trained by stochastic optimized descent to minimize the loss function
$ weights_opt = armin_w L(weights \nabla_w L$
https://theoryandpractice.org/stats-ds-book/autodiff-tutorial.html
Method of moving asymptotes:
https://people.kth.se/~krille/mmagcmma.pdf
https://github.com/arjendeetman/GCMMA-MMA-Python