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

Jaumann rotation before or after force update? #3

Open
echoi opened this issue Dec 4, 2019 · 4 comments
Open

Jaumann rotation before or after force update? #3

echoi opened this issue Dec 4, 2019 · 4 comments

Comments

@echoi
Copy link
Collaborator

echoi commented Dec 4, 2019

I realized that Jaumann stress is currently computed AFTER force update. This means that forces, velocities and displacements are all being computed based on non-objective stresses.

The next stress update step would start with corrected stresses but new stress increments are still non-objective. So, the current work flow will only accumulate non-objective results.

I propose to move the call to rotate_stress() between update_stress() and NMD_stress().

@tan2
Copy link
Owner

tan2 commented Dec 5, 2019 via email

@echoi
Copy link
Collaborator Author

echoi commented Dec 5, 2019

I focused more on the fact that what should be objective is stress rate. Since an elastic stress increment is computed as elastic stress rate times dt before added to the old Cauchy stress, I thought the increment should be based on an objective stress rate. If you agree that force calculations should involve Cauchy stress updated with an objective increment, rotate_stress() would have to be called before update_force().

Perhaps I might be just splitting hairs: Rotating stresses before updating forces might not make much difference compared to the current work flow.

Whatever decision is made, I think Eh is right that we should base it on the results of real models.
In fact, I've never compared results with and without Jaumann correction because it was just always there since I started using FLAC and its variants.

I'll run three 2D core-complex models with the current work flow, with the sequence I proposed and without stress rotation and report results back here. Then, I'll move on to 3D ones.

@echoi
Copy link
Collaborator Author

echoi commented Dec 5, 2019

My intention was to compare 2D results first but got 3D results by mistake. I'm posting them any way.
I used examples/core-complex.cfg for all three models.

Not much can be said without the true solution. So, maybe a simple shear experiment is more appropriate. Any way, I observe that

  1. with rotation applied, the cliff is steeper and the valley deeper.
  2. differences in topography are less between the original and the new sequence than between either rotation sequence and no rotation.

Please see if you can agree and let me know if we can say anything else about which sequence to take.

  • Side view of plastic strain in the 3 models
    jaumann_comparison_sideview
  • Oblique view of plastic strain in the 3 models
    jaumann_comparison_obliqview
  • Comparison of topo and mesh between the original and the new sequence
    jaumann_comparison_topomesh_orignew
  • Comparison of topo and mesh between the original and the no-rotation
    jaumann_comparison_topomesh_orignorot
  • Comparison of topo and mesh between the new and the no-rotation
    jaumann_comparison_topomesh_newnorot

@tan2
Copy link
Owner

tan2 commented Dec 6, 2019 via email

sharkbig pushed a commit to sharkbig/DynEarthSol that referenced this issue Nov 30, 2021
gpu parallel for strain rate and rotate stress
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

No branches or pull requests

2 participants