Segmentation fault (core dumped) on 3D Navier-Stokes

Numerical methods and mathematical models of Elmer
Post Reply
Wil
Posts: 72
Joined: 10 Jan 2014, 13:26
Antispam: Yes
Location: Austria

Segmentation fault (core dumped) on 3D Navier-Stokes

Post by Wil »

Hallo,

I try to StepStokes test model to 3D and get a segmentation fault :o .
Attached you find my complete model and the .sif.

Any suggestions whats wrong? Regarding the material parameter, please keep in mind that the base unit for the model is mm.

I really would appreciate if if there was a 3D Navier-Stokes demo model with air.

BR,
Wil

Code: Select all

Check Keywords Warn

Header
  Mesh DB "."
End


Simulation 
  Coordinate System = String "Cartesian 3D"
  Coordinate Mapping(3) = Integer 1 2 3

  Simulation Type = String "Steady state"
  Steady State Max Iterations = Integer 100

  BDF Order = Integer 1
  Use Mesh Names = Logical True
End

!!!!!!!!!!!!!!!!!!!!!!!!!! In this model is the base length mm.... all units (including N, Pa, W, J) have to be scaled/converted 

Constants 
  Gravity(4) = Real 0.0 -1.0 0.0 9820.0
  Stefan Boltzmann = Real 5.67e-08
End


Body 1
  Name = String "Solid1"
  Equation = Integer 1
  Material = Integer 1
  Initial Condition = 1
End


Initial Condition 1
  velocity 1 = 0
  velocity 2 = 0
  Temperature = 300
!  External Pressure = 0
End


Equation 1
  NS Convect = False ! if no temp
  Active Solvers(2) = Integer 1 2
End

Solver 1
  Equation = "Navier-Stokes"

  Linear System Solver = Iterative
  Linear System Iterative Method = BiCGStab
  Linear System Max Iterations = 500
  Stabilization Method = String Stabilized

  Stabilize = True
  Bubbles = True
  Lumped Mass Matrix = False
  Optimize Bandwidth = True

  Linear System Convergence Tolerance = 1.0e-5
  Linear System Preconditioning = ILU2
  Linear System Residual Output = 1
  Steady State Convergence Tolerance = 1.0e-5
  Nonlinear System Max Iterations = 100
  Nonlinear System Convergence Tolerance = 1.0e-3
  Nonlinear System Newton After Tolerance = 1.0e-3
  Nonlinear System Newton After Iterations = 3
End


Solver 2
  Output File Name = File "case"
  Equation = String "ResultOutput"
  Vtu Format = Logical True
  Procedure = File "ResultOutputSolve" "ResultOutputSolver"
  Exec Solver = String "After simulation"
End


Material 1
  Compressibility Model = String "Perfect Gas"
  ! All paramter scaled to mm !
  Reference Pressure = 1e2 
  Reference Temperature = 300 
  Specific Heat Ratio = 1400000.0 
  Viscosity = 18132.0 
  Heat Conductivity = 26 
  Heat Capacity = 1010 
  Density = 1.2e-09 
End



Boundary Condition 1
  Velocity 3 = Real 0.0
  Velocity 2 = Real 0.0
  Velocity 1 = Real 0.0
  Name = String "Face2"
End

Boundary Condition 2
  Velocity 3 = Real 0.0
  Velocity 2 = Real 0.0
  Velocity 1 = Real 0.0
  Name = String "Face7"
End

Boundary Condition 3
  Velocity 3 = Real 0.0
  Velocity 2 = Real 0.0
  Velocity 1 = Real 0.0
  Name = String "Face8"
End

Boundary Condition 4
  Velocity 3 = Real 0.0
  Velocity 2 = Real 0.0
  Velocity 1 = Real 0.0
  Name = String "Face3"
End

Boundary Condition 5
  Velocity 3 = Real 0.0
  Velocity 2 = Real 0.0
  Velocity 1 = Real 0.0
  Name = String "Face4"
End

Boundary Condition 6
  Velocity 3 = Real 0.0
  Velocity 2 = Real 0.0
  Velocity 1 = Real 0.0
  Name = String "Face6"
End

Boundary Condition 7
  Velocity 1 = Variable Coordinate; Real MATC "-2*(1 - tx(1)^2 - tx(2)^2)"
  Velocity 2 = Real 0.0
  Velocity 3 = Real 0.0
  Name = String "Face1"
  Normal-Tangential Velocity = Logical True
End



Boundary Condition 8
  Name = String "bnry9"
  Velocity 2 = Real 0.0
  Velocity 3 = Real 0.0
  Pressure = 0.0
End

Code: Select all

ELMER SOLVER (v 8.3) STARTED AT: 2017/08/25 15:23:33
ParCommInit:  Initialize #PEs:            1
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: Version: 8.3 (Rev: unknown, Compiled: 2017-08-07)
MAIN: =============================================================
MAIN: 
MAIN: 
MAIN: -------------------------------------
MAIN: Reading Model: case.sif
LoadInputFile: Scanning input file: case.sif
LoadInputFile: Loading input file: case.sif
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init0]
LoadMesh: Starting
ElmerAsciiMesh: Performing step: 1
LoadMesh: Base mesh name: .
LoadMesh: Reading header info from file: ./mesh.header
LoadMesh: Number of nodes in mesh: 35873
LoadMesh: Number of bulk elements in mesh: 22058
LoadMesh: Number of boundary elements in mesh: 6642
LoadMesh: Initial number of max element nodes: 10
ElmerAsciiMesh: Performing step: 2
LoadMesh: Reading nodes from file: ./mesh.nodes
LoadMesh: Performing coordinate mapping
LoadMesh: Dimension of model is: 3
LoadMesh: Dimension of mesh is: 3
ElmerAsciiMesh: Performing step: 3
LoadMesh: Reading bulk elements from file: ./mesh.elements
ElmerAsciiMesh: Performing step: 4
LoadMesh: Reading boundary elements from file: ./mesh.boundary
LoadMesh: Performing node mapping
ReadTargetNames: Reading names info from file: ./mesh.names
LoadMesh: Remapping bodies
LoadMesh: Minimum initial body index: 2
LoadMesh: Maximum initial body index: 2
LoadMesh: Remapping boundaries
LoadMesh: Minimum initial boundary index: 1
LoadMesh: Maximum initial boundary index: 9
ElmerAsciiMesh: Performing step: 5
ElmerAsciiMesh: Performing step: 6
LoadMesh: Loading mesh done
LoadMesh: Elapsed REAL time:     0.1492 (s)
WARNING:: CheckTimer: Requesting time from non-existing timer: LoadMesh
MeshStabParams: Computing stabilization parameters
MeshStabParams: Elapsed REAL time:     5.5118 (s)
WARNING:: CheckTimer: Requesting time from non-existing timer: MeshStabParams
MAIN: -------------------------------------
AddSolvers: Setting up 2 solvers
AddSolvers: Setting up solver 1: navier-stokes
AddEquationBasics: Setting up keywords internally for legacy solver: navier-stokes
AddEquationBasics: Using procedure: FlowSolve FlowSolver
AddEquationBasics: Setting up solver: navier-stokes
Loading user function library: [FlowSolve]...[FlowSolver_Init]
Loading user function library: [FlowSolve]...[FlowSolver_bulk]
Loading user function library: [FlowSolve]...[FlowSolver]
AddEquationBasics: Creating standard variable: flow solution[velocity:3 pressure:1]
OptimizeBandwidth: ---------------------------------------------------------
OptimizeBandwidth: Computing matrix structure for: navier-stokes...done.
OptimizeBandwidth: Half bandwidth without optimization: 35808
OptimizeBandwidth: 
OptimizeBandwidth: Bandwidth Optimization ...done.
OptimizeBandwidth: Half bandwidth after optimization: 1588
OptimizeBandwidth: ---------------------------------------------------------
AddSolvers: Setting up solver 2: resultoutput
AddEquationBasics: Using procedure: ResultOutputSolve ResultOutputSolver
AddEquationBasics: Setting up solver: resultoutput
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_Init]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver_bulk]
Loading user function library: [ResultOutputSolve]...[ResultOutputSolver]
AddMeshCoordinatesAndTime: Setting mesh coordinates and time
SetInitialConditions: Setting up initial conditions (if any)
MAIN: 
MAIN: -------------------------------------
MAIN:  Steady state iteration:            1
MAIN: -------------------------------------
MAIN: 
SingleSolver: Attempting to call solver
SingleSolver: Solver Equation string is: navier-stokes
FlowSolver: Solving the Navier-Stokes equations
FlowSolve: 
FlowSolve: 
FlowSolve: -------------------------------------
FlowSolve:  NAVIER-STOKES ITERATION           1
FlowSolve: -------------------------------------
FlowSolve: 
FlowSolve: Starting Assembly...
FlowSolve: Assembly:
ERROR:: LUDecomp: Matrix is singluar.

Program received signal SIGSEGV: Segmentation fault - invalid memory reference.

Backtrace for this error:
#0  0x7FB690795E08
#1  0x7FB690794F90
#2  0x7FB6903E54AF
#3  0x7FB690BD3FE7
#4  0x7FB690C63827
#5  0x7FB67EE76DC2
#6  0x7FB690CC1CDF
#7  0x7FB690CD4954
#8  0x7FB690CD5EF0
#9  0x7FB690CD77F1
#10  0x7FB690EB657D
#11  0x4010D5 in MAIN__ at Solver.F90:?
Segmentation fault (core dumped)
Attachments
ElmerSolver.zip
(1.23 MiB) Downloaded 299 times
Wil
Posts: 72
Joined: 10 Jan 2014, 13:26
Antispam: Yes
Location: Austria

Re: Segmentation fault (core dumped) on 3D Navier-Stokes

Post by Wil »

OK I found the problem for the Seg-fault:
I removed :

Code: Select all

Stabilize = True
Stabilization Method = String Stabilized
But the model is still not convergent.
Thanks in advance,
Wil
Wil
Posts: 72
Joined: 10 Jan 2014, 13:26
Antispam: Yes
Location: Austria

Re: Segmentation fault (core dumped) on 3D Navier-Stokes

Post by Wil »

raback wrote:ping
Hi Peter,
Setting bubbles and stabilize both to True leads to the segmentation fault above.
Could you implement a query and warn the user.
BR Wil
raback
Site Admin
Posts: 4812
Joined: 22 Aug 2009, 11:57
Antispam: Yes
Location: Espoo, Finland
Contact:

Re: Segmentation fault (core dumped) on 3D Navier-Stokes

Post by raback »

Hi

I had a quick look.

0) Yes, there is no proper checks for the stabilization methods. The "bubbles" stabilization should be used if the flow is not incompressible, and actually it is enforced internally but unsuccessfully. In principle there could be different stabilization techniques if different parts of the model have different fluids.

1) The inflow velocity profile seems to assume a parabolic profile in a case when the size bounding box is around ~1. In mm scale the velocities become quite large.

2) The pressure condition "Pressure = 0.0" seems suspicious for ideal gases. For incompressible fluid the level does not play a role.

3) Specific Heat Ratio is a dimensionless number. It should be ~1.4 in any unit system.

Still, didn't converge for me...

The problem seems to be the stabilization method "bubbles". Unfortunately you need bubbles because ideal gas. After I transformed the mesh into linear elements the convergence was excellent. I suspect that the bubble stabilization has some issues with the quadratic tets. Just use linear ones, and more of them.

I will discuss the quadratic tets and stabilization with our numerics experts...

-Peter
Wil
Posts: 72
Joined: 10 Jan 2014, 13:26
Antispam: Yes
Location: Austria

Re: Segmentation fault (core dumped) on 3D Navier-Stokes

Post by Wil »

raback wrote: I had a quick look.
Thanks you are completely right with all the parameters... could figure it out by myself but did not show the results here. Thought its better to keep it focused on the bubbles setting.
I almost posted simultaneous the outcome here... viewtopic.php?f=7&p=16971&sid=0cc15ca81 ... 2b2#p16971 and hope to be able to show some more results from time to time.

Thanks,
BR,
HoWil
Post Reply