Page 2 of 3

Re: wrong displacement values using "ElasticSolver"?

Posted: 23 May 2024, 21:57
by tomatoma
Hi kevinarden,

sorry, did not understand what you have done, what the solver scanned for...

Re: wrong displacement values using "ElasticSolver"?

Posted: 23 May 2024, 22:33
by kevinarden
case.sif
(2.54 KiB) Downloaded 75 times
scanning in the case of elasticsolver is just a step solution where each step depends on the previous solution.

Re: wrong displacement values using "ElasticSolver"?

Posted: 24 May 2024, 01:01
by tomatoma
Hi kevinarden,

I did the scanning on the applied force as you did using:
StressSolver and ElasticSolver
Nonlinear System Max Iterations = 1 and 20
with and without Large Deflection = False

I also computed the Young's modulus from the displacement obtained from the simulations

The results are as follows:
Displacement.png
(96.3 KiB) Not downloaded yet
YoungsModulus.png
(123.12 KiB) Not downloaded yet
The effect of Large Deflection = False is only noticeable with ElasticSolver and it is negligible in this problem.

IMHO the problem is linear.
StressSolver does gives the correct result (displacement and Young's modulus are as I'd expect them to be),
ElasticSolver don't (displacement and Young's modulus are wrong)

Thanks again

Re: wrong displacement values using "ElasticSolver"?

Posted: 24 May 2024, 09:45
by mika
tomatoma wrote: 24 May 2024, 01:01 IMHO the problem is linear
Here Young's modulus E = 5e+6 while the intensity of applied surface force (traction) s = 5e+5, so in an uniaxial test one might expect a linearized strain ~ s/E ~ 0.1. I therefore think that nonlinearity starts to play a role.

If I set for example E = 5e+11 so that the assumption of linearity is surely sensible, ElasticSolver converges quickly and the solution is close to the linearized solution

ComputeChange: NS (ITER=1) (NRM,RELC): ( 0.17869899E-07 2.0000000 ) :: elasticsolver
ComputeChange: NS (ITER=2) (NRM,RELC): ( 0.17864402E-07 0.30766693E-03 ) :: elasticsolver
ComputeChange: NS (ITER=3) (NRM,RELC): ( 0.17864402E-07 0.0000000 ) :: elasticsolver
ComputeChange: SS (ITER=1) (NRM,RELC): ( 0.17863102E-07 2.0000000 ) :: elasticsolver

ComputeChange: SS (ITER=1) (NRM,RELC): ( 0.17869899E-07 2.0000000 ) :: linear elasticity

Re: wrong displacement values using "ElasticSolver"?

Posted: 24 May 2024, 09:55
by mika
kevinarden wrote: 23 May 2024, 12:17 According to the manual
Large Deflection = False

only shows up in the shell solver, not ElasticSolver
I did a mistake in recommending the use of the keyword Large Deflection in this connection. ElasticSolver understands it only when material model is described as UMAT subroutine. Here it shouldn't be used.

Re: wrong displacement values using "ElasticSolver"?

Posted: 24 May 2024, 11:56
by tomatoma
mika wrote: 24 May 2024, 09:45
tomatoma wrote: 24 May 2024, 01:01 IMHO the problem is linear
Here Young's modulus E = 5e+6 while the intensity of applied surface force (traction) s = 5e+5, so in an uniaxial test one might expect a linearized strain ~ s/E ~ 0.1. I therefore think that nonlinearity starts to play a role.
Hi,

we are not talking about real material properties here. We are talking about the model material properties.
The material is defined as follows:

Code: Select all

Material 1
  Youngs modulus = 5e6
  Poisson ratio = 0.0
End
With this definition we say that the Young's modulus is constant, regardless of stress and strains. Is this correct?
Are you saying that the ElasticSolver decides by its own that beyond a certain strain the material is no longer linear?
Moreover, beyond the yield strength, in typical materials the Young's modulus decreases, whereas according to the ElasticSolver solution the Young's modulus increases at higher strain!
Again, I’m really sorry, but I cannot understand why the ElasticSolver gives those results. :?

I'd really appreciate to understand what's going on so that I can use the ElasticSolver when needed and I thank you once more for your help.

Re: wrong displacement values using "ElasticSolver"?

Posted: 24 May 2024, 12:00
by kevinarden
Mika is correct that the Large Deflection = False works in Elastic Solver when the UMAT subroutine is defined for the material.
case.sif
(2.92 KiB) Downloaded 69 times
Converges quickly to the desired answer regardless of number on non=linear iterations.

Re: wrong displacement values using "ElasticSolver"?

Posted: 24 May 2024, 23:05
by kevinarden
I thought perhaps it was due to rigid body modes, ElasticSolve and StressSolve so not much like rigid body modes in a static solution. So I added some constraints to take out rigid body motion without impacting the results. ElasticSolve converged much faster, but still arrived at 0.0044 answer.

I attempted to do a comparison to Abaqus, but Abaqus also does not like rigid motion in static problems. I could not get to a solution with Abaqus

Re: wrong displacement values using "ElasticSolver"?

Posted: 24 May 2024, 23:55
by kevinarden
I thought they were two independent bodies connected by springs, but apparently they share nodes at the boundary? That is a different problem than I thought.

Re: wrong displacement values using "ElasticSolver"?

Posted: 25 May 2024, 01:27
by tomatoma
The two bodies have one face in common, so they behave as a single body.
On that face, which is placed on a symmetry plane, there is a boundary condition (Ref) to "keep" the bodies in place