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.

How to develop a user defined plasticity model without programming

Please login with a confirmed email address before reporting spam

Hi,

I want to develop a DP-Cap model in Comsol by myself without programming. The difficult thing is to solve the problem of KKT condition. In order to do that, can I just change the yield function in "Plasticity" module as the function for DP-Cap model? Is the plasticity general enough to develop more advanced plastic models?

Thank you for your help.

-------------------
Yu Zhang

5 Replies Last Post 07.06.2019, 02:37 GMT-4
Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 5 years ago 04.06.2019, 10:05 GMT-4

Hi,

What is the difference from the built-in Drucker-Prager with cap model?

Regards, Henrik

-------------------
Henrik Sönnerlind
COMSOL
Hi, What is the difference from the built-in Drucker-Prager with cap model? Regards, Henrik

Please login with a confirmed email address before reporting spam

Posted: 5 years ago 04.06.2019, 16:24 GMT-4
Updated: 5 years ago 04.06.2019, 16:24 GMT-4

Hi, Henrik,

As I don't have the geomechanics module, I want to develop a DP-Cap based on the "Plastcity" module. However, Comsol didn't provide any details about how to deal with the KKT condition and calculate the plastic strain. I am not sure whether it will work if I only change the yield function for "Plasticity" to the yield function for DP-Cap model.

In the "Plasticity" module, the yield function is decomposed into an "Effective stress" and an "yield stress" explicitly. But the yield function for the Cap model can not be formulated as the same format. I think whether it is correct to input the whole yield function into the textbox for the "Effective stress", and leave the blank for "Initial yield stress " as 0. If it is ok, I am wondering how to modify the Relative Tolerance (it is lemm1.plsty1.sY for the original plasticity model) in the Equation view.

Thank you for your help.

-------------------
Yu Zhang
Hi, Henrik, As I don't have the geomechanics module, I want to develop a DP-Cap based on the "Plastcity" module. However, Comsol didn't provide any details about how to deal with the KKT condition and calculate the plastic strain. I am not sure whether it will work if I only change the yield function for "Plasticity" to the yield function for DP-Cap model. In the "Plasticity" module, the yield function is decomposed into an "**Effective stress**" and an "**yield stress**" explicitly. But the yield function for the Cap model **can not** be formulated as the same format. I think whether it is correct to input the **whole yield function into the textbox for the "Effective stress", and leave the blank for "Initial yield stress " as 0**. If it is ok, I am wondering how to modify the **Relative Tolerance** (it is lemm1.plsty1.sY for the original plasticity model) in the Equation view. Thank you for your help.

Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 5 years ago 05.06.2019, 06:53 GMT-4
Updated: 5 years ago 05.06.2019, 06:53 GMT-4

Hi,

As long as you can describe the yield function as an explicit expression in terms of the stress tensor components, you can create your own plasticity model without programming. The function should preferably be 'smooth', so that it is continuously differentiable with respect to the stresses. Note that it must also be differentiable at zero stress without giving a zerodivide.

One option in your case is to select an arbitrary stress value (with a reasonable order of magnitude) as the Initial yield stress. You then add this constant value also to the Effective stress function, so that the differencce cancels out. The given ‘yield stress’ now goes into the tolerance variable. The tolerance actually used during iterations is a small fraction of the value of solid.lemm1.plsty1.tol.

If you are into soil plasticity, maybe you should consider getting a Geomechanics Module licence though, rather than doing your own implementations.

Regards,
Henrik

-------------------
Henrik Sönnerlind
COMSOL
Hi, As long as you can describe the yield function as an explicit expression in terms of the stress tensor components, you can create your own plasticity model without programming. The function should preferably be 'smooth', so that it is continuously differentiable with respect to the stresses. Note that it must also be differentiable at zero stress without giving a zerodivide. One option in your case is to select an arbitrary stress value (with a reasonable order of magnitude) as the **Initial yield stress**. You then add this constant value also to the **Effective stress** function, so that the differencce cancels out. The given ‘yield stress’ now goes into the tolerance variable. The tolerance actually used during iterations is a small fraction of the value of *solid.lemm1.plsty1.tol*. If you are into soil plasticity, maybe you should consider getting a Geomechanics Module licence though, rather than doing your own implementations. Regards, Henrik

Please login with a confirmed email address before reporting spam

Posted: 5 years ago 05.06.2019, 09:36 GMT-4
Updated: 5 years ago 05.06.2019, 09:34 GMT-4

Hi,

As long as you can describe the yield function as an explicit expression in terms of the stress tensor components, you can create your own plasticity model without programming. The function should preferably be 'smooth', so that it is continuously differentiable with respect to the stresses. Note that it must also be differentiable at zero stress without giving a zerodivide.

One option in your case is to select an arbitrary stress value (with a reasonable order of magnitude) as the Initial yield stress. You then add this constant value also to the Effective stress function, so that the differencce cancels out. The given ‘yield stress’ now goes into the tolerance variable. The tolerance actually used during iterations is a small fraction of the value of solid.lemm1.plsty1.tol.

If you are into soil plasticity, maybe you should consider getting a Geomechanics Module licence though, rather than doing your own implementations.

Regards,
Henrik

Hi, Henrik:

Thank you for your detailed reply. It helps me a lot. Generally, to determine the plastic strain, a KKT condition and a corresponding iterative algorithm is necessary. I am planing to achieve this explicitly in COMSOL by myself. I am wondering whether there is a way to deal with the KKT condition and the iterative algorithm without programming, only by using bulit-in module, like PDE or ODEs?

Thank you for your help.

-------------------
Yu Zhang
>Hi, > >As long as you can describe the yield function as an explicit expression in terms of the stress tensor components, you can create your own plasticity model without programming. The function should preferably be 'smooth', so that it is continuously differentiable with respect to the stresses. Note that it must also be differentiable at zero stress without giving a zerodivide. > >One option in your case is to select an arbitrary stress value (with a reasonable order of magnitude) as the **Initial yield stress**. You then add this constant value also to the **Effective stress** function, so that the differencce cancels out. The given ‘yield stress’ now goes into the tolerance variable. The tolerance actually used during iterations is a small fraction of the value of *solid.lemm1.plsty1.tol*. > >If you are into soil plasticity, maybe you should consider getting a Geomechanics Module licence though, rather than doing your own implementations. > >Regards, >Henrik Hi, Henrik: Thank you for your detailed reply. It helps me a lot. Generally, to determine the plastic strain, a KKT condition and a corresponding iterative algorithm is necessary. I am planing to achieve this explicitly in COMSOL by myself. I am wondering whether there is a way to deal with the KKT condition and the iterative algorithm without programming, only by using bulit-in module, like PDE or ODEs? Thank you for your help.

Henrik Sönnerlind COMSOL Employee

Please login with a confirmed email address before reporting spam

Posted: 5 years ago 07.06.2019, 02:37 GMT-4
Updated: 5 years ago 07.06.2019, 02:37 GMT-4

Hi,

I think it is difficult to create a Karush-Kuhn-Tucker condition without programming. When you use a plasticity model (either built-in or through a User defined expression) this is taken care of by a lower level code which you do not have access to.

Regards,
Henrik

-------------------
Henrik Sönnerlind
COMSOL
Hi, I think it is difficult to create a Karush-Kuhn-Tucker condition without programming. When you use a plasticity model (either built-in or through a User defined expression) this is taken care of by a lower level code which you do not have access to. Regards, Henrik

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.