Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Register
  • Sign in
  • B buoyancy2d
  • Project information
    • Project information
    • Activity
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
  • Analytics
    • Analytics
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Commits
Collapse sidebar
  • alyaalya
  • benchmarksbenchmarks
  • buoyancy2d
  • Wiki
  • Home

Home · Changes

Page history
Create home authored Apr 23, 2020 by Guillaume Houzeaux's avatar Guillaume Houzeaux
Hide whitespace changes
Inline Side-by-side
home.md 0 → 100644
View page @ 4db287ea
This tutorial analyses the boundary layer development of a flow over a plate with an edge facing the stream. Flow velocity and fluid density and viscosity are specified to yield a laminar Reynolds number. The figure below shows the flow in the boundary layer over the plate. The model is solved using a 2D quadrilateral structured mesh.
* [Steady state flow](case_venturi.html#Steady_state_flow) : description of the problem
* [domain Boundaries](case_venturi.html#Domain_boundaries) : boundaries of the computational domain
* [Convergence of the case](case_venturi.html#Convergence) : numerical and physical convergence of the model
* [Shear stress and pressure on the plate](case_blasius.html#shear_pressure_on_plate) : post-processing of shear and pressure forces on the plate
* [Bibliography](case_blasius.html#Bibliography) : bibliographic references
* [Input files ](case_venturi.html#Input_files) : detailed description of case input files
* [blasius.dat (case global parameters)](case_blasius.html#blasius_dat)
* [blasius.dom.dat (domain input data)](case_blasius.html#blasius_dom_dat)
* [blasius.geo.dat (mesh data)](case_blasius.html#blasius_geo_dat)
* [blasius.set.dat (set data: groups for post-processing, optional)](case_blasius.html#blasius_set_dat)
* [blasius.fix.dat (boundary conditions data)](case_blasius.html#blasius_fix_dat)
* [blasius.ker.dat (kernel input data)](case_blasius.html#blasius_ker_dat)
* [blasius.nsi.dat (incompressible Navier-Stokes solver parameters)](case_blasius.html#blasius_nsi_dat)
* [blasius.post.alya.dat (alya2pos parameters)](case_blasius.html#blasius_post_alya_dat)
* * *
* * *
# <a class="anchor" id="Steady_state_flow"></a>Steady state flow
![image](uploads/261d6d6ea2e46dc119146af5ebed1614/image.png)
<center>blasius case - solution of the steady state flow</center>
Plate is on plane Y=0, begins at X=0 and ends at X=1\. Simulation settings are specified to analyse a steady state flow. Integration TIME_INTERVAL is set from 0 to 1e5 (infinity) and so is NUMBER_OF_STEPS, in order to let iterate.
* * *
* * *
# <a class="anchor" id="Domain_boundaries"></a>domain Boundaries
Boundary numbers are as follows, inlet on the left end.
![image](uploads/20f4d1a3401595974ff727db9a62ed2c/image.png)
<center>blasius case - domain boundaries</center>
Boundary conditions are: inflow (1), outflow (2), wall (3) and symmetry (4).
* * *
* * *
# <a class="anchor" id="Convergence"></a>Convergence of the case
Next figure shows the convergence plot (alya-all-nsi app) of the simulation.
![image](uploads/033b513fc84b8f2e8315d4f3d50be70c/image.png)
<center>blasius case - numerical convergence</center>
* * *
* * *
# <a class="anchor" id="shear_pressure_on_plate"></a>Shear stress and pressure on the plate
As with the rest of the tutorials in this manual, the results have been postprocessed using the open-source software ParaView. In order to obtain X shear stress distribution and the accumulated Cf value on the wall, ParaView spreadsheet filter has been used to export velocity numerical values to an excel sheet, where velocity grandients and Cf integral
```math
{C_f} = \int_0^x \rho \frac{dU}{dy} {dx}
```
have been calculated numerically, giving this results:
![image](uploads/986ebf39ff1d2b5910c9002535eb0c59/image.png)
<center>blasius case - shear stress and Cf along the plate</center>
![image](uploads/a4288cb629381d9b8dd4c88fb9ef27d1/image.png)
<center>blasius case - pressure along the plate</center>
From the technical literature (3) we obtain the following expression to calculate the Skin Friction Coefficient as a function of the Reynolds number:
in a laminar boundary layer, $` \displaystyle{C_f} = \frac{0.664}{\sqrt{Re}} = \frac{0.664}{\sqrt{1000}} `$ = 0.0209975
which correlates pretty well with the value obtained from the simulation with Alya: 0.022809309
* * *
* * *
# <a class="anchor" id="Bibliography"></a>Bibliography
(3) Measurement of Boundary Layer on a Flat Plate Kay Gemba (California State University, Long Beach) March 25, 2007
* * *
* * *
# <a class="anchor" id="Input_files"></a>Input files
* * *
## <a class="anchor" id="blasius_dat"></a>blasius.dat (case global parameters)
```
$----------------------------------------------------------—
RUN_DATA
ALYA: blasius $ case name
END_RUN_DATA
$----------------------------------------------------------—
PROBLEM_DATA
TIME_COUPLING: Global, From_critical $ global time step is calculated by Alya
TIME_INTERVAL= 0.0, 1.0e6 $ integration time domain from t=0 to t=1.0e6s
TIME_STEP_SIZE= 0.001 $ prescribed time step (no effect, since TIME_COUPLING = From_critical)
NUMBER_OF_STEPS= 2000 $ maximum number of time steps
NASTIN_MODULE: On $ nastin module (Incompressible Navier-Stokes) is used
END_NASTIN_MODULE
PARALL_SERVICE: On $ parallelization module can be used
End_PARALL_SERVICE
END_PROBLEM_DATA
$----------------------------------------------------------—
```
* * *
## <a class="anchor" id="blasius_dom_dat"></a>blasius.dom.dat (domain input data)
```
$----------------------------------------------------------—
DIMENSIONS
NODAL_POINTS= 3721 $ number of nodes
ELEMENTS= 3600 $ number of elements
SPACE_DIMENSIONS= 2 $ 2D mesh
TYPES_OF_ELEMENTS= 12 $ 4 node quadrilateral elements
BOUNDARIES= 240 $ number of boundary edges
END_DIMENSIONS
$----------------------------------------------------------—
STRATEGY $ integration strategy
INTEGRATION_RULE: Open $ open rule is the default
DOMAIN_INTEGRATION_POINTS: 0 $ 0 = automatic, depending on each element type
END_STRATEGY
$----------------------------------------------------------—
GEOMETRY $ mesh definition
GROUPS= 0 $ number of groups (for deflation based solvers)
INCLUDE blasius.geo.dat $ include geometry file (nodes, elements & boundaries)
END_GEOMETRY
$----------------------------------------------------------—
SETS $ sets definition
INCLUDE blasius.set.dat $ include set file (groups for post-processing)
END_SETS
$----------------------------------------------------------—
BOUNDARY_CONDITIONS, EXTRAPOLATE $ edge BC’s extrapolate to nodes
INCLUDE blasius.fix.dat $ include boundary conditions file
END_BOUNDARY_CONDITIONS
$----------------------------------------------------------—
```
* * *
## <a class="anchor" id="blasius_geo_dat"></a>blasius.geo.dat (mesh data)
```
$----------------------------------------------------------—
NODES_PER_ELEMENT $ nodes per element list
1 4 $ element number, number of nodes 2 4 3 4 : : 3599 4 3600 4
END_NODES_PER_ELEMENT
$----------------------------------------------------------—
ELEMENTS $ element connectivity list
1 3720 3718 3719 3721 $ element number, node number 1, node number 2, ...
2 3717 3715 3718 3720
3 3712 3710 3715 3717
:
:
:
3599 122 29 28 123
3600 30 118 29 122
END_ELEMENTS
$----------------------------------------------------------—
COORDINATES
1 4.248591e-03 3.000000e+00 $ node number, coord X, coord Y
2 9.318577e-03 3.000000e+00
3 1.533496e-02 3.000000e+00
:
:
:
3720 -9.350762e-01 0.000000e+00
3721 -1.000000e+00 0.000000e+00
END_COORDINATES
$----------------------------------------------------------—
BOUNDARIES, ELEMENT
1 3721 3720 1 $ boundary element #, node #s, element # boundary belongs to
2 3720 3717 2
3 3717 3712 3
:
:
:
239 2 1 3572
240 1 121 3571
END_BOUNDARIES MATERIALS, FLUID_MATERIAL=1, NUMBER=0, DEFAULT=1 all elements have material 1 END_MATERIALS CHARACTERISTICS END_CHARACTERISTICS
$----------------------------------------------------------—
```
* * *
## <a class="anchor" id="blasius_set_dat"></a>blasius.set.dat (set data: groups for post-processing, optional)
```
$----------------------------------------------------------—
ELEMENTS $ element sets definition
1 1 $ element number, set number
2 1
3 1
:
:
:
3599 1
3600 1
END_ELEMENTS
$----------------------------------------------------------—
BOUNDARIES $ boundary sets definition
1 1 $ boundary element number, boundary set number
2 1
3 1
:
:
:
239 4
240 4
END_BOUNDARIES
$----------------------------------------------------------—
NODES $ node sets definition
0
END_NODES
$----------------------------------------------------------—
```
* * *
## <a class="anchor" id="blasius_fix_dat"></a>blasius.fix.dat (boundary conditions data)
```
$----------------------------------------------------------—
ON_BOUNDARIES
1 4 $ boundary element number, boundary number
2 4
3 4
:
:
:
239 4
240 4
END_ON_BOUNDARIES
$----------------------------------------------------------—
```
* * *
## <a class="anchor" id="blasius_ker_dat"></a>blasius.ker.dat (kernel input data)
```
$---------------------------------------------------------—
PHYSICAL_PROBLEM
MATERIAL=1
PROPERTIES $ fluid physical properties
DENSITY: CONSTANT, PARAMETERS = 1.0 $ mass density
VISCOSITY: CONSTANT, PARAMETERS = 0.001 $ dynamic viscosity (μ)
END_PROPERTIES
END_PHYSICAL_PROBLEM
$---------------------------------------------------------—
NUMERICAL_TREATMENT
MESH
DIVISION=2 $ mesh subdivisions
END_MESH
ELSEST $ element search strategy
STRATEGY: BIN $ BIN divide mesh into boxes to find elements that host
witness points (suited for structured meshes)
NUMBER: 100,33 $ 2D domain divided in 100 x 10 boxes
END_ELSEST
END_NUMERICAL_TREATMENT
$---------------------------------------------------------—
OUTPUT_&_POST_PROCESS
ON_LAST_MESH
STEPS=100 $ write post-process file every ‘STEPS’ time steps
END_OUTPUT_&_POST_PROCESS
$---------------------------------------------------------—
```
* * *
## <a class="anchor" id="blasius_nsi_dat"></a>blasius.nsi.dat (incompressible Navier-Stokes solver parameters)
```
$---------------------------------------------------------—
PHYSICAL_PROBLEM
PROBLEM_DEFINITION
TEMPORAL_DERIVATIVES: On $ transient problem
CONVECTIVE_TERM: On $ off for Stokes flow (negligible for high viscosity fluids)
VISCOUS_TERM: LAPLACIAN $ suitable for constant viscosity fluid assumption
END_PROBLEM_DEFINITION
END_PHYSICAL_PROBLEM
$---------------------------------------------------------—
NUMERICAL_TREATMENT
ELEMENT_LENGTH: Minimum $ element length for Alya to calculate critical time step
STABILIZATION: ASGS $ numerical stabilization method
TIME_INTEGRATION: Trapezoidal, ORDER: 1, EULER=20 $ time integration scheme
SAFETY_FACTOR: 1.6e5 $ multiply global time step: Alya calculates critical time step
as required by explicit solvers, which is suited for transient
analysis but makes stationary solutions converge very slowly
STEADY_STATE_TOLER: 1.0e-10 $ convergence tolerance for steady state
MAXIMUM_NUMBER_OF_IT: 1 $ max number of inner NS iterations
CONVERGENCE_TOLERANCE: 1.0e-3 $ convergence tolerance for inner NS loop (useless in this case)
ALGORITHM: SCHUR $ NS solution algorithm (uncouples p & V)
SOLVER: ORTHOMIN, CONTINUITY_PRESERVING if not specifyed, default is MOMENTUM_PRESERVING
PRECONDITION: DT
END_ALGORITHM
MOMENTUM $ velocity solver
ALGEBRAIC_SOLVER
SOLVER: GMRES, KRYLOV=10 $ solver suited for asymmetric matrix
CONVERGENCE: ITERA=1000, TOLER=1.0e-12, ADAPTIVE, RATIO=0.01 $ max iter #, convergence criteria
ADAPTIVE, RATIO=0.001 means that the loop will end also if the difference of the norm of convergence value changes less than 0.1% in two consecutive iterations
OUTPUT: CONVERGENCE $ solver convergence file (.cso) is generated
PRECONDITIONER: DIAGONAL $ matrix preconditioner type
END_ALGEBRAIC_SOLVER
END_MOMENTUM
CONTINUITY $ pressure solver
ALGEBRAIC_SOLVER
SOLVER: DEFLATED_CG, COARSE: SPARSE $ CG solvers are suited for symmetric matrix
CONVERGENCE: ITERA=1000, TOLER=1.0e-12, ADAPTIVE, RATIO=0.01 $ max iter #, convergence criteria
ADAPTIVE, RATIO=0.001 means that the loop will end also if the difference of the norm of convergence value changes less than 0.1% in two consecutive iterations
OUTPUT: CONVERGENCE $ solver convergence file (.cso) is generated
PRECONDITIONER: LINELET $ matrix preconditioner type
END_ALGEBRAIC_SOLVER
END_CONTINUITY
END_NUMERICAL_TREATMENT
$---------------------------------------------------------—
OUTPUT_&_POST_PROCESS
START_POSTPROCES_AT STEP = 0 $ initial step to post process
POSTPROCESS VELOCITY STEPS = 1 $ post process velocity every 10 steps (priority ker.dat)
POSTPROCESS PRESSURE STEPS = 1 $ post process pressure every 10 steps (priority ker.dat)
BOUNDARY_SET
FORCE $ obtain pressure & velocity forces acting on boundaries
TORQUE, CENTER=0,0,0 $ obtain torque of forces acting on boundaries, related to CENTER
MASS $ obtain mass flow through boundaries
END_BOUNDARY_SET
END_OUTPUT_&_POST_PROCESS
$---------------------------------------------------------—
BOUNDARY_CONDITIONS
PARAMETERS
INITIAL: CONSTANT, VALUE=1.0, 0.0 $ domain velocity initialization (constant and equal to inlet velocity)
END_PARAMETERS
CODES, NODES $ Boundary Conditions
1 11 1.000000 0.000000 $ inflow
2 00 0.000000 0.000000 $ outflow
3 11 0.000000 0.000000 $ wall
4 01 0.000000 0.000000 $ symmetry
1 & 4 11 1.000000 0.000000 $ vertex...
2 & 3 11 0.000000 0.000000
2 & 4 01 0.000000 0.000000
3 & 4 11 0.000000 0.000000
END_CODES $ (note that BC’s apply to boundaries, not to boundary sets)
END_BOUNDARY_CONDITIONS
$---------------------------------------------------------—
```
* * *
## <a class="anchor" id="blasius_post_alya_dat"></a>blasius.post.alya.dat (alya2pos parameters)
```
$----------------------------------------------------------------—
DATA
FORMAT: visit $ also valid for ParaView
MARK_ELEMENTS: type $ to create automatic layers in post process according to some criterion
ELIMINATE_BOUNDARY_NODES: yes $ for parallel runs, to avoid node duplicity between subdomain
BOUNDARY: ON $ to post process boundary mesh
SUBDOMAINS, ALL $ subdomains (parallel partitions) to post process
END_SUBDOMAINS
$ SUBDOMAINS
$ 2 $ post process only subdomain 2
$ END_SUBDOMAINS
END_DATA
$----------------------------------------------------------------—
```
* * *
Clone repository
  • Home