Skip to content

Conversation

@ShuangLi-1
Copy link
Collaborator

💡 Fluid Shear Stress Coupling in Soil Plasticity Model

This pull request introduces a novel coupling mechanism between fluid-induced shear stress and the Drucker–Prager (DP) soil plasticity model within our SPH simulations. The primary objective is to enhance the model's capability by incorporating hydrodynamic erosion effects into the stress evolution of surface soil particles, aiming for a more physically accurate representation of soil-fluid interaction.

🧮 Physical Formulations

The bed shear stress exerted by the fluid on the soil surface is formulated as:
image
Where:

  • $\rho_f$: Fluid density
  • $u_*$: Friction velocity
  • $\hat{\mathbf{t}}$: Unit vector in the direction of shear flow
  • $\otimes$: Outer product

The total soil stress tensor is then updated by incorporating this fluid-induced shear:

image

Subsequently, a standard return mapping algorithm is applied to enforce the plasticity criterion:

image

🧪 Current Observations & Open Questions

While the fluid shear stress has been successfully integrated into the soil stress evolution, initial simulations reveal a negligible influence on the observed deformation or yield behavior under realistic physical values.

  • The current magnitude of the applied fluid shear stress $(10^0)$ is several orders of magnitude smaller than typical internal soil stress levels $(10^2)$.
  • As a result, fluid shear stress has limited impact on triggering plastic deformation.
  • Artificially amplifying the fluid shear stress by 100× leads to noticeable stress change, but the deformation behavior becomes unrealistic and inconsistent with expected physical behavior.

📊 Visual Comparison of Fluid Shear Stress Effects

The following visualizations illustrate the model's behavior under different fluid shear stress magnitudes:

  • Original fluid shear stress magnitude:
    original

  • Amplified fluid shear stress (100×):
    100-times

@Xiangyu-Hu
Copy link
Owner

@ShuangLi-1 It seems that there particles go inside the soil?

@Xiangyu-Hu
Copy link
Owner

💡 Fluid Shear Stress Coupling in Soil Plasticity Model

This pull request introduces a novel coupling mechanism between fluid-induced shear stress and the Drucker–Prager (DP) soil plasticity model within our SPH simulations. The primary objective is to enhance the model's capability by incorporating hydrodynamic erosion effects into the stress evolution of surface soil particles, aiming for a more physically accurate representation of soil-fluid interaction.

🧮 Physical Formulations

The bed shear stress exerted by the fluid on the soil surface is formulated as: image Where:

  • ρ
    f

    : Fluid density

  • u

    : Friction velocity

  • t

      ^
    

    : Unit vector in the direction of shear flow


  • : Outer product

The total soil stress tensor is then updated by incorporating this fluid-induced shear:

image

Subsequently, a standard return mapping algorithm is applied to enforce the plasticity criterion:

image

🧪 Current Observations & Open Questions

While the fluid shear stress has been successfully integrated into the soil stress evolution, initial simulations reveal a negligible influence on the observed deformation or yield behavior under realistic physical values.

  • The current magnitude of the applied fluid shear stress
    (

    10
    0
    

    )
    is several orders of magnitude smaller than typical internal soil stress levels
    (

    10
    2
    

    )
    .

  • As a result, fluid shear stress has limited impact on triggering plastic deformation.

  • Artificially amplifying the fluid shear stress by 100× leads to noticeable stress change, but the deformation behavior becomes unrealistic and inconsistent with expected physical behavior.

📊 Visual Comparison of Fluid Shear Stress Effects

The following visualizations illustrate the model's behavior under different fluid shear stress magnitudes:

  • Original fluid shear stress magnitude:
    original

        [
          
        
            ![original](https://private-user-images.githubusercontent.com/192057487/464364982-1c288857-7902-463c-bfb2-a829539c894d.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTIxMzk4NTIsIm5iZiI6MTc1MjEzOTU1MiwicGF0aCI6Ii8xOTIwNTc0ODcvNDY0MzY0OTgyLTFjMjg4ODU3LTc5MDItNDYzYy1iZmIyLWE4Mjk1MzljODk0ZC5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwNzEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDcxMFQwOTI1NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yOTJiM2E3YzI0MWE0NDM0YmI0MDEzNzRmZTc1YzJhYjRjNTg2NGNjNDVlNDc5ZmUyNzY3MWY0ZWM3YjdkNWI2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.LCdB-QPoul8TpgJUIAxSfV8hsqQR958hBnd-fyK0Bro)
          ](https://private-user-images.githubusercontent.com/192057487/464364982-1c288857-7902-463c-bfb2-a829539c894d.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTIxMzk4NTIsIm5iZiI6MTc1MjEzOTU1MiwicGF0aCI6Ii8xOTIwNTc0ODcvNDY0MzY0OTgyLTFjMjg4ODU3LTc5MDItNDYzYy1iZmIyLWE4Mjk1MzljODk0ZC5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwNzEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDcxMFQwOTI1NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yOTJiM2E3YzI0MWE0NDM0YmI0MDEzNzRmZTc1YzJhYjRjNTg2NGNjNDVlNDc5ZmUyNzY3MWY0ZWM3YjdkNWI2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.LCdB-QPoul8TpgJUIAxSfV8hsqQR958hBnd-fyK0Bro)
        
        
          
            
              
            
            
              
              
            
          
          [
            
              
            
          ](https://private-user-images.githubusercontent.com/192057487/464364982-1c288857-7902-463c-bfb2-a829539c894d.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTIxMzk4NTIsIm5iZiI6MTc1MjEzOTU1MiwicGF0aCI6Ii8xOTIwNTc0ODcvNDY0MzY0OTgyLTFjMjg4ODU3LTc5MDItNDYzYy1iZmIyLWE4Mjk1MzljODk0ZC5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwNzEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDcxMFQwOTI1NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT0yOTJiM2E3YzI0MWE0NDM0YmI0MDEzNzRmZTc1YzJhYjRjNTg2NGNjNDVlNDc5ZmUyNzY3MWY0ZWM3YjdkNWI2JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.LCdB-QPoul8TpgJUIAxSfV8hsqQR958hBnd-fyK0Bro)
    
  • Amplified fluid shear stress (100×):
    100-times

        [
          
        
            ![100-times](https://private-user-images.githubusercontent.com/192057487/464377673-7b851d8d-6b52-4e33-9e9f-75e742d2da2e.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTIxMzk4NTIsIm5iZiI6MTc1MjEzOTU1MiwicGF0aCI6Ii8xOTIwNTc0ODcvNDY0Mzc3NjczLTdiODUxZDhkLTZiNTItNGUzMy05ZTlmLTc1ZTc0MmQyZGEyZS5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwNzEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDcxMFQwOTI1NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMTJmYjQwOTQ1NGNhZDk1MTlkYjMwODM2MTE1NTE2ZjhkY2ZlZDdkMTA5YzI1NDU0YjJjNjE5YmYyMWM5NTRkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.IbzWhoF18tOrN6mwPAjUlO2MMQA7mVBzEI9VV1cF5dc)
          ](https://private-user-images.githubusercontent.com/192057487/464377673-7b851d8d-6b52-4e33-9e9f-75e742d2da2e.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTIxMzk4NTIsIm5iZiI6MTc1MjEzOTU1MiwicGF0aCI6Ii8xOTIwNTc0ODcvNDY0Mzc3NjczLTdiODUxZDhkLTZiNTItNGUzMy05ZTlmLTc1ZTc0MmQyZGEyZS5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwNzEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDcxMFQwOTI1NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMTJmYjQwOTQ1NGNhZDk1MTlkYjMwODM2MTE1NTE2ZjhkY2ZlZDdkMTA5YzI1NDU0YjJjNjE5YmYyMWM5NTRkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.IbzWhoF18tOrN6mwPAjUlO2MMQA7mVBzEI9VV1cF5dc)
        
        
          
            
              
            
            
              
              
            
          
          [
            
              
            
          ](https://private-user-images.githubusercontent.com/192057487/464377673-7b851d8d-6b52-4e33-9e9f-75e742d2da2e.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NTIxMzk4NTIsIm5iZiI6MTc1MjEzOTU1MiwicGF0aCI6Ii8xOTIwNTc0ODcvNDY0Mzc3NjczLTdiODUxZDhkLTZiNTItNGUzMy05ZTlmLTc1ZTc0MmQyZGEyZS5naWY_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjUwNzEwJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI1MDcxMFQwOTI1NTJaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1iMTJmYjQwOTQ1NGNhZDk1MTlkYjMwODM2MTE1NTE2ZjhkY2ZlZDdkMTA5YzI1NDU0YjJjNjE5YmYyMWM5NTRkJlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCJ9.IbzWhoF18tOrN6mwPAjUlO2MMQA7mVBzEI9VV1cF5dc)
    

I think that there is a soaking process, by which the yield of the solid is decreased dramatically. Such soaking process can be modeled by diffusion process and is enhanced by turbulent shear at soil surface.

FluidType &fluid_;
RiemannSolverType riemann_solver_;
};
template <class RiemannSolverType, class KernelCorrectionType, typename... Parameters>
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The problem is a typical FSI problem, we do not need add extra method in fluid mechanics.

StdVec<DiscreteVariable<Vecd> *> dv_wall_vel_ave_, dv_wall_acc_ave_, dv_wall_n_;
StdVec<DiscreteVariable<Real> *> dv_wall_Vol_;
};

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need to be refrained to add new class in the library. Please discuss with me first on such things.

@ShuangLi-1
Copy link
Collaborator Author

Dam Breach Model Update for Coarse Particle Dams

@Xiangyu-Hu

This is the updated dam breach model, specifically designed for the breaching of dams composed of coarse particles.


Algorithm Overview

1. Shear Stress Computation

  • Compute the shear velocity and shear stress based on the turbulent wall-function formulation.

2. Strength Reduction

  • Define strength reduction based on the relative shear stress.
  • Erosion leads to reductions in both cohesion and internal friction angle.

3. Viscous Modeling

  • Introduce the HBP (Herschel–Bulkley–Papanastasiou) model to simulate viscous effects.
  • Add viscosity in regions with high shear rates.

4. Return Mapping Consistency

  • Shear and viscous forces are excluded from the return mapping of internal soil stress to prevent interference.

🔧Other Code Changes

  • The main particle dynamics have been migrated to:
    • erosion_dynamics_1st_ck.h/hpp
    • erosion_dynamics_2nd_ck.h/hpp
  • The extended interact<Fluid> module has been moved to:
    • erosion_interaction_ck.h/hpp

Current Results

Without Explicit Shear Acceleration

If the fluid shear stress is not explicitly applied as a shear acceleration to soil particles, the results are relatively stable, but the model neglects actual surface shear:

No-Shear-acceleration


With Direct Shear Acceleration

If the fluid shear stress is directly applied to soil particles, the non-uniformity of the shear force leads to velocity instabilities in surface particles and eventual simulation failure.

Formula:

image

Example Result:

image

❓Question

How can we better handle surface shear stress in terms of its effect on the stress state and acceleration of soil particles?

@Xiangyu-Hu
Copy link
Owner

@ShuangLi-1 Do you applies a morris formulation of shear force?

@ShuangLi-1
Copy link
Collaborator Author

@ShuangLi-1 Do you applies a morris formulation of shear force?

I did not calculate the shear force using the velocity gradient. Instead, I defined the shear force based on the friction velocity $u_*$, assuming that the friction velocity is in the same direction as the flow velocity $u_{shear}$.

image

@Xiangyu-Hu
Copy link
Owner

@ShuangLi-1 so your case is very similar to what Feng has faced. We need a stabilizer for it.

@Xiangyu-Hu
Copy link
Owner

In this case, we need to local shear direction from the soil normal. And Riemann solver along the normal direction.

@ShuangLi-1
Copy link
Collaborator Author

In this case, we need to local shear direction from the soil normal. And Riemann solver along the normal direction.

Thanks a lot. I will dicuss it with feng and you later.

@ShuangLi-1
Copy link
Collaborator Author

ShuangLi-1 commented Jul 31, 2025

@Xiangyu-Hu

Improvements to the Erosion Model

Modifications

The following changes have been implemented to improve the erosion model:

  1. Shear Force Correction

    • Corrected the calculation and direction of shear force.
    • Added mutual shear force interaction between fluid and soil.

    Shear force application:

    Matd soil_shear_stress_tensor_j = degradeToMatd(soil_shear_stress_tensor_[index_j]);
    force += ((soil_shear_stress_tensor_i + soil_shear_stress_tensor_j)) * nablaW_ijV_j;
    force_[index_i] += force * Vol_[index_i];
    

Shear force direction (tangent selection):

  Vecd n = n_[index_i];
  Vecd t1(-n[1], n[0]); 
  Vecd t2(n[1], -n[0]); 
  Vecd t_hat = (u_shear_i.dot(t1) > u_shear_i.dot(t2)) ? t1 : t2;

Particle Relaxation

Introduced particle relaxation to improve the initial particle distribution, especially for irregular boundaries.

Numerical Treatment

During testing, we found that local numerical instabilities were related to anomalies in the computed shear force, which were in turn linked to unusually high observed velocities.

When a limiter was introduced,the simulation can be stable:

Real u_star = plastic_kernel_.getFrictionVelocity(SMIN(u_shear_i.norm(), 5.0), 0.5 * particle_spacing_);

Maybe I need to revise the calculation of shear vleocity later to avoid the abnormally large, non-physical values。

Results

With the corrected shear force formulation and Riemann-based normal direction correction, numerical stability has improved significantly.

Viscous forces are currently not included, because after yielding, the soil mass is still largely unaffected by fluid shear—shear values are too low to cause significant motion.
wetting+shear

Observation

To verify this hypothesis, a test was conducted with soil strength parameters (c, φ) set to zero from the beginning.
No-strength

The soil behaved like a fluid in appearance but did not get carried away by the water.

If the two phases were fully mixed, motion would be governed by the velocity gradient and pressure gradient.
However, in the current model, we only apply shear stress using τ = ρ u², which contributes little to actual motion.

Question

When the soil behaves like a fluid, is the turbulent boundary model based on friction velocity still valid?
How to define soil-water interaction when post-yield soil exhibits fluid-like characteristics?

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