SimpleWindFoam TurbineSiting atmBoundaryLayerInletVelocity
I am trying to use the turbineSiting tutorial to simulate wind flows in city's. I've been reading a lot on this forum about this tutorial and the atmoshericBoundaryLayerInletVelocity. However I don't seem to succeed in adjusting the tutorial to my case.
I've been changing all parameters to my case and the meshing is not a problem. I am getting quite well results with the snappyHexMesh. If I then use SimpleFoam (I've read on the forum that you don't have to use simpleWindFoam if you don't have any turbines in your case), I get an error :
Create mesh for time = 0
Reading field p
Reading field U
Reading/calculating face flux field phi
Selecting incompressible transport model Newtonian
Selecting RAS turbulence model kEpsilon
Starting time loop
Time = 1
smoothSolver: Solving for Ux, Initial residual = 1, Final residual = 0.048921619129, No Iterations 3
smoothSolver: Solving for Uy, Initial residual = 1, Final residual = 0.0379697123169, No Iterations 2
smoothSolver: Solving for Uz, Initial residual = 0.999999999978, Final residual = 0.0301590067167, No Iterations 2
smoothSolver: Solving for p, Initial residual = 1, Final residual = 0.973538950195, No Iterations 300
smoothSolver: Solving for p, Initial residual = 0.369644226296, Final residual = 0.365816840222, No Iterations 300
time step continuity errors : sum local = 0.0402944057061, global = -1.52332950846e-06, cumulative = -1.52332950846e-06
smoothSolver: Solving for epsilon, Initial residual = 0.999999999779, Final residual = 0.0605020173719, No Iterations 4
smoothSolver: Solving for k, Initial residual = 0.999999998267, Final residual = 0.0636421123157, No Iterations 4
bounding k, min: 0 max: 10.2206631121 average: 6.03698473658
ExecutionTime = 150.11 s ClockTime = 150 s
Time = 2
smoothSolver: Solving for Ux, Initial residual = 0.523922716702, Final residual = 0.0348655168634, No Iterations 4
smoothSolver: Solving for Uy, Initial residual = 0.539626088908, Final residual = 0.0362048666305, No Iterations 4
smoothSolver: Solving for Uz, Initial residual = 0.479550397895, Final residual = 0.0306379571382, No Iterations 4
smoothSolver: Solving for p, Initial residual = 0.760211753981, Final residual = 0.637002209255, No Iterations 300
smoothSolver: Solving for p, Initial residual = 0.608690091219, Final residual = 0.597137654786, No Iterations 300
time step continuity errors : sum local = 0.0386763087088, global = -2.25283245784e-05, cumulative = -2.40516540868e-05
#0 Foam::error::printStack(Foam::Ostream&) in "/home/xx/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/xx/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so"
#2 in "/lib/libc.so.6"
#3 Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/home/xx/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libOpenFOAM.so"
#4 void Foam::divide<Foam::fvPatchField, Foam::volMesh>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/home/xx/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#5 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::operator/<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<doub le, Foam::fvPatchField, Foam::volMesh> > const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/home/xx/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#6 Foam::incompressible::RASModels::kEpsilon::correct () in "/home/jvermeir/OpenFOAM/OpenFOAM-1.7.x/lib/linux64GccDPOpt/libincompressibleRASModels.so"
#8 __libc_start_main in "/lib/libc.so.6"
Floating point exception
Does anyone know what this error means?
If I don't use an atm boundary layer and a different RAS-model (komegaSST based on the motorBike case) everything does work (but this is not what I want). So I guess my problem would be regarding the k-epsilon model or the atmBoundaryLayer?
Also I've seen on the forum a lot of people are also having problems adjusting this tutorials to their case. Does anyone actually succeeded in making this tutorial to work for their case?
I found out changing the value for epsilon in the initial condition can help. True some research I found out that the value for epsilon in the initial condition can be found be equation :
epsilon = Ustar^3/(kappa*(H+Z_0)
Does someone now what height you have to use? If i use the H_ref from ABLcondition, the code crashes. By manipulating this H I'm able to run the code, but for sure this can not be the way to do this.
I actually haven't used this solver a great deal or the atmBoundaryLayerInletVelocity BC but if I had to guess I bet you have something unphysical in your pressure BCs.
This is based on your error :
Im using simpleWindFoam for a applications. I'm building the box, but when I'm trying to extract the surface with snappyhexmesh i receive this error:
openfoam@linux-bkii:~/OpenFOAM/openfoam-1.7.0/run/projects/TRAINS/Cordoba> snappyHexMesh -overwrite
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.7.0 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
Build : 1.7.0-21131bcbd876
Exec : snappyHexMesh -overwrite
Date : Aug 02 2011
Time : 17:36:20
Host : linux-bkii
PID : 7974
Case : /home/openfoam/OpenFOAM/openfoam-1.7.0/run/projects/TRAINS/Cordoba
nProcs : 1
SigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create mesh for time = 0
Read mesh in = 0.26 s
Overall mesh bounding box : (299348.525 4158905.764 0) (342171.227 4189109.863 2000)
Relative tolerance : 1e-06
Absolute matching distance : 0.0524411232048
Reading refinement surfaces.
Read refinement surfaces in = 37.63 s
Reading refinement shells.
Read refinement shells in = 0 s
Setting refinement level of surface to be consistent with shells.
Checked shell refinement in = 0 s
Determining initial surface intersections
--> FOAM FATAL ERROR:
Number of cells in mesh:18000 does not equal size of cellLevel:18969
This might be because of a restart with inconsistent cellLevel.
From function hexRef8::getLevel0EdgeLength() const
in file polyTopoChange/polyTopoChange/hexRef8.C at line 357.
#0 Foam::error::printStack(Foam::Ostream&) in "/home/openfoam/OpenFOAM/OpenFOAM-1.7.0/lib/linuxGccDPOpt/libOpenFOAM.so"
#1 Foam::error::abort() in "/home/openfoam/OpenFOAM/OpenFOAM-1.7.0/lib/linuxGccDPOpt/libOpenFOAM.so"
#2 Foam::hexRef8::getLevel0EdgeLength() const in "/home/openfoam/OpenFOAM/OpenFOAM-1.7.0/lib/linuxGccDPOpt/libdynamicMesh.so"
#3 Foam::hexRef8::hexRef8(Foam::polyMesh const&, Foam::List<int> const&, Foam::List<int> const&, Foam::refinementHistory const&) in "/home/openfoam/OpenFOAM/OpenFOAM-1.7.0/lib/linuxGccDPOpt/libdynamicMesh.so"
#4 Foam::meshRefinement::meshRefinement(Foam::fvMesh& , double, bool, Foam::refinementSurfaces const&, Foam::shellSurfaces const&) in "/home/openfoam/OpenFOAM/OpenFOAM-1.7.0/lib/linuxGccDPOpt/libautoMesh.so"
#5 main in "/home/openfoam/OpenFOAM/OpenFOAM-1.7.0/applications/bin/linuxGccDPOpt/snappyHexMesh"
#6 __libc_start_main in "/lib/libc.so.6"
#7 _start at /usr/src/packages/BUILD/glibc-2.10.1/csu/../sysdeps/i386/elf/start.S:122
Any suggestions, ....:confused:
I don't immediately recognize the error but some suggestions are :
- Have you tried snappyhexmesh before in the same case? If there are some files left in your constant/polyMesh from the snappyhexmesh, you can't start a new mesh.
- Make sure your stl file is bigger than the domain of you blockMesh. So your stl file has a larger width and length than your blockMesh
I hope this helps.
the answer of the 1st question is yes; but i was building just a small case from the tutorial where i had all the coordinate, box and also the *.stl file. Now I have a different surface.
Your right, i didn't remove the history of the previous *.stl which I used. Thats why i was having that error. Now is starting the snappyhexmesh process, but seems that i have to decrease the dimensions of the box to allow the substraction of the *.stl surface.
Pardon the stupid question, but where can I find the turbineSiting tutorial?
I am looking for it, but it seems that I do not have it.
Thanks a lot,
The turboSiting tutorial is located in incompressible/windSimpleFoam/turboSiting directory. This location is valid for OF version 2.0.1. For version OF 1.7.1 the location is in incompressible/simpeWindFoam directory. Also here you have the *.C code for this tutorial. you need to compilate the code before using (OF v.1.7.1) it.
Have a nice weekend!!!!
Thanks a lot Ovidiu,
I have found the tutorial.
I am gonna read some reports (if available!), but I still have a problem.
Could you help?
The point is that I am running OF-2.0.1. Hence, I change directory and I enter in the case directory.
Then I give the command
So I try to give the command
but I get this error message:
Could you help?
Are you still strugling with the error you posted in my tread? If you do, the problem is in your snappyHexmeshdict file (in the system directory). The tutorial makes a mesh around 2 imaginery wind turbines (actuator disk) to calculate the energy output on these points in the .stl file. The place of these actuator disk is defined in the constant/source directory. If you don't wont to use imaginery wind turbines (like me) you have to delete them in your snappyHexmeshdict file. If you want to use them make sure you put them on the right place by adjusting the source file, so the disks are for example not placed outside your domain. This should solve your error.
In my case the problem cannot find file " " in directory polymesh/sets occurred because I ran topoSet with file compression activated in the controlDict and it just didn't recognize the file because of the format. When running topoSet with file compression off this error desappears.
I use OF 2.1.1 , and there is no directory with the name of "windSimpleFoam" or "simpleWindFoam". It seems such solver does not exist anymore. In addition, turbineSiting tutorial is located in "simpleFoam" directory.
Does it mean that simpleWindFoam has been removed in OF 2.1.1 ?
If so, can I use simpleFoam for my case in which I have to study a wind turbine (actuator disk) in a wind park?
it has been removed :)
it was in OpenFOAM-2.0.1 if you are interested in, but in latest version it has been removed!
look for MRFSimple cases, i think it would help you.
MRFSimleFoam can be applied for non-newtonian folws which does not match my case (wind flow) unfortunately.
Do you know if in simpleFoam we can put a rotating mesh field like a wind turbine?
whats your mean?
MRFSimple can be applied both on newtonian and non-newtonian flow!
also you can use pimpleDyMFoam, if you want moving Mesh
I would see that. Thanks for your advise.
|All times are GMT -4. The time now is 15:56.|