FSI input file clarification
Posted: Tue Jan 21, 2025 5:04 am
Hello everyone,
Sorry to bother you, but I need some clarification regarding the svFSI input file. Below is the input file I created, following the instructions in the svFSImaster.
#----------------------------------------------------------------
# General simulation parameters
Continue previous simulation: 0
Number of spatial dimensions: 3
Number of time steps: 1028
Time step size: 0.001
Spectral radius of infinite time step: 0.50
Searched file name to trigger stop: STOP_SIM
Save results to VTK format: 1
Name prefix of saved VTK files: result
Increment in saving VTK files: 10
Start saving after time step: 1
Increment in saving restart files: 50
Convert BIN to VTK format: 0
Verbose: 1
Warning: 0
Debug: 0
#----------------------------------------------------------------
# Mesh data
Add mesh: lumen {
Mesh file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-complete.mesh.vtu
Add face: lumen_wall {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/wall.vtp
}
Add face: lumen_inlet {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/inlet.vtp
}
Add face: lumen_outlet_1 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/outlet_1.vtp
}
Add face: lumen_outlet_2 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/outlet_2.vtp
}
Add face: lumen_outlet_3 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/outlet_3.vtp
}
Add face: lumen_outlet_4 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/outlet_4.vtp
}
Initial velocities file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/result_100.vtu
Initial pressures file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/result_100.vtu
Domain: 1
}
Add mesh: wall {
Mesh file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-complete.mesh.vtu
Add face: wall_inlet {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-surfaces/inlet.vtp
}
Add face: wall_outlet_1 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-surfaces/outlet_1.vtp
}
Add face: wall_outlet_2 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-surfaces/outlet_2.vtp
}
Add face: wall_outlet_3 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-surfaces/outlet_3.vtp
}
Add face: wall_outlet_4 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-surfaces/outlet_4.vtp
}
Add face: wall_inner {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/walls_combined_connected_region_1.vtp
}
Fiber direction file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/f1_Long.vtu
Fiber direction file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/f1_Sheet.vtu
Fiber direction file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/f2_Long.vtu
Fiber direction file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/f2_Sheet.vtu
Prestress file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/result_020.vtu
Initial displacements file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/result_020.vtu
Domain: 2
}
#----------------------------------------------------------------
# Projections
Add projection: wall_inner {
Project from face: lumen_wall
Projection tolerance: 1e-6
}
#----------------------------------------------------------------
# Equations
Add equation: FSI {
Coupled: 1
Min iterations: 3
Max iterations: 20
Tolerance: 1e-3
Domain: 1 {
Equation: fluid
Density: 0.00106
Viscosity: Constant {Value: 0.004}
Backflow stabilization coefficient: 0.2
}
Domain: 2 {
Equation: struct
Density: 2e-3
Elasticity modulus: 2e6
Poisson ratio: 0.5
Constitutive model: HGO {
a4: 419000
b4: 12.2
a6: 419000
b6: 12.2
kappa: 0.29
}
Dilational penalty model: Quad
Penalty parameter: 1.0e8
}
Output: Spatial {
Velocity: t
Pressure: t
Displacement: t
WSS: t
}
Output: Alias {
Displacement: FS_Displacement
}
LS type: GMRES {
Preconditioner: FSILS
Max iterations: 100
Tolerance: 1D-4
Krylov space dimension: 100
}
Initialize RCR from flow: t
Add BC: lumen_wall {
Type: Dir
Value: 0.0
}
Add BC: lumen_inlet {
Type: Dir
Time dependence: General
BCT file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/bct.vtp
}
Add BC: lumen_outlet_1 {
Type: Neu
Time dependence: RCR
RCR values: "0.06847, 0.529, 3.315"
Distal pressure: 0.0
}
Add BC: lumen_outlet_2 {
Type: Neu
Time dependence: RCR
RCR values: "0.1632, 0.1167, 15.17"
Distal pressure: 0.0
}
Add BC: lumen_outlet_3 {
Type: Neu
Time dependence: RCR
RCR values: "0.004672, 1.028, 1.694"
Distal pressure: 0.0
}
Add BC: lumen_outlet_4 {
Type: Neu
Time dependence: RCR
RCR values: "0.0181, 13.11, 0.1257"
Distal pressure: 0.0
}
Add BC: wall_inlet {
Type: Dir
Value: 0.0
}
Add BC: wall_outlet_1 {
Type: Dir
Value: 0.0
}
Add BC: wall_outlet_2 {
Type: Dir
Value: 0.0
}
Add BC: wall_outlet_3 {
Type: Dir
Value: 0.0
}
Add BC: wall_outlet_4 {
Type: Dir
Value: 0.0
}
}
Add equation: mesh {
Coupled: 1
Min iterations: 2
Max iterations: 5
Tolerance: 1e-4
Poisson ratio: 0.3
LS type: CG {
Preconditioner: FSILS
Tolerance: 1e-4
}
Output: Spatial {
Displacement: t
}
Add BC: lumen_inlet {
Type: Dir
Value: 0.0
}
Add BC: lumen_outlet_1 {
Type: Dir
Value: 0.0
}
Add BC: lumen_outlet_2 {
Type: Dir
Value: 0.0
}
Add BC: lumen_outlet_3 {
Type: Dir
Value: 0.0
}
Add BC: lumen_outlet_4 {
Type: Dir
Value: 0.0
}
}
1. Are the pressure and prestress initialized automatically in the simulation when the path for the files is indicateed, or do I need to add specific commands in the "Add Equation {}" section?
2. The svFSImaster mentions that when using the FSI equation, a mesh equation is always required. Does this mesh equation govern the motion of the structural domain? In my simulation, which involves FSI of the aorta, I do not see the motion of the structural domain. How does this work exactly?
Thanks in advance!
Ione
Sorry to bother you, but I need some clarification regarding the svFSI input file. Below is the input file I created, following the instructions in the svFSImaster.
#----------------------------------------------------------------
# General simulation parameters
Continue previous simulation: 0
Number of spatial dimensions: 3
Number of time steps: 1028
Time step size: 0.001
Spectral radius of infinite time step: 0.50
Searched file name to trigger stop: STOP_SIM
Save results to VTK format: 1
Name prefix of saved VTK files: result
Increment in saving VTK files: 10
Start saving after time step: 1
Increment in saving restart files: 50
Convert BIN to VTK format: 0
Verbose: 1
Warning: 0
Debug: 0
#----------------------------------------------------------------
# Mesh data
Add mesh: lumen {
Mesh file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-complete.mesh.vtu
Add face: lumen_wall {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/wall.vtp
}
Add face: lumen_inlet {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/inlet.vtp
}
Add face: lumen_outlet_1 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/outlet_1.vtp
}
Add face: lumen_outlet_2 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/outlet_2.vtp
}
Add face: lumen_outlet_3 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/outlet_3.vtp
}
Add face: lumen_outlet_4 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/lumen_mesh/mesh-surfaces/outlet_4.vtp
}
Initial velocities file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/result_100.vtu
Initial pressures file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/result_100.vtu
Domain: 1
}
Add mesh: wall {
Mesh file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-complete.mesh.vtu
Add face: wall_inlet {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-surfaces/inlet.vtp
}
Add face: wall_outlet_1 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-surfaces/outlet_1.vtp
}
Add face: wall_outlet_2 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-surfaces/outlet_2.vtp
}
Add face: wall_outlet_3 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-surfaces/outlet_3.vtp
}
Add face: wall_outlet_4 {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/mesh-surfaces/outlet_4.vtp
}
Add face: wall_inner {
Face file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/walls_combined_connected_region_1.vtp
}
Fiber direction file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/f1_Long.vtu
Fiber direction file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/f1_Sheet.vtu
Fiber direction file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/f2_Long.vtu
Fiber direction file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/mesh/solid_mesh/f2_Sheet.vtu
Prestress file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/result_020.vtu
Initial displacements file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/result_020.vtu
Domain: 2
}
#----------------------------------------------------------------
# Projections
Add projection: wall_inner {
Project from face: lumen_wall
Projection tolerance: 1e-6
}
#----------------------------------------------------------------
# Equations
Add equation: FSI {
Coupled: 1
Min iterations: 3
Max iterations: 20
Tolerance: 1e-3
Domain: 1 {
Equation: fluid
Density: 0.00106
Viscosity: Constant {Value: 0.004}
Backflow stabilization coefficient: 0.2
}
Domain: 2 {
Equation: struct
Density: 2e-3
Elasticity modulus: 2e6
Poisson ratio: 0.5
Constitutive model: HGO {
a4: 419000
b4: 12.2
a6: 419000
b6: 12.2
kappa: 0.29
}
Dilational penalty model: Quad
Penalty parameter: 1.0e8
}
Output: Spatial {
Velocity: t
Pressure: t
Displacement: t
WSS: t
}
Output: Alias {
Displacement: FS_Displacement
}
LS type: GMRES {
Preconditioner: FSILS
Max iterations: 100
Tolerance: 1D-4
Krylov space dimension: 100
}
Initialize RCR from flow: t
Add BC: lumen_wall {
Type: Dir
Value: 0.0
}
Add BC: lumen_inlet {
Type: Dir
Time dependence: General
BCT file path: /global-scratch/bulk_pool/iianniruberto/Docker/AORTA-013/bct.vtp
}
Add BC: lumen_outlet_1 {
Type: Neu
Time dependence: RCR
RCR values: "0.06847, 0.529, 3.315"
Distal pressure: 0.0
}
Add BC: lumen_outlet_2 {
Type: Neu
Time dependence: RCR
RCR values: "0.1632, 0.1167, 15.17"
Distal pressure: 0.0
}
Add BC: lumen_outlet_3 {
Type: Neu
Time dependence: RCR
RCR values: "0.004672, 1.028, 1.694"
Distal pressure: 0.0
}
Add BC: lumen_outlet_4 {
Type: Neu
Time dependence: RCR
RCR values: "0.0181, 13.11, 0.1257"
Distal pressure: 0.0
}
Add BC: wall_inlet {
Type: Dir
Value: 0.0
}
Add BC: wall_outlet_1 {
Type: Dir
Value: 0.0
}
Add BC: wall_outlet_2 {
Type: Dir
Value: 0.0
}
Add BC: wall_outlet_3 {
Type: Dir
Value: 0.0
}
Add BC: wall_outlet_4 {
Type: Dir
Value: 0.0
}
}
Add equation: mesh {
Coupled: 1
Min iterations: 2
Max iterations: 5
Tolerance: 1e-4
Poisson ratio: 0.3
LS type: CG {
Preconditioner: FSILS
Tolerance: 1e-4
}
Output: Spatial {
Displacement: t
}
Add BC: lumen_inlet {
Type: Dir
Value: 0.0
}
Add BC: lumen_outlet_1 {
Type: Dir
Value: 0.0
}
Add BC: lumen_outlet_2 {
Type: Dir
Value: 0.0
}
Add BC: lumen_outlet_3 {
Type: Dir
Value: 0.0
}
Add BC: lumen_outlet_4 {
Type: Dir
Value: 0.0
}
}
1. Are the pressure and prestress initialized automatically in the simulation when the path for the files is indicateed, or do I need to add specific commands in the "Add Equation {}" section?
2. The svFSImaster mentions that when using the FSI equation, a mesh equation is always required. Does this mesh equation govern the motion of the structural domain? In my simulation, which involves FSI of the aorta, I do not see the motion of the structural domain. How does this work exactly?
Thanks in advance!
Ione