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

Test cantilever beam with shell #135

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

Conversation

FabienPean-Virtonomy
Copy link
Collaborator

@FabienPean-Virtonomy FabienPean-Virtonomy commented Jul 22, 2022

Description

description

The cantilever beam can be found here. In the Euler-Bernoulli formalism, a rigid cross-section orthogonal to the centerline is assumed, so for isotropic linear elastic material, it is closest to the analytical value when Poisson's ratio is 0. In this test case, the maximum expected deflection $\delta=\tfrac{qL^4}{8EI}=7.246$ mm.

Material properties:

  • Linear elastic
    • E=21GPa (10x smaller than steel because too slow otherwise)
    • nu=0.49, because it starts to fail somewhere between 0.48 and 0.49
  • Density: 7800 (like steel, tested with 780 but does not changing anything)

Results

Analytical Abaqus (steel) SPHinxsys SPHinxsys SPHinxsys SPHinxsys SPHinxsys SPHinxsys SPHinxsys SPHinxsys SPHinxsys SPHinxsys SPHinxsys SPHinxsys SPHinxsys SPHinxsys
Deflection (mm) 7.25 9.51 8.61 8.18 8.65 8.18 7.96 4.36 7.03 7.86 3.63 6.68 7.49 4.42 7.47 8.04
Error (%) 0 1.17 31.2 18.8 12.9 19.4 12.9 9.8 39.9 3.0 8.5 49.9 7.8 3.4 39.0 3.1 11.0
Runtime (s) 175 822 4369 194 840 4537 175 786 4321 195 835 4520 194 837 4509
Resolution 0.004 0.002 0.001 0.004 0.002 0.001 0.004 0.002 0.001 0.004 0.002 0.001 0.004 0.002 0.001
Cell or Node location Cell Cell Cell Node Node Node Cell Cell Cell Node Node Node Node Node Node
Extending BC FALSE FALSE FALSE FALSE FALSE FALSE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Exact volume N.A. N.A. N.A. FALSE FALSE FALSE N.A. N.A. N.A. FALSE FALSE FALSE TRUE TRUE TRUE

Discussion

It seems to converge close to analytical value (~3% error at dp=2mm), but it must be confirmed with simulation running at smaller resolution. Running at smaller resolution (dp = thickness/2) does not converge towards analytical.
A main source of error is the boundary condition that must be carefully adjusted in order to have physical location x=0 to be fixed.
While writing this issue, it also occurred to me that there is some shear of the cross-section as the shell formulation follows the Mindlin–Reissner theory, if I understood it correctly. So unless I constrain the pseudo-normal, the closest beam formulation to follow would actually be the Timoshenko beam theory. All things considered it might get close enough.

The pain point is when I run at lower Poisson ratio. Simulation fails already somewhere in-between 0.48 and 0.49. Your help here @DongWuTUM would be appreciated. (Just look at the last commit in the PR, it looks like so much changes because it is based on another PR by Prof. Hu yet to be merged))

Xiangyu-Hu and others added 30 commits June 29, 2022 09:31
Copy link
Collaborator

@DongWuTUM DongWuTUM left a comment

Choose a reason for hiding this comment

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

  1. When the Poisson ratio is between 0.48-0.49, the simulation crashes. You can try to decrease the time step size slightly. (I have tried to reduce the dt, and the simulation is Okay). This issue is relevant to numerical stability, and we are looking for a method to fix it.
  2. Whether the particle is on the boundary or not, the Volume should be dp * dp, which is not the problem of the exact volume and is relevant to the SPH collocation. The derivative operator, for example, is otherwise incorrect. Thus, we suggest the boundary particles are 0.5*dp away from the physical boundary.
  3. Seems like the results of tests 1 and 2 are converging as increasing the resolution (decreasing the dp). We also do like the way in these two tests.
  4. If you want to extend the fixed boundary, you can try to only constrain the displacement as you said (free the pseudo normal). Otherwise, there may be the hourglass modes.

void reset_parameters()
{
rho = 7800/(scaling*scaling*scaling);
Youngs_modulus = 207e9/(scaling*scaling);
Copy link
Collaborator

Choose a reason for hiding this comment

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

Youngs_modulus should be 207e9 / scaling. (N = kg*m/s^2)

physical_viscosity = 1./ 4.0 * std::sqrt(rho * Youngs_modulus)*0.002*scaling;
ratio_fixed = 0.1;// Percent of body fixed
extend_bc = false;// Extend fixed bc by kernell cutoff
linear_load = 100./scaling;// 10 N/m
Copy link
Collaborator

Choose a reason for hiding this comment

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

linear_load should be 100.

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.

4 participants