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
Posted 4 juin 2019, 07:54 UTC−4 Structural & Acoustics, Geomechanics Version 5.4 5 Replies
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
Please login with a confirmed email address before reporting spam
Hi,
What is the difference from the built-in Drucker-Prager with cap model?
Regards, Henrik
-------------------Henrik Sönnerlind
COMSOL
Please login with a confirmed email address before reporting spam
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
Please login with a confirmed email address before reporting spam
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
Please login with a confirmed email address before reporting spam
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
Please login with a confirmed email address before reporting spam
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
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.
Suggested Content
- KNOWLEDGE BASE How to Debug an External Material
- BLOG Accessing External Material Models for Structural Mechanics
- KNOWLEDGE BASE The Magnetic and Electric Fields Interface with Electrical Circuit Gives an Unexpected Error for Transient Studies
- FORUM Operators not Allowed in User Defined Functions
- FORUM Error in user-defined function