StressSolver non-linear material

Numerical methods and mathematical models of Elmer
mark smith
Posts: 215
Joined: 26 Aug 2009, 18:20
Location: Peterborough, England

StressSolver non-linear material

Post by mark smith »

Hi Elmer team
Is it now possible to define a non-linear material for use in the stresssolver model?
I have tried doing a tensile test simulation using the following material properties

Material 1 !! non-linear stress-strain material property
Name = "PBT plastic"
Poisson Ratio = 0.37
Youngs Modulus = Variable Strain ! @ room temp : secant modulus data
Real
0.0000 4560e6
0.0033 4560e6
0.0066 4490e6
0.0099 4360e6
0.0132 4190e6
0.0165 3960e6
0.0198 3700e6
0.0231 3410e6
0.0264 3110e6
0.0297 2820e6
0.0330 2560e6
End
Density = 1370
End

But to no effect the resulting stress strain output is linear with a constant Young's modulus.

Regards
Mark
annier
Posts: 1168
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: StressSolver non-linear material

Post by annier »

Hi Mark,
Someone knowing about it may reply to your query on Table method.
Can you once try defining the User Defined Function for E=f(strain), and see the result?
viewtopic.php?f=3&t=3855

Yours
Anil Kunwar
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
mzenker
Posts: 1999
Joined: 07 Dec 2009, 11:49
Location: Germany

Re: StressSolver non-linear material

Post by mzenker »

Hi,

one could check in the code if a variable Young's modulus is possible at all. I can't due to lack of time...

HTH,

Matthias
annier
Posts: 1168
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: StressSolver non-linear material

Post by annier »

Hi Matthias,
You are right that StressSolver in the source code does not have a variable Young's Modulus.
I compared HeatSolve and StatCurrentSolve with StressSolve and found out the following differences in the code of material properties:

1. Heat Conductivity in HeatSolve as a Function of Temperature (Can be defined via the ListGetRealArray subroutine. Also is defined ALLOCATABLE)

Code: Select all

REAL(KIND=dp), ALLOCATABLE :: MASS(:,:), &
       STIFF(:,:), LOAD(:), HeatConductivity(:,:,:), &

Code: Select all

 CALL ListGetRealArray( Material,'Heat Conductivity',Hwrk,n, &
                      Element % NodeIndexes )
         HeatConductivity = 0.0d0
         IF ( SIZE(Hwrk,1) == 1 ) THEN
           DO i=1,3
             HeatConductivity( i,i,1:n ) = Hwrk( 1,1,1:n )
           END DO
         ELSE IF ( SIZE(Hwrk,2) == 1 ) THEN
           DO i=1,MIN(3,SIZE(Hwrk,1))
             HeatConductivity(i,i,1:n) = Hwrk(i,1,1:n)
           END DO
         ELSE
           DO i=1,MIN(3,SIZE(Hwrk,1))
             DO j=1,MIN(3,SIZE(Hwrk,2))
               HeatConductivity( i,j,1:n ) = Hwrk(i,j,1:n)
             END DO
           END DO
         END IF
2.Electric Conductivity in StatCurrentSolve as a Function of Temperature (Can be defined via the ListGetRealArray subroutine,Also is defined ALLOCATABLE)

Code: Select all

REAL (KIND=DP), ALLOCATABLE ::  Conductivity(:,:,:)

Code: Select all

CALL ListGetRealArray( Model % Materials(k) % Values, &
             'Electric Conductivity', Cwrk, n, NodeIndexes )

         Conductivity = 0.0d0
         IF ( SIZE(Cwrk,1) == 1 ) THEN
           DO i=1,3
             Conductivity( i,i,1:n ) = Cwrk( 1,1,1:n )
           END DO
         ELSE IF ( SIZE(Cwrk,2) == 1 ) THEN
           DO i=1,MIN(3,SIZE(Cwrk,1))
             Conductivity(i,i,1:n) = Cwrk(i,1,1:n)
           END DO
         ELSE
           DO i=1,MIN(3,SIZE(Cwrk,1))
             DO j=1,MIN(3,SIZE(Cwrk,2))
               Conductivity( i,j,1:n ) = Cwrk(i,j,1:n)
             END DO
           END DO
         END IF
3. Youngs Modulus is defined as following in the StressSolver

Code: Select all

REAL(KIND=dp) :: Stress(:,:), Strain(:,:), ElasticModulus(:,:,:), &

Code: Select all

Material parameters:
!    --------------------
     IF ( Isotropic(1) ) Poisson = SUM( Basis(1:n) * PoissonRatio(1:n) )

     C = 0
     IF ( Isotropic(1) ) THEN 
       Young = SUM( Basis(1:n) * ElasticModulus(1,1,1:n) )
     ELSE
       DO i=1,SIZE(ElasticModulus,1)
         DO j=1,SIZE(ElasticModulus,2)
            C(i,j) = SUM( Basis(1:n) * ElasticModulus(i,j,1:n) )
         END DO
       END DO
     END IF
Yours
Anil Kunwar
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
raback
Site Admin
Posts: 4825
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: StressSolver non-linear material

Post by raback »

Hi,

The Poisson ratio can be a variable of anything. You can see this by the fact that it is fetched by GetReal() / ListGetReal() function.

The ListGetRealArray(), on the other hand, is used for obtaining tensors. By definition Poisson ratio can never be a tensor since it assumes isotropic material. ListGetRealArray() can also deal with scalars.

-Peter
mark smith
Posts: 215
Joined: 26 Aug 2009, 18:20
Location: Peterborough, England

Re: StressSolver non-linear material

Post by mark smith »

Hi Elmer team,
Am I correct in assuming, that as the stresssolver stands it is not possible to define a non-linear material?
Regards
Mark
raback
Site Admin
Posts: 4825
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: StressSolver non-linear material

Post by raback »

Hi Mark

StressSolver is always linear. ElasticSolver has geometric nonlinearity, and also some nonlinear material law. There is in principle no reason why these could not be in the same solver but they just happen to be two distinct solvers.

-Peter
mark smith
Posts: 215
Joined: 26 Aug 2009, 18:20
Location: Peterborough, England

Re: StressSolver non-linear material

Post by mark smith »

Hi Peter,
Thanks for the reply.
I ran the problem using the ElasticSolver rather than the StressSolver using a Young's modulus with variable strain as posted in my original posting (I also tried with variable stress) but the output still shows linear behaviour;-(
I am simulating a tensile test and want the simulation to produce the non-linear stress/strain curve for the material that I generated the secant modulus data from but without success.

Are there any undocumented features of the ElasticSolver that would allow me to accomplish this? If not could I request that this ability is integrated into the ElasticSolver?

In the past I've had to resort to using Calculix for this type of problem but would prefer to use Elmer as I've put together a set of tutorials for my fellow engineers for thermal, electrostatic and fluid flow using GMSH as the pre-processor and paraview as the post-processor and would like to do the same for structural problems and be applicable for non-linear materials.

Best Regards
Mark
annier
Posts: 1168
Joined: 27 Aug 2013, 13:51
Antispam: Yes

Re: StressSolver non-linear material

Post by annier »

raback wrote:ElasticSolver has geometric nonlinearity, and also some nonlinear material law. There is in principle no reason why these could not be in the same solver but they just happen to be two distinct solvers.
Hi Peter,
looking into the ElasticitySolver, i have understood that it is set to be a non-linear elasticity solver by default:

Code: Select all

LOGICAL:: LinearModel = .FALSE.
and the linear model has to be activated in the solver section of SIF as:

Code: Select all

Solver 1
...
Elasticity Solver Linear = True
...
End 
as it is defined in ElasticitySolve.F90 as

Code: Select all

LinearModel = ListGetLogical( SolverParams, &
       'Elasticity Solver Linear', GotIt )
.
However, why in ElmerGUI , is it necessary to activate Non linear elasticity in the solver section as

Code: Select all

Nonlinear Elasticity 
Active = On
through
nonlinearelasticity.xml?


Yours
Anil Kunwar
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
nikoscham
Posts: 4
Joined: 16 Sep 2010, 11:14

Re: StressSolver non-linear material

Post by nikoscham »

Hey,

Any update on defining non-linear stress-strain material properties?

I am interested in simulating tensile tests on plastic materials.

Thanks in advance!

Nikos
Post Reply