Learning as a new user of ELMER, I mocked up a simple 2D FSI model that uses the N-S, Mesh Update and Elastic solvers. The sif file (attached below) describes uniform fluid flow in the x-direction in a rectangular domain, with a free (non-fixed) elastic cylinder inside the domain that gets advected with the flow. For now, I'm just interested in the steady-state stress field; I'll explore transient motion later. Although the code runs, it gives the solution with the cylinder fixed in space, instead of freely moving with the flow. I suspect that I have set up "Boundary Condition 4" (at the cylinder perimeter) and/or Mesh Update or Mesh Velocity incorrectly. I would appreciate your advice on how to simulate a free-moving elastic body correctly. Many thanks!
Best wishes,
Felix
Code: Select all
check keywords warn
echo on
! Name of run and output files
$Run = "1"
Header
Mesh DB "." "play0"
End
Simulation
Coordinate System = "Cartesian 2D"
Simulation Type = "Steady"
Output Intervals = 1
Steady State Max Iterations = 50
Output File = "fsi_test_$Run".result"
Post File = "fsi_test_$Run".vtu"
Max Output Level = 4
End
Body 1
Target Bodies(1) = 1
Name = "Fluid"
Equation = 1
Material = 1
Initial Condition = 1
End
Equation 1
Name = "Equation1"
Active Solvers(2) = 1 2
End
Material 1
Density = 1000
Viscosity = 10.0
End
Initial Condition 1
Velocity 1 = 0.5
Velocity 2 = 0.0
Pressure = 0.0
End
!----------------------------------------
Body 2
Target Bodies(1) = 2
Name = "Blob"
Equation = 2
Material = 2
Body Force = 1
Initial Condition = 1
End
Equation 2
Name = "Equation2"
Active Solvers(1) = 3
End
Material 2
Name = "Elastic blob"
Density = 1000
Poisson Ratio = 0.25
Youngs Modulus = 40e3
End
Body Force 1
Flow BodyForce 1 = Real 9.8
Flow BodyForce 2 = Real 0.0
End
!----------------------------------------
Solver 1
Equation = "Navier-Stokes"
Stabilization Method = Stabilized
Flow Model = Stokes
Linear System Solver = Direct
Linear System Direct Method = "UMFPACK"
Nonlinear System Convergence Tolerance = 1.0E-05
Nonlinear System Max Iterations = 50
Nonlinear System Newton After Iterations = 5
Nonlinear System Newton After Tolerance = 1.0E-02
Nonlinear System Relaxation Factor = 1.0
Steady State Convergence Tolerance = 1.0E-03
End
Solver 2
Equation = "Mesh Update"
Variable = -dofs 2 Mesh Velocity
Procedure = "MeshSolve" "MeshSolver"
Linear System Solver = Iterative
Linear System Iterative Method = BiCGStab
Linear System Max Iterations = 500
Linear System Convergence Tolerance = 1.0e-8
Linear System Preconditioning = ILU0
Steady State Convergence Tolerance = 1.0e-4
End
Solver 3
Equation = "blob elasticity"
Variable = -dofs 2 Displacement
Procedure = "ElasticSolve" "ElasticSolver"
Linear System Solver = Direct
Linear System Direct Method = Banded
Nonlinear System Convergence Tolerance = 1.0e-7
Nonlinear System Max Iterations = 10
Nonlinear System Newton After Iterations = 3
Nonlinear System Newton After Tolerance = 1.0e-3
Nonlinear System Relaxation Factor = 1.0
Steady State Convergence Tolerance = 1.0e-4
End
Boundary Condition 1
Name = "top of domain"
Target Boundaries = 1
Velocity 1 = Real 0.5e0
Velocity 2 = Real 0.0e0
End
Boundary Condition 2
Name = "sides"
Target Boundaries(2) = 3 4
Velocity 1 = Real 0.50e0
Velocity 2 = Real 0.0e0
End
Boundary Condition 3
Name = "bottom of domain"
Target Boundaries = 2
Velocity 1 = Real 0.5e0
Velocity 2 = Real 0.0e0
End
! FSI boundary
Boundary Condition 4
Name = "blob perim"
Target Boundaries = 5
Velocity 1 = Equals Mesh Velocity 1
Velocity 2 = Equals Mesh Velocity 2
End