Hi everyone,
first of all thank you for the nice package that you provide. Second: I want to use elmer for topology optimization and as a test case want to implement the standard problem of maximizing the stiffness for a cantilever beam as described here https://www.mdpi.com/2073-8994/13/4/712 or in the famous Bensoe&Sigmund textbook https://books.google.de/books?id=NGmtmM ... &q&f=false
For a specific topology optimization method (the SIMP method) I need to introduce artificial densitites (ranging from zero to one) that scale the Young's modulus from a very small value up to Young's modulus of the true material. So far this should be possible with elmer, however for the gradient of these densities I need to extract the stiffness matrix of each element in the gobal frame. Is this currently possible?
Thanks and Regards
Stefan
Extract Stiffness Matrix of each Element for Topology Optimization
-
- Posts: 1
- Joined: 16 Sep 2023, 03:52
- Antispam: Yes
-
- Site Admin
- Posts: 4707
- Joined: 22 Aug 2009, 11:57
- Antispam: Yes
- Location: Espoo, Finland
- Contact:
Re: Extract Stiffness Matrix of each Element for Topology Optimization
Hi Stefan,
Usually we compute the gradient on-the-fly using the derivatives of the basis functions (often names dBasisdx) at the integration point and the nodal values of parameter.
(Note that there are also more generic ways to treat the parameters. For example, the artificial densities perhaps should ideally be defined at integration points thereby eliminating the need of interpolation. Probably in this case the gradient operation is a little bit more tediuous.)
One could sum up these values to a global stiffness matrix and then taking a derivative (in certain direction) would simply be a matrix vector multiplication. This would be ideal if you need to do it many times - as I guess is the case for you.
-Peter
Usually we compute the gradient on-the-fly using the derivatives of the basis functions (often names dBasisdx) at the integration point and the nodal values of parameter.
(Note that there are also more generic ways to treat the parameters. For example, the artificial densities perhaps should ideally be defined at integration points thereby eliminating the need of interpolation. Probably in this case the gradient operation is a little bit more tediuous.)
One could sum up these values to a global stiffness matrix and then taking a derivative (in certain direction) would simply be a matrix vector multiplication. This would be ideal if you need to do it many times - as I guess is the case for you.
-Peter