A proper method to assess grid independent.
We often need to take the data on a specific point. In OpenFOAM we can use sampleDict utility.
In the sampleDict file, we can add the following line for extracting data on a set of specific points.
curve // name of the file (can be any name)
type cloud; //type cloud for arbitrary ponits
axis xyz; // the points are scattred in xyz direction
points // list of points
(3.93 0.28 0.7897)
(5.93 0.28 1.2)
(7.93 0.28 2.2)
This post explains briefly how can we get a smooth mesh when using the snappyHexMesh in OpenFOAM 2.0.
The main ingredient is the ‘surfaceFeatureExtract’ utility.
Here are the steps:
1- blockMesh: the BCs can be defined here, example: inlet and outlet patches.
2- extract the surface edge from the .stl file, example: tank.stl
command : “surfaceFeatureExtract -includedAngle 150 -writeObj constant/triSurface/tank.stl features”
this utiliy will create .eMesh file in /constant/triSurface/ : example tank.eMesh
3- in the snappyHexMeshDict, edge refinement is made by referring the eMesh file name, example: tank.eMesh.
4- run the snappyHexmesh utility.
This post is about how to calculate yPlus in OpenFOAM.
1) with wall function; simply type ‘yPlusRAS’
2) without wall function;
i- type wallShearStress
ii- calculate manually: y+ = sqrt(wallShearStress/rho) * y/nu
y = height of the cell near to the wall
nu = kinematic viscosity.
1_ simply type ‘yPlusLES’
This post is for OpenFOAM user.
Most of the times, we need to import CAD drawing to OpenFOAM, especially for the complex geomtery. The dimension in the drawing somehow may changes after we imported into OpenFOAM.
with ‘transformPoints’ utilitiy, we can manipulate the coordinate of the imported file to our requirement. Refer to this site for complete explanation:
Example: if we want to scale the CAD drawing to a factor of 0.01 in x and y directions:
>> tranformPoints -scale ‘(0.01 0.01 1)’
if the surface is not smooth (due to the sudden change in geometry) use surfaceFeatureExtractDict, e.g.: tutorials/mesh/snappyHexMesh/flange
or snapEdgeDict http://openfoamwiki.net/index.php/Contrib_snapEdge
/*——————————–*- C++ -*———————————-*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.7 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
// only move those points that are closer to the features than the tolerance*| edge length |
// 1.0 = move the points to the edge, 0 = dont move the point
// under-relaxation works better with many iterations to capture corners
// number of iterations to move points towards edge
// set to yes if edges inside a patch should be included
// set to no if only the edges of the patch should be moved
// in general: set this to no to get optimal mapping of inlet/outlet patches
// this ensures that wall-faces and inlet/outlet-faces are mapped to correct positions
// resolve all features with greater angle than this
// do not snap edges with an angle greater than this to the feature line
// used when selecting between multiple edges to map to the same position
// if the angle is above this value
// the choice will be based on which edge has the smallest angle to feature line
// the choice will be based on which edge is closest
// allow for small overlap when fitting the edges to feature lines
OpenFOAM version 2.3.0 has a new feature for its sixDoFRigidBodyMotion solver. There is no celldisplacement field in the time steps so we cannot use probe to extract data of the mesh displacement. But, if we like to extract the data, we can use extractData command.
Example, In the ./case/extractData
grep “Centre of mass” $1 | cut -d “:” -f 2 | cut -d ” ” -f 3 | tr -d “)” > cM
grep “Linear velocity” $1 | cut -d “:” -f 2 | cut -d ” ” -f 4 | tr -d “)” > lV
grep -e “^Time = ” $1 | cut -d ” ” -f 3 > times
paste times cM > t_vs_cm
paste times lV > t_vs_lv
rm cM lV times
After run the case, example: >> mpirun -np 2 pimpleDyMFoam -parallel > log &
Then type >> ./extractData log
You can find new files are created that contain you needed data.
Noise generation is a significant issue for High-Speed Trains (HSTs), and as speeds increase aerodynamically generated noise becomes the dominant noise source. In this article, the effect of nose shape, carriage separation and yaw angle on the aerodynamics and noise generation are analysed using two prisms, representing a HST model. The aerodynamics are modelled using Computation Fluid Dynamics (CFD), and the flow velocity and turbulence intensity in various positions in the wake are compared with experimental hotwire data measured in the Anechoic Wind Tunnel (AWT) at The University of Adelaide, with good agreement. Finally, acoustic beamforming images of the noise generated by the interacting prisms measured in the AWT are presented. The acoustic results show that a blunt nose tends to increase noise at lower frequencies significantly, while increasing prism separation tends to increase noise over most frequencies, but most significantly at midfrequencies, and increasing yaw angle increases noise across all frequencies. Beamforming results show that at lower frequencies, this noise tends to be generated at the leading and trailing edges, while at higher frequencies the noise tends to be generated in the carriage gap.
AIAA Aviation,16-20 June 2014, Atlanta, GA, 20th AIAA/CEAS Aeroacoustics Conference.
Paper: AIAA 2014-3287
M. S. M. Ali, S. A. Z. S. Salim, S Muhamad, MH Ismail, MI Mahzan, 2013, Aeolian Tones Radiated from Flow Over Bluff Bodies, The Open Mechanical Engineering Journal 7, 48-57
Example: flow over a cube
1) create a computational domain using blockMesh (Hexagonal)
2) using toposetDict, define the geometry of the cube:
box (-2 -2 -2)(2 2 2);
3) run “toposet” in the terminal
4) run “subsetMesh -overwrite blockFaces -patch block” in the terminal
5) check your mesh using paraview