KratosMultiphysics / Kratos

Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.
https://kratosmultiphysics.github.io/Kratos/
Other
1.03k stars 245 forks source link

Pressure load failed #8278

Open dzheng26 opened 3 years ago

dzheng26 commented 3 years ago

Description I tried to add pressure to a tube like structure. The simulation failed to converge. When I reduced the pressure to less than 1% of the initial value. Simulation works but with very small deformation. Could you help me on what I did wrong? Files are attached. Pressure_load.tar.gz

Scope Structure mechanics simple example.

philbucher commented 3 years ago

@KratosMultiphysics/structural-mechanics

AlejandroCornejo commented 3 years ago

Dear @dzheng-conti , can you attach the case so we can check everything? the original that is not working properly. Thank you and sorry for the inconveniences.

dzheng26 commented 3 years ago

@AlejandroCornejo , the example files are attached in my initial post. Thanks for your help.

AlejandroCornejo commented 3 years ago

Thank you, I've checked the input files and I've noticed that YOUNG_MODULUS is set to 100 Pa. This means that the material is extremely flexible (I suppose you want 100 MPa?).

dzheng26 commented 3 years ago

The units used in the example are N and mm. So YOUNG_MODULUS 100 is actually 100 MPa. Is Kratos unit free?

AlejandroCornejo commented 3 years ago

As far as I know, if in the input data is 100 should be in international units (100 Pa) @RiccardoRossi , Maybe the GUI should do this conversion?

dzheng26 commented 3 years ago

@AlejandroCornejo Here is another hint which may help. I reduced the pressure final value from 0.3 to 0.001 (mono04-infX.json). Kratos works and the displacement is reasonable (compared with other fem code). The max Z displacement is 0.022 mm. Then I changed the pressure to 0.002 (mono04-infY.json). Kratos also works. However, the displacement is strange. At step 5 out of 10, the displacement is still correct. It got the same displacement as the final displacement of mono04-infX.json. Then the displacement increased rapidly. The final max Z displacement is 9.4 mm. This is too big.

Pressure_load2.tar.gz

AlejandroCornejo commented 3 years ago

@AlejandroCornejo Here is another hint which may help. I reduced the pressure final value from 0.3 to 0.001 (mono04-infX.json). Kratos works and the displacement is reasonable (compared with other fem code). The max Z displacement is 0.022 mm. Then I changed the pressure to 0.002 (mono04-infY.json). Kratos also works. However, the displacement is strange. At step 5 out of 10, the displacement is still correct. It got the same displacement as the final displacement of mono04-infX.json. Then the displacement increased rapidly. The final max Z displacement is 9.4 mm. This is too big.

Pressure_load2.tar.gz

Dear @dzheng-conti , I've been testing and I've noticed that if you use the SmallDisplacementSurfaceLoadCondition3D4N instead of the SurfaceLoadCondition3D4N it converges correctly!

Maybe there's a bug inside the SurfaceLoadCondition3D4N @philbucher @RiccardoRossi

RiccardoRossi commented 3 years ago

is it a large displacenent case, or a small displacement one?

On Sat, Feb 13, 2021, 11:51 AM Alejandro Cornejo Velázquez < notifications@github.com> wrote:

@AlejandroCornejo https://github.com/AlejandroCornejo Here is another hint which may help. I reduced the pressure final value from 0.3 to 0.001 (mono04-infX.json). Kratos works and the displacement is reasonable (compared with other fem code). The max Z displacement is 0.022 mm. Then I changed the pressure to 0.002 (mono04-infY.json). Kratos also works. However, the displacement is strange. At step 5 out of 10, the displacement is still correct. It got the same displacement as the final displacement of mono04-infX.json. Then the displacement increased rapidly. The final max Z displacement is 9.4 mm. This is too big.

Pressure_load2.tar.gz https://github.com/KratosMultiphysics/Kratos/files/5972030/Pressure_load2.tar.gz

Dear @dzheng-conti https://github.com/dzheng-conti , I've been testing and I've noticed that if you use the SmallDisplacementSurfaceLoadCondition3D4N instead of the SurfaceLoadCondition3D4N it converges correctly!

Maybe there's a bug inside the SurfaceLoadCondition3D4N @philbucher https://github.com/philbucher @RiccardoRossi https://github.com/RiccardoRossi

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/KratosMultiphysics/Kratos/issues/8278#issuecomment-778598956, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB5PWEJQ4YTAIBMJXY2LSQTS6ZKT7ANCNFSM4XPEWUAQ .

AlejandroCornejo commented 3 years ago

is it a large displacenent case, or a small displacement one? On Sat, Feb 13, 2021, 11:51 AM Alejandro Cornejo Velázquez < @.***> wrote: @AlejandroCornejo https://github.com/AlejandroCornejo Here is another hint which may help. I reduced the pressure final value from 0.3 to 0.001 (mono04-infX.json). Kratos works and the displacement is reasonable (compared with other fem code). The max Z displacement is 0.022 mm. Then I changed the pressure to 0.002 (mono04-infY.json). Kratos also works. However, the displacement is strange. At step 5 out of 10, the displacement is still correct. It got the same displacement as the final displacement of mono04-infX.json. Then the displacement increased rapidly. The final max Z displacement is 9.4 mm. This is too big. Pressure_load2.tar.gz https://github.com/KratosMultiphysics/Kratos/files/5972030/Pressure_load2.tar.gz Dear @dzheng-conti https://github.com/dzheng-conti , I've been testing and I've noticed that if you use the SmallDisplacementSurfaceLoadCondition3D4N instead of the SurfaceLoadCondition3D4N it converges correctly! Maybe there's a bug inside the SurfaceLoadCondition3D4N @philbucher https://github.com/philbucher @RiccardoRossi https://github.com/RiccardoRossi — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#8278 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB5PWEJQ4YTAIBMJXY2LSQTS6ZKT7ANCNFSM4XPEWUAQ .

This case is a small displ case in my opinion, the geometry does not change so much. Maybe with a very high pressure it is necessary. (It's a wheel with an inner pressure)

rubenzorrilla commented 3 years ago

As far as I know, if in the input data is 100 should be in international units (100 Pa) @RiccardoRossi , Maybe the GUI should do this conversion?

More than international units the input must be in a consistent system of units, meaning that N - mm is fine. The GUI already has the capability to convert between different pre-stablished units (only for the material properties so far).