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/20738994/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 onthefly 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 onthefly 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