How to avoid an error
Posted: Wed Jul 03, 2024 7:08 am
Hello,
When I use svFSIplus for 3D fluid simulation (relevant settings as follows, inlet flow as shown in Fig.1), an error occurs at step 133:
terminate called after throwing an instance of 'std::runtime_error'
what(): FSILS: unexpected behavior in FSILS (likely due to the ill-conditioned LHS matrix)
I then output the pressure at outlet1 for inspection. From my results, there doesn't seem to be any issue. I checked the source code but still couldn't identify the problem, so I guessed it might be due to improper algorithm configuration. Therefore, I set NS_GM_tolerance and NS_CG_tolerance to 1e-4 to improve accuracy. There was no error at step 133, but the same error occurred at step 478 (the outlet pressure result is shown in Fig.2). Then I further reduced NS_GM_tolerance and NS_CG_tolerance to 1e-5, and this time the error occurred at step 122. In fact, the results from these runs were not unusual. Is there any way to avoid this error?
Any help will be appreciated.
Lina
When I use svFSIplus for 3D fluid simulation (relevant settings as follows, inlet flow as shown in Fig.1), an error occurs at step 133:
terminate called after throwing an instance of 'std::runtime_error'
what(): FSILS: unexpected behavior in FSILS (likely due to the ill-conditioned LHS matrix)
I then output the pressure at outlet1 for inspection. From my results, there doesn't seem to be any issue. I checked the source code but still couldn't identify the problem, so I guessed it might be due to improper algorithm configuration. Therefore, I set NS_GM_tolerance and NS_CG_tolerance to 1e-4 to improve accuracy. There was no error at step 133, but the same error occurred at step 478 (the outlet pressure result is shown in Fig.2). Then I further reduced NS_GM_tolerance and NS_CG_tolerance to 1e-5, and this time the error occurred at step 122. In fact, the results from these runs were not unusual. Is there any way to avoid this error?
Any help will be appreciated.
Lina
Code: Select all
<?xml version="1.0" encoding="UTF-8" ?>
<svFSIFile version="0.1">
<GeneralSimulationParameters>
<Continue_previous_simulation> 0 </Continue_previous_simulation>
<Number_of_spatial_dimensions> 3 </Number_of_spatial_dimensions>
<Number_of_time_steps> 1000 </Number_of_time_steps>
<Time_step_size> 0.001 </Time_step_size>
<Spectral_radius_of_infinite_time_step> 0.50 </Spectral_radius_of_infinite_time_step>
<Searched_file_name_to_trigger_stop> STOP_SIM </Searched_file_name_to_trigger_stop>
<Save_results_to_VTK_format> 0 </Save_results_to_VTK_format>
<Name_prefix_of_saved_VTK_files> branch </Name_prefix_of_saved_VTK_files>
<Increment_in_saving_VTK_files> 1 </Increment_in_saving_VTK_files>
<Start_saving_after_time_step> 1 </Start_saving_after_time_step>
<Increment_in_saving_restart_files> 1000 </Increment_in_saving_restart_files>
<Convert_BIN_to_VTK_format> 0 </Convert_BIN_to_VTK_format>
<Verbose> 1 </Verbose>
<Warning> 0 </Warning>
<Debug> 0 </Debug>
</GeneralSimulationParameters>
<Add_mesh name="msh" >
<Mesh_file_path> 10w-mesh-complete/mesh-complete.mesh.vtu </Mesh_file_path>
<Add_face name="inlet">
<Face_file_path> 10w-mesh-complete/mesh-surfaces/inlet.vtp </Face_file_path>
</Add_face>
<Add_face name="outlet1">
<Face_file_path> 10w-mesh-complete/mesh-surfaces/outlet1.vtp </Face_file_path>
</Add_face>
<Add_face name="outlet2">
<Face_file_path> 10w-mesh-complete/mesh-surfaces/outlet2.vtp </Face_file_path>
</Add_face>
<Add_face name="wall">
<Face_file_path> 10w-mesh-complete/mesh-surfaces/wall.vtp </Face_file_path>
</Add_face>
<Mesh_scale_factor> 0.1 </Mesh_scale_factor>
<Add_equation type="fluid" >
<Coupled> true </Coupled>
<Min_iterations> 3 </Min_iterations>
<Max_iterations> 10 </Max_iterations>
<Tolerance> 1e-6 </Tolerance>
<Backflow_stabilization_coefficient> 0.2 </Backflow_stabilization_coefficient>
<Density> 1.06 </Density>
<Viscosity model="Constant" >
<Value> 0.04 </Value>
</Viscosity>
<Output type="Spatial" >
<Velocity> true </Velocity>
<Pressure> true </Pressure>
<Traction> true </Traction>
<Vorticity> true</Vorticity>
<Divergence> true</Divergence>
<WSS> true </WSS>
</Output>
<Output type="Boundary_integral" >
<WSS> true </WSS>
<Velocity> true </Velocity>
<Pressure> true </Pressure>
</Output>
<LS type="NS" >
<Max_iterations> 15 </Max_iterations>
<NS_GM_max_iterations> 20 </NS_GM_max_iterations>
<NS_CG_max_iterations> 300 </NS_CG_max_iterations>
<Tolerance> 1e-3 </Tolerance>
<NS_GM_tolerance> 1e-4 </NS_GM_tolerance>
<NS_CG_tolerance> 1e-4 </NS_CG_tolerance>
<Absolute_tolerance> 1e-12 </Absolute_tolerance>
<Krylov_space_dimension> 250 </Krylov_space_dimension>
</LS>
<Add_BC name="inlet" >
<Type> Dir </Type>
<Time_dependence> Unsteady </Time_dependence>
<Temporal_values_file_path> inlet.flow </Temporal_values_file_path>
<Profile> Parabolic </Profile>
<Impose_flux> true </Impose_flux>
</Add_BC>
<Add_BC name="outlet1" >
<Type> Neu </Type>
<Time_dependence> Resistance </Time_dependence>
<Value> 600 </Value>
</Add_BC>
<Add_BC name="outlet2" >
<Type> Neu </Type>
<Time_dependence> Resistance </Time_dependence>
<Value> 2000 </Value>
</Add_BC>
<Add_BC name="wall" >
<Type> Dirichlet </Type>
<Time_dependence> Steady </Time_dependence>
<Value> 0.0 </Value>
</Add_BC>
</Add_equation>