Discussion Closed This discussion was created more than 6 months ago and has been closed. To start a new discussion with a link back to this one, click here.
Extracting element-level sensitivities for Topology Optimization in LiveLink
Posted 17 juil. 2023, 05:52 UTC−4 LiveLink for MATLAB, Optimization, Structural Mechanics Version 6.1 9 Replies
Please login with a confirmed email address before reporting spam
Hi all,
For our optimization problem we want to use MATLAB to run MMA and compute the objective function , constraints and sensitivities ( for an objective that is not supported by COMSOL ).
Extracting the global stiffness matrix, load vector and element volumes (for objective function and constraint values) is working fine.
However, computing the sensitivity of any objective function requires the element-level stiffness matrices , because the density variables act on those individual matrices.
Would anyone know how to extract these element matrices ? or a workaround for computing objective function sensitivity in MATLAB? (first we implement a compliance minimization problem to see if the method works).
Thanks in advance!
Please login with a confirmed email address before reporting spam
Hi Kaap H.
It might be possible to solve it directly in the GUI without any coding. Can you explain the problem you are trying to solve?
Best regards,
Kristian E. Jensen
Technical Product Manager, Optimization
Please login with a confirmed email address before reporting spam
We are trying to optimize the tensile energy present in a prestressed structure. (using plate elements and topology optimization).
The objective function is the ratio of the geometric stiffness matrix (G) and the "standard" stiffness matrix (K), pre and post multiplied by the eigenmodes (x), so x'Gx/x'Kx
As far as I am aware, COMSOL does not support topology optimization for frequency-related problems, nor custom objective functions such as these.
For the sensitivity analysis, the element-wise matrices would be required
Please login with a confirmed email address before reporting spam
I believe this problem is definitely manageable if one is able to extract the element level matrices for sensitivity analysis, or implement a custom function for the sensitivity in COMSOL itself.
As far as I understand it right now, it is not possible?
Looking forward to your reply,
Please login with a confirmed email address before reporting spam
Hi,
I was wondering if extracting element-level matrices is supported.
Please also let me know if this is indeed not possible in COMSOL.
Kind Regards
Please login with a confirmed email address before reporting spam
COMSOL has full support for gradient based optimization over frequency domain problems. Gradient based optimization with the eigenvalue solver is also supported, but only for objectives expressed in terms of the eigenvalues (not the eigenmodes).
You can, however, formulate your eigenvalue problem as non-linear stationary problem. If you are able to make that work (robustly), you might be able to use gradient based optmization with the stationary solver to achieve your goal.
Please login with a confirmed email address before reporting spam
COMSOL has full support for gradient based optimization over frequency domain problems. Gradient based optimization with the eigenvalue solver is also supported, but only for objectives expressed in terms of the eigenvalues (not the eigenmodes).
You can, however, formulate your eigenvalue problem as non-linear stationary problem. If you are able to make that work (robustly), you might be able to use gradient based optmization with the stationary solver to achieve your goal.
Thanks for your reply. Is support for gradient-based optimization using a Density Model in Topology Optimization also included?
Please login with a confirmed email address before reporting spam
Thanks for your reply. Is support for gradient-based optimization using a Density Model in Topology Optimization also included?
Yes, we have many models demonstrating this. You can search the application library and/or gallery to see them. This is a simple example.
Please login with a confirmed email address before reporting spam
You can, however, formulate your eigenvalue problem as non-linear stationary problem. If you are able to make that work (robustly), you might be able to use gradient based optmization with the stationary solver to achieve your goal.
Hi Kristian,
Could you elaborate on the formulation you mentioned? How can the static+eigenfrequency analysis be formulated as a nonlinear stationary problem ?
And how would this be implemented in COMSOL?
Please login with a confirmed email address before reporting spam
Could you elaborate on the formulation you mentioned?
You will need to create a global dependent variable for the eigenvalue. You will also need to add an equation for normalizing the eigenvector (this is where you use the test function of the eigenvalue).
Note that while COMSOL employees may participate in the discussion forum, COMSOL® software users who are on-subscription should submit their questions via the Support Center for a more comprehensive response from the Technical Support team.