-
Notifications
You must be signed in to change notification settings - Fork 90
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Contact mechanics softening factor #1151
Comments
This is partly related to #957 |
Suggested action:
|
Some preliminary observations/conclusions - still WIP and not ready for discussion but as a reminder for later discussion:
|
To your first point: It was intended for the case where you know a traction driving force and not the displacement (e.g. you have only zero Dirichlet values and nonzero Neumann). In that case, you might want to override the methods for characteristic displacement and traction, fetching the traction material parameter for the latter and estimating the former from traction based on Hooke's law (inverse of what is by default done in the traction method). Does this make sense? |
Thanks for the comment. Without a NOTE in the code, this is not obvious (In fact in previous run scripts, I have set values for both characteristic quantities although I thought I checked their use, but overlooked the lacking effect of changing the traction value) - it was not for us. We will add a note then. |
Alternative could be to add the rescaling you describe and make a if-else choice. If the characteristic traction != 1, one would invoke the added rescaling, otherwise, the default rescaling is used. If both values are uneqal one, a ValueError is thrown. |
Related to this point, would it be a good idea to include in the if-else condition that if both characteristic_displacement and characteristic_traction are equal to one, then these are the characteristic values that will be used? In this way, the default option will be to use the contact equations in their original, non-scaled form. |
Or at least I think there should be an obvious way to use the non-scaled contact equations if one wishes to do so. At the moment it is necessary to override the characteristic_contact_traction() method to achieve this, if I have understood correctly. |
Since the work on the rescaling did not only add rescaling, but also changed the meaning of cnum, I do not think it would be advisable to re-establish the old cnum when both parameters are chosen equal to 1. This would invoke a discontinuous behavior. On the other hand, my description (or having the two different scalings depending on the two different inputs) is also not continuous... We can discuss next time - I guess it depends on relevance and use cases. So far the philosopy was the user is responsible for adding the mixins he/she needs. The current indication of what mixin should be developed and added breaks with this philsophy. This is why I was suggesting to actually add the intended use. |
One would have to be careful and overwrite both characteristic_contact_traction and characteristic_displacement. |
In the contact mechanics equations, we currently compare tractions to c_num times (increments of) displacement jumps. C_num is by default computed as
c_num = shear modulus / (solid.residual_aperture() + solid.fracture_gap()) * SOFTENING FACTOR.
From a physical intuition, this resembles a Hooke's law, thus ensuring that the tractions and scaled displacements have similar magnitudes. However, the justification of the softening factor is truly heuristic ("making the fracture softer than the matrix " for the default value of 0.1). We should consider to either purge it or replace the shear modulus with the fracture's elastic modulus, i.e. the fracture stiffness parameter (which typically takes values roughly one order of magnitude smaller than the Lame parameters).
The text was updated successfully, but these errors were encountered: