-
Notifications
You must be signed in to change notification settings - Fork 274
[SMApp+CLApp] Adding a new triangular thick shell elements + CLs #13921
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
base: master
Are you sure you want to change the base?
Conversation
This is the very first step towards attempting to solve #13350 @loumalouomega @AlejandroCornejo @mcgicjn2
applying the ordering change in rve_analysis.py
… fix `IntegrationPointStatisticsTest` with new analysis structure
…alization in `ResidualBasedNewtonRaphsonMPCContactStrategy`
|
@AlejandroCornejo take a look at conflicts, many files not involved look like modified |
|
Ah, okay yiou are merging the Predict. This makes difficult the review. |
| // \____/\___/|_| |_|___/\__|_|\__|\__,_|\__|_| \_/ \___\____/\__,_| \_/\_/ |___/\_/ \_/ .__/| .__/ | ||
| // |_| |_| | ||
| // | ||
| // License: BSD License |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TABS!
|
|
||
|
|
||
|
|
||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| ///@} |
|
Just one question, do you have a reference or this is your own work? |
|
@rickyaristio can you take a look at this PR? eventually this shell should replace the existing triangular thick shell.. |
rickyaristio
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I went through most of the CSDSG and ANDES formulation, and everything seems correct. Overall, everything looks good. I only left a few minor comments.
| TTu(8, 2) = A4; | ||
| TTu *= (1.0 / A4); | ||
|
|
||
| const double beta0 = 0.5 * (1.0 - 4.0 * std::pow(GetMaterialProperty<double>(POISSON_RATIO, GetProperties()), 2)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this is the only difference when comparing the pure membrane case with the other thin shells. Before beta0 is assumed equal to 1. Nice addition!
| const double alpha = 0.1; | ||
| const double thickness = r_material_properties[THICKNESS]; | ||
| const double t_square = thickness * thickness; | ||
| const double stenberg_stabilization = (5.0 / 6.0) * t_square / (t_square + alpha * h_max * h_max); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the one which comes from the shell (here). With this stabilization, the shells perform better in case of thin problems.
| /***********************************************************************************/ | ||
|
|
||
| template <bool IS_COROTATIONAL> | ||
| void CSDSG3ThickShellElement3D3N<IS_COROTATIONAL>::CalculateLocalSystem( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just out of curiosity, why don't you use CalculateAll() and calculation flags, e.g., calculate_stiffness_matrix_flag and calculate_residual_vector_flag for the CalculateLocalSystem(), CalculateLeftHandSide(), and CalculateRightHandSide(), to reduce repetition and keep everything in one place?
| } | ||
| } | ||
|
|
||
| // Generate locations (from top to bottom: +t/2 -> -t/2) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I may have missed it, but how about SHELL_OFFSET? I think the old Section class defines this one.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TO-DO! thank you
This shell combines some parts already implemented from other existing shells in Kratos, as far as I know (correct me if I am wrong, @AlejandroCornejo).
|
Hi Vicente, thank you for taking your time to read the PR. I had to merge the predict thing in my branch to properly test if the corotational implementation is OK. Hence we'll wait until the predict is merged to add this PR. Besides, I have added the 3 main references to implement the 3 noded shell element, regarding the membrane (Felippa), shear+bending (Bletzinger, Rama) and corotational (Haugen and Felippa). There is nothing "new" regarding the formulation, just a nice combination of different strain-displacement matrices from 2 papers. |
Okay, I think I am not blocking so I will let other to review and if everything OK I will approve (well until predict is not merged this should not be merged) |
That is right, @rickyaristio. Additionally, this new shell (and the subsequent 4 noded one) will be fully compatible with al the constitutive power available in the |
|
@rickyaristio I'd like to know your opinion about where to place the However, it seems that if we use a layered composite shell this What do you guys think? BTW, the Stenberg factor I'll definitely move it to the element since it does not depend on the CL to be used (AFAIK). |
For now we have agreed to maintain the addition of |
📝 Description
In this PR I am adding:
The shell has been tested in several examples, improving the behaviour of the current 3 noded thick shell in all cases.
TO-DO's:
CalculateOnIntegrationPointsThis PR needs the
Predictissue (#13350) to be merged since I have merged that branch.FYI @RiccardoRossi @rickyaristio