-
Notifications
You must be signed in to change notification settings - Fork 40
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
52a60c3
commit 9f9ac59
Showing
12 changed files
with
435,456 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
45 changes: 45 additions & 0 deletions
45
fluid_structure_interaction/validation/embedded_fsi_membrane_airfoil/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
# Flexible membrane airfoil | ||
|
||
**Author:** [Rubén Zorrilla](https://github.com/rubenzorrilla) | ||
|
||
**Kratos version:** 9.5 | ||
|
||
**Source files:** [Flexible membrane airfoil](https://github.com/KratosMultiphysics/Examples/tree/master/fluid_structure_interaction/validation/embedded_fsi_membrane_airfoil/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]. | ||
|
||
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. | ||
|
||
## 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 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]. | ||
|
||
<p align="center"> | ||
<figure> | ||
<img src="data/embedded_fsi_membrane_airfoil_fluid_v.gif" alt="Fluid velocity contour field." 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;"/> | ||
<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). |
Binary file added
BIN
+5.31 MB
...on/embedded_fsi_membrane_airfoil/data/embedded_fsi_membrane_airfoil_fluid_p.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+6.34 MB
...on/embedded_fsi_membrane_airfoil/data/embedded_fsi_membrane_airfoil_fluid_v.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added
BIN
+3.32 MB
...mbedded_fsi_membrane_airfoil/data/embedded_fsi_membrane_airfoil_structure_u.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions
20
...structure_interaction/validation/embedded_fsi_membrane_airfoil/source/FluidMaterials.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
{ | ||
"properties" : [{ | ||
"model_part_name" : "FluidModelPart", | ||
"properties_id" : 0, | ||
"Material" : null | ||
},{ | ||
"model_part_name" : "FluidModelPart.FluidParts_Fluid", | ||
"properties_id" : 1, | ||
"Material" : { | ||
"constitutive_law" : { | ||
"name" : "Newtonian2DLaw" | ||
}, | ||
"Variables" : { | ||
"DENSITY" : 1.0, | ||
"DYNAMIC_VISCOSITY" : 0.000155 | ||
}, | ||
"Tables" : null | ||
} | ||
}] | ||
} |
46 changes: 46 additions & 0 deletions
46
fluid_structure_interaction/validation/embedded_fsi_membrane_airfoil/source/MainKratos.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
import sys | ||
import math | ||
import time | ||
import importlib | ||
|
||
import KratosMultiphysics | ||
|
||
def CreateAnalysisStageWithFlushInstance(cls, global_model, parameters): | ||
class AnalysisStageWithFlush(cls): | ||
|
||
def __init__(self, model,project_parameters, flush_frequency=10.0): | ||
super().__init__(model,project_parameters) | ||
self.flush_frequency = flush_frequency | ||
self.last_flush = time.time() | ||
sys.stdout.flush() | ||
|
||
def Initialize(self): | ||
super().Initialize() | ||
sys.stdout.flush() | ||
|
||
def FinalizeSolutionStep(self): | ||
super().FinalizeSolutionStep() | ||
|
||
if self.parallel_type == "OpenMP": | ||
now = time.time() | ||
if now - self.last_flush > self.flush_frequency: | ||
sys.stdout.flush() | ||
self.last_flush = now | ||
|
||
return AnalysisStageWithFlush(global_model, parameters) | ||
|
||
if __name__ == "__main__": | ||
|
||
with open("ProjectParameters.json", 'r') as parameter_file: | ||
parameters = KratosMultiphysics.Parameters(parameter_file.read()) | ||
|
||
analysis_stage_module_name = parameters["analysis_stage"].GetString() | ||
analysis_stage_class_name = analysis_stage_module_name.split('.')[-1] | ||
analysis_stage_class_name = ''.join(x.title() for x in analysis_stage_class_name.split('_')) | ||
|
||
analysis_stage_module = importlib.import_module(analysis_stage_module_name) | ||
analysis_stage_class = getattr(analysis_stage_module, analysis_stage_class_name) | ||
|
||
global_model = KratosMultiphysics.Model() | ||
simulation = CreateAnalysisStageWithFlushInstance(analysis_stage_class, global_model, parameters) | ||
simulation.Run() |
Oops, something went wrong.