Tolerance on limit displacement boundary condition

Numerical methods and mathematical models of Elmer
Post Reply
RobertM
Posts: 7
Joined: 14 Jul 2015, 02:00
Antispam: Yes

Tolerance on limit displacement boundary condition

Post by RobertM »

I'm trying to use a limit displacement boundary condition in an elastic deflection problem, and was wondering what, if any, solver settings affect the tolerance of the applied limit.

This is my current .sif

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
  Material = 1
End

Solver 1
  Equation = Result Output
  Procedure = "ResultOutputSolve" "ResultOutputSolver"
  Output File Name = case
  Output Format = Vtu
  Exec Solver = After Simulation
End

Solver 2
  Equation = Linear elasticity
  Procedure = "StressSolve" "StressSolver"
  Variable = -dofs 3 Displacement
  Apply Limiter = Logical True
  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.0e-9
  Nonlinear System Max Iterations = 20
  Nonlinear System Newton After Iterations = 3
  Nonlinear System Newton After Tolerance = 1.0e-3
  Nonlinear System Relaxation Factor = 1
  Linear System Solver = Direct
  Linear System Direct Method = Umfpack
End

Equation 1
  Name = "elast_direct"
  Active Solvers(2) = 1 2
End

Material 1
  Name = "Austenitic stainless steel (AK Steel 201)"
  Heat expansion Coefficient = 15.7e-6
  Heat Conductivity = 16.2
  Heat Capacity = 500.0
  Mesh Poisson ratio = 0.3
  Density = 7810.0
  Poisson ratio = 0.3
  Youngs modulus = 197.0e9
End

Boundary Condition 1
  Target Boundaries(8) = 2 6 9 10 16 17 19 20 
  Name = "fix_z"
  Displacement 3 = 0
End

Boundary Condition 2
  Target Boundaries(8) = 21 24 31 41 42 43 44 50 
  Name = "seal_load"
  Force 3 = 71258503
End

Boundary Condition 3
  Target Boundaries(1) = 28 
  Name = "fix_xy"
End

Boundary Condition 4
  Target Boundaries(4) = 5 7 13 25 
  Name = "contact"
Displacement 3 Lower Limit = Real 0.00000000
End
Without Boundary condition 4 the minimum Z displacement I am seeing is -.00118, with Boundary condition 4 this is reduced to -.00088, so I am seeing an effect, but I would like to drive it closer to zero.
raback
Site Admin
Posts: 4812
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Tolerance on limit displacement boundary condition

Post by raback »

Hi Robert

Does the contact algo converge in the given 20 nonlinear iterations? If the system is converged then the limits should be pretty accurately honored.

-Peter
RobertM
Posts: 7
Joined: 14 Jul 2015, 02:00
Antispam: Yes

Re: Tolerance on limit displacement boundary condition

Post by RobertM »

Peter;

Thank you for your response.

With some embarrassment, :oops: I am pleased to report that the limit boundary condition was working as intended, the operator (I) was mis-reading the graphics in ElmerVTK. When I unpacked the data along known surfaces and plotted it it became clear that the limit was being applied properly.

Thanks again, and thanks to all who have made this powerful tool available.

Robert
raback
Site Admin
Posts: 4812
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Tolerance on limit displacement boundary condition

Post by raback »

Hi Robert

Just a note: we have basically given up with our own postprocessing tools given how powerfull Paraview and ViSit are. There it might have been easier to note this as an operator.

-Peter
Post Reply