Skip to content

Commit

Permalink
Merge branch 'fsi/embedded-membrane-example' of https://github.com/Kr…
Browse files Browse the repository at this point in the history
…atosMultiphysics/Examples into fsi/embedded-membrane-example
  • Loading branch information
rubenzorrilla committed Aug 8, 2024
2 parents 9f9ac59 + 45024fa commit edc3f2e
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 45 deletions.
Original file line number Diff line number Diff line change
@@ -1,45 +1,34 @@
# Flexible membrane airfoil
# Mixer with flexible blades

**Author:** [Rubén Zorrilla](https://github.com/rubenzorrilla)

**Kratos version:** 9.5
**Kratos version:** 9.1

**Source files:** [Flexible membrane airfoil](https://github.com/KratosMultiphysics/Examples/tree/master/fluid_structure_interaction/validation/embedded_fsi_membrane_airfoil/source)
**Source files:** [Mixer with flexible blades](https://github.com/KratosMultiphysics/Examples/tree/master/fluid_structure_interaction/validation/embedded_fsi_mixer_Y/source)

## Case Specification
This example reproduces a reduced-scale experiment of a flexible membrane airfoil[1]. The embedded (i.e., CutFEM) framework for thin-walled bodies is applied in order to avoid the preprocessing and mesh entanglement issues appearing when using volumetric meshes around membrane-like bodies [2].
This example is specifically conceived to prove the extended scope of applicatoin of embedded mesh methods. Hence, it involves extremely large rotations, which would be impossible to solve by using a body fitted ALE based approach.

The problem set up consists in a 2D idealization of the flexible membrane airfoil at an angle of attack of 4º. The lenght and thickness of the membrane are 0.15m and 2e-4m, respectively, while the material parameters are a Young modulus of 250e3Pa and zero Poisson ration. The fluid properties are set such that Re=2500. The structure and fluid density ratio is 441.75. The inlet characteristic velocity is 2.5833m/s.
The problem is set up as a 2D idealization of a turbine mixer with clockwise-anticlockwise alternate rotation. The problem geometry is a unit diameter circle with three embedded flexible blades. An imposed rotation is enforced in the blades axis to emulate the spin of the rotor. Such rotation changes the direction (anticlockwise to clockwise and viceversa) after More details on the dimensions, material settings and boundary conditions can be found in [here](https://doi.org/10.1016/j.cma.2020.113179).

## Results
The fluid domain is meshed with a 144k P1P1 elements unstructured mesh. The membrane is meshed with 128 line elements implementing a simplified 2D non-linear membrane formulation. The problem is run with a ramp up function of 1s and for an extra second so to ensure that the membrane reaches the steady state.
The fluid domain is meshed with a 45 and 540 radial and perimeter subdivisions Q1P1 elements centered structured mesh. Each one of the flexible blades is meshed with an 8x39 subdivisions structured mesh made with Total Lagrangian quadrilateral elements. The problem is run for 20s so three complete rotations (anticlockwise - clockwise - anticlockwise) are simulated.

The steady state velocity and pressure contour fields as well as the displacement vector field are shown below. The obtained results are in line with similar numerical experiments [3].
The obtained velocity and pressure fields, together with the level set zero isosurface representing the deformed geometry, are shown below.

<p align="center">
<figure>
<img src="data/embedded_fsi_membrane_airfoil_fluid_v.gif" alt="Fluid velocity contour field." style="width: 600px;"/>
<img src="data/embedded_fsi_mixer_Y_v.gif" alt="Velocity field and level set isosurface." style="width: 600px;"/>
<figcaption>Velocity field and level set isosurface.</figcaption>
</figure>
</p>

<p align="center">
<figure>
<img src="data/embedded_fsi_membrane_airfoil_fluid_p.gif" alt="Fluid pressure contour field." style="width: 600px;"/>
<figcaption>Pressure field and level set isosurface.</figcaption>
</figure>
</p>

<p align="center">
<figure>
<img src="data/embedded_fsi_membrane_airfoil_structure_u.gif" alt="Membrane displacement vector field." style="width: 600px;"/>
<img src="data/embedded_fsi_mixer_Y_p.gif" alt="Pressure field and level set isosurface." style="width: 600px;"/>
<figcaption>Pressure field and level set isosurface.</figcaption>
</figure>
</p>

## References
[1] P. Rojratsirikul, Z. Wang and I. Gursul, I, Unsteady Aerodynamics of Membrane Airfoils. Paper presented at 46th AIAA Aerospace Sciences Meeting and Exhibit, Reno, Nevada, 2008 [10.2514/6.2008-613](https://doi.org/10.2514/6.2008-613).

[2] R. Zorrilla, R. Rossi, R. Wüchner and E. Oñate, An embedded Finite Element framework for the resolution of strongly coupled Fluid–Structure Interaction problems. Application to volumetric and membrane-like structures, Computer Methods in Applied Mechanics and Engineering (368), 2020 [10.1016/j.cma.2020.113179](https://doi.org/10.1016/j.cma.2020.113179).

[3] R. E. Gordnier, High fidelity computational simulation of a membrane wing airfoil, Journal of Fluids and Structures (25), 2009, [10.1016/j.jfluidstructs.2009.03.004](https://doi.org/10.1016/j.jfluidstructs.2009.03.004).
R. Zorrilla, R. Rossi, R. Wüchner and E. Oñate, An embedded Finite Element framework for the resolution of strongly coupled Fluid–Structure Interaction problems. Application to volumetric and membrane-like structures, Computer Methods in Applied Mechanics and Engineering (368), [10.1016/j.cma.2020.113179](https://doi.org/10.1016/j.cma.2020.113179)
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"parallel_type": "OpenMP",
"echo_level": 0,
"start_time": 0.0,
"end_time": 2.0e0
"end_time": 1.0e0
},
"solver_settings": {
"solver_type": "partitioned_embedded",
Expand All @@ -27,15 +27,15 @@
"materials_filename": "StructuralMaterials.json"
},
"time_stepping": {
"time_step": 1.0e-2
"time_step": 5e-3
},
"line_search" : false,
"convergence_criterion" : "residual_criterion",
"displacement_relative_tolerance" : 1e-5,
"displacement_absolute_tolerance" : 1e-7,
"residual_relative_tolerance" : 1e-5,
"residual_absolute_tolerance" : 1e-7,
"max_iteration" : 50
"max_iteration" : 20
},
"fluid_solver_settings":{
"model_part_name" : "FluidModelPart",
Expand All @@ -53,7 +53,7 @@
},
"echo_level" : 0,
"compute_reactions" : true,
"maximum_iterations" : 50,
"maximum_iterations" : 10,
"relative_velocity_tolerance" : 1e-5,
"absolute_velocity_tolerance" : 1e-7,
"relative_pressure_tolerance" : 1e-5,
Expand All @@ -64,13 +64,13 @@
"no_skin_parts" : [],
"time_stepping" : {
"automatic_time_step": false,
"time_step": 1.0e-2
"time_step": 5e-3
},
"formulation": {
"element_type": "embedded_weakly_compressible_navier_stokes_discontinuous",
"is_slip": true,
"slip_length": 1.0e1,
"penalty_coefficient": 1.0e2,
"slip_length": 1.0e6,
"penalty_coefficient": 1.0e3,
"dynamic_tau": 1.0
},
"fm_ale_settings": {
Expand Down Expand Up @@ -115,8 +115,6 @@
"solver_type": "MVQN",
"w_0": 0.5,
"abs_cut_off_tol" : 1e-6
// "solver_type": "MVQN_randomized_SVD",
// "abs_cut_off_tol" : 1e-6
},
"structure_interfaces_list": ["Structure.LinePressure2D_Load"]
}
Expand All @@ -143,18 +141,7 @@
"Parameters" : {
"model_part_name" : "FluidModelPart.AutomaticInlet2D_Inlet",
"variable_name" : "VELOCITY",
"interval" : [0.0,1.0],
"modulus" : "2.5833*t",
"direction" : "automatic_inwards_normal"
}
},{
"python_module" : "apply_inlet_process",
"kratos_module" : "KratosMultiphysics.FluidDynamicsApplication",
"process_name" : "ApplyInletProcess",
"Parameters" : {
"model_part_name" : "FluidModelPart.AutomaticInlet2D_Inlet",
"variable_name" : "VELOCITY",
"interval" : [1.0,"End"],
"interval" : [0.0,"End"],
"modulus" : 2.5833,
"direction" : "automatic_inwards_normal"
}
Expand Down Expand Up @@ -216,7 +203,14 @@
}
}],
"fluid_gravity" : [],
"fluid_auxiliar_process_list" : []
"fluid_auxiliar_process_list" : [{
"python_module": "apply_embedded_postprocess_process",
"kratos_module": "KratosMultiphysics.FluidDynamicsApplication",
"process_name": "ApplyEmbeddedPostprocessrocess",
"Parameters": {
"model_part_name": "FluidModelPart.FluidParts_Fluid"
}
}]
},
"output_processes":{
"gid_output" : [{
Expand All @@ -225,7 +219,7 @@
"process_name" : "GiDOutputProcess",
"Parameters" : {
"model_part_name" : "Structure",
"output_name" : "embedded_fsi_membrane_airfoil_structure",
"output_name" : "gordnier_membrane_structure",
"postprocess_parameters" : {
"result_file_configuration" : {
"gidpost_flags" : {
Expand Down Expand Up @@ -253,7 +247,7 @@
"process_name": "GiDOutputProcess",
"Parameters": {
"model_part_name": "FluidModelPart.FluidParts_Fluid",
"output_name": "embedded_fsi_membrane_airfoil_fluid",
"output_name": "gordnier_membrane_fluid",
"postprocess_parameters": {
"result_file_configuration": {
"gidpost_flags": {
Expand Down

0 comments on commit edc3f2e

Please sign in to comment.