Skip to content
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

[Study] Multi time resolution #593

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

WeiyiVirtonomy
Copy link
Collaborator

@WeiyiVirtonomy WeiyiVirtonomy commented Jun 14, 2024

A 2d test case of multi-time resolution contact problem

Description

The left brick represents a catheter with higher stiffness, while the right brick represents the softer arterial wall. The catheter and the aorta have contact interaction.

By using single time step size, the configuration is:
Screenshot 2024-06-17 095533

By using a dual loop, the aorta particles are strongly oscillating:
Screenshot 2024-06-17 095514

@WeiyiVirtonomy WeiyiVirtonomy marked this pull request as draft June 14, 2024 17:08
@WeiyiVirtonomy
Copy link
Collaborator Author

@Xiangyu-Hu I have pushed a 2D test case for multi-time-resolution problems. I would appreciate it if we could schedule some time to discuss how to deal with this problem.

@WeiyiVirtonomy
Copy link
Collaborator Author

@DongWuTUM Could you explain the left Cauchy damping to me again? Is the damping stress elastic_solid_.NumericalDampingLeftCauchy(...) * inverse_F.transpose()?

@DongWuTUM
Copy link
Collaborator

@DongWuTUM Could you explain the left Cauchy damping to me again? Is the damping stress elastic_solid_.NumericalDampingLeftCauchy(...) * inverse_F.transpose()?

If you use the Green-Lagrangian strain tensor $\mathbb{E}$ to calculate stress, then you should use the 'NumericalDampingRightCauchy(...)' which can be added directly to the second Piola-Kirchhoff stress $\mathbb{S}$.

If you use left Cauchy-Green deformation gradient tensor $\mathbb{b}$, then you should use the 'NumericalDampingLeftCauchy(...)' which can be added directly to the Kirchhoff stress $\mathbb{\tau}$.

@WeiyiVirtonomy
Copy link
Collaborator Author

@DongWuTUM Could you explain the left Cauchy damping to me again? Is the damping stress elastic_solid_.NumericalDampingLeftCauchy(...) * inverse_F.transpose()?

If you use the Green-Lagrangian strain tensor E to calculate stress, then you should use the 'NumericalDampingRightCauchy(...)' which can be added directly to the second Piola-Kirchhoff stress S .

If you use left Cauchy-Green deformation gradient tensor b , then you should use the 'NumericalDampingLeftCauchy(...)' which can be added directly to the Kirchhoff stress τ .

Thanks a lot!

@WeiyiVirtonomy
Copy link
Collaborator Author

WeiyiVirtonomy commented Jan 9, 2025

@DongWuTUM @Xiangyu-Hu The dual loop for contact problem works after we modify the contact force formulation by using the harmonic average of the contact stiffness.

Test: a stiff catheter (represented by a rectangular with a round tip) moves upward and collides with the soft aorta (represented by a quarter circle).
Sound speed ratio between two materials: 191

Left: dual loop, the contact force acting on the stiff material is assumed to be constant during the inner loop
Right: single-time-stepping

image

Single-time stepping computation time: 134s
Dual-time stepping computation time: 40s

The instability observed before was caused by the fact that we were using $p^{*} = \sigma_i K_i + \sigma_j K_j $ to compute contact force. As the square of sound speed of the stiff material is included in this formula, it would be too large for the soft material acoustic time step size.

By using the harmonic average, the smaller contact stiffness dominates and reduces the instability.

I can go on to clean up this test case if you think it would be good to include it in SPHinXsys

@Xiangyu-Hu
Copy link
Owner

Sure. Please go ahead.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants