System diverged over tolerance

Numerical methods and mathematical models of Elmer
Post Reply
AlexR
Posts: 12
Joined: 06 Apr 2014, 16:14
Antispam: Yes

System diverged over tolerance

Post by AlexR »

Hi,
I try to solve the problematic of a plate made of 2 materials in tensile strength (as shown in the attached file).

I made the following sif file

Code: Select all

Header
  CHECK KEYWORDS Warn
  Mesh DB "." "."
  Include Path ""
  Results Directory ""
End

Simulation
  Max Output Level = 5
  Coordinate System = Cartesian
  Coordinate Mapping(3) = 1 2 3
  Simulation Type = Steady state
  Steady State Max Iterations = 1
  Output Intervals = 1
  Timestepping Method = BDF
  BDF Order = 1
  Solver Input File = case.sif
  Post File = case.ep
End

Constants
  Gravity(4) = 0 -1 0 9.82
  Stefan Boltzmann = 5.67e-08
  Permittivity of Vacuum = 8.8542e-12
  Boltzmann Constant = 1.3807e-23
  Unit Charge = 1.602e-19
End

Body 1
  Target Bodies(1) = 1
  Name = "Body 1"
  Equation = 1
End

Body 2
  Target Bodies(1) = 2
  Name = "Body 2"
  Equation = 2
End

Solver 1
  Equation = Linear elasticity
  Procedure = "StressSolve" "StressSolver"
  Variable = -dofs 2 Displacement
  Exec Solver = Always
  Stabilize = True
  Bubbles = False
  Lumped Mass Matrix = False
  Optimize Bandwidth = True
  Steady State Convergence Tolerance = 1.0e-5
  Nonlinear System Convergence Tolerance = 1
  Nonlinear System Max Iterations = 1
  Nonlinear System Newton After Iterations = 3
  Nonlinear System Newton After Tolerance = 1.0e-3
  Nonlinear System Relaxation Factor = 1
  Linear System Solver = Iterative
  Linear System Iterative Method = GCR
  Linear System Max Iterations = 500
  Linear System Convergence Tolerance = 1.0e-7
  Linear System Preconditioning = ILU1
  Linear System ILUT Tolerance = 1.0e-3
  Linear System Abort Not Converged = False
  Linear System Residual Output = 1
  Linear System Precondition Recompute = 1
End

Equation 1
  Name = "Equation 1"
  Calculate Stresses = True
  Active Solvers(1) = 1
End

Equation 2
  Name = "Equation 2"
  Calculate Stresses = True
  Active Solvers(1) = 1
End

Material 1
  Name = "Silver (generic)"
  Heat expansion Coefficient = 18.9e-6
  Heat Conductivity = 429.0
  Sound speed = 2680.0
  Heat Capacity = 235.0
  Mesh Poisson ratio = 0.37
  Density = 10490.0
  Poisson ratio = 0.37
  Youngs modulus = 83.0e9
End

Material 2
  Name = "Steel (alloy - generic)"
  Heat expansion Coefficient = 12.0e-6
  Heat Conductivity = 37.2
  Sound speed = 5100.0
  Heat Capacity = 976.0
  Mesh Poisson ratio = 0.285
  Density = 7850.0
  Poisson ratio = 0.285
  Youngs modulus = 200.0e9
End

Boundary Condition 1
  Target Boundaries(1) = 2
  Name = "BoundaryCondition 2"
  Force 1 = 10e5
End

Boundary Condition 2
  Target Boundaries(1) = 4
  Name = "BoundaryCondition 1"
  Displacement 3 = 0.0
  Displacement 2 = 0.0
  Displacement 1 = 0.0
End
But before launching the solver, the following message comes ERROR::IterSolve:System diverged over tolerance

Code: Select all

ELMER SOLVER (v 7.0) STARTED AT: 2014/04/29 09:45:43
MAIN: 
MAIN: =============================================================
MAIN: ElmerSolver finite element software, Welcome!
MAIN: This program is free software licensed under (L)GPL
MAIN: Copyright 1st April 1995 - , CSC - IT Center for Science Ltd.
MAIN: Webpage http://www.csc.fi/elmer, Email elmeradm@csc.fi
MAIN: Library version: 7.0 (Rev: exported)
MAIN: =============================================================
MAIN: 
MAIN: 
MAIN: -------------------------------------
MAIN: Reading Model: case.sif

Loading user function library: [StressSolve]...[StressSolver_Init0]
MAIN: -------------------------------------
Loading user function library: [StressSolve]...[StressSolver_Init]
Loading user function library: [StressSolve]...[StressSolver]
OptimizeBandwidth: ---------------------------------------------------------
OptimizeBandwidth: Computing matrix structure for: linear elasticity...done.
OptimizeBandwidth:  Half bandwidth without optimization:          118
OptimizeBandwidth: 
OptimizeBandwidth: Bandwidth Optimization ...done.
OptimizeBandwidth:  Half bandwidth after optimization:           22
OptimizeBandwidth: ---------------------------------------------------------
MAIN: 
MAIN: -------------------------------------
MAIN:  Steady state iteration:            1
MAIN: -------------------------------------
MAIN: 
StressSolve: 
StressSolve: --------------------------------------------------
StressSolve: Solving displacements from linear elasticity model
StressSolve: --------------------------------------------------
StressSolve: Starting assembly...
StressSolve: Assembly:
StressSolve: Bulk assembly done
DefUtils::DefaultDirichletBCs: Setting Dirichlet boundary conditions
DefUtils::DefaultDirichletBCs: Dirichlet boundary conditions set
StressSolve: Set boundaries done
CRS_IncompleteLU: ILU(1) (Real), Starting Factorization:
CRS_IncompleteLU: ILU(1) (Real), NOF nonzeros:      5141
CRS_IncompleteLU: ILU(1) (Real), filling (%) :       133
CRS_IncompleteLU: ILU(1) (Real), Factorization ready at (s):    -0.00
       1 0.1000E+01
       2 0.1000E+01
       3 0.1000E+01
       4 0.1000E+01
       5 0.1000E+01
       6 0.1000E+01
       7 0.1000E+01
       8 0.1000E+01
       9 0.1000E+01
      10 0.1000E+01
      11        NaN
ERROR:: IterSolve: System diverged over tolerance.
I tried to change the Convergence tolerance value, but it don't change anything...

Do you have an idea to solve this problem ?

Thanks
Yours
Alex
Attachments
Capture.JPG
Capture.JPG (29.01 KiB) Viewed 5534 times
raback
Site Admin
Posts: 4812
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: System diverged over tolerance

Post by raback »

Hi Alex

As your case is so small you could use "Direct" solver and there "Linear System Direct Method = umfpack". This will at least get rid of the 1st linear system convergence issue.

-Peter
AlexR
Posts: 12
Joined: 06 Apr 2014, 16:14
Antispam: Yes

Re: System diverged over tolerance

Post by AlexR »

Hi,
Thanks for your reply raback.

I changed parameters but a new error message appears. It is the following

Code: Select all

ERROR::ComputeChange: Norm of solution appears to be NaN
Now, I don't really know what to change in solver settings.

Does someone have an idea ?

Thanks
Yours
Alex
AlexR
Posts: 12
Joined: 06 Apr 2014, 16:14
Antispam: Yes

Re: System diverged over tolerance

Post by AlexR »

I took a look to the ElmerSolverManual.

I think it would be the fact that this is a non linear system. In fact there is two different materials, which should explains the problem encountered.

Are you agree with this idea ?
raback
Site Admin
Posts: 4812
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: System diverged over tolerance

Post by raback »

Hi Alex,

Two materials does not by itself make the problem nonlinear. And even if the nonlinearity causes problems it should only gradually result to divergence and the 1st linear iteration.

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

Re: System diverged over tolerance

Post by annier »

raback wrote: 29 Apr 2014, 14:36 As your case is so small you could use "Direct" solver and there "Linear System Direct Method = umfpack". This will at least get rid of the 1st linear system convergence issue.
Peter,
Are there any other addition solutions to using direct solver?
For coupled heat and flow solvers, I am using direct solver for heat solver and iterative solver for flow solver, and the problem still persists, when the temperature of the domain reaches higher than 1900 K.
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
raback
Site Admin
Posts: 4812
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: System diverged over tolerance

Post by raback »

Hi annier,

There should be nothing special with direct solvers. There are not even any additional parameters to play with (except sometimes MUMPS can be given more memory or the matrix may be hinted to be pos.def.). Also given that you have problems at 1900 K might suggest that this is a nonlinear issue and there is something funny happening when temperature increases. For example, if you have thermal radiation then you introduce T^4 dependence on temperature and the nonlinearity becomes more pronounced with high temperatures. With such problems setting "nonlinear system relaxation factor" to 0.5 or so usually helps.

If problems persist you could perhaps share a minimal test case.

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

Re: System diverged over tolerance

Post by annier »

Dear Peter,
The problem got solved by reducing the timestep sizes further.
In my numerical formulation, the problem disappears when timestep sizes is kept below 1.0E-05

Code: Select all

Timestep Sizes (1) =1.0e-5  ! keeping it equal to or less than 1.0E-05 
Anil
Anil Kunwar
Faculty of Mechanical Engineering, Silesian University of Technology, Gliwice
Post Reply