CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   Mesh generator with OpenFoam / Urban Design (https://www.cfd-online.com/Forums/openfoam/81300-mesh-generator-openfoam-urban-design.html)

Voyage_gui October 22, 2010 09:17

Mesh generator with OpenFoam / Urban Design
 
Hello,

I'd like to know what the best mesh generator to use with OpenFoam will be. We're planning to use this CFD solver for wind study (in LES) and I don't find any people using this software in Urban environnement. My CAD file are .stl .

Regards

eugene October 25, 2010 09:59

The built-in mesher in FOAM should be fine for your purposes: snappyHexMesh.

Voyage_gui October 25, 2010 10:12

Thks you for answer.
Are you using snappyHexMesh as mesh program ? I've just tried today the tutorial for the motorbike, it seems not easy for complex building such as stadium or large district. Could you define easily where you want to refine ?
Regards

val46 October 26, 2010 02:20

Hi,
have you read the sHM section in the user guide? It provides good information about the meshing process.

To answer your question:
You can define refinement areas (called "refinementBox" in the snappyHexMeshDict of the motorbike tutorial)

Regards,
Toni

Voyage_gui October 26, 2010 08:22

Hi Val46,
I haven't yet started with the user guide. I've just run the motorbike case and read (too) fast the snappyhexMeshDict. I'll spend more time with this tool.
Do you still think I can reasonably use sHM for industrial case ? Is it an efficient tool for complex geometries ?

val46 October 26, 2010 08:36

I'm not that experienced with OF (Just using it for 3 months now).
But I would say it should be a useful tool for your case.
Don't expect to get used to it within one week though.

Voyage_gui October 26, 2010 08:49

That's fast anwer, thanks a lot.
I'll insist a little bit more. Not sure to have enough patience nevertheless.
Are you working in Urban design using OF and sHM?

val46 October 26, 2010 09:23

No, I'm using sHM for cases similar to the motorbike tutorial.

Voyage_gui October 26, 2010 09:26

Ok, I appreciate your help.

colinB October 26, 2010 10:11

Hi Voyage_gui

I've been working with sHM for the past 2 month and I'm still not through every detail of the sHMD.
However in principal sHM should be capable dealing with the problems you have.
I'm using sHM for modeling problems with 2 or more axis of deformation e.g. ship hull surfaces. Again in general you can say sHM can deal with it, but you need a proper stl file.
As soon as you don't have a solid as stl you reach the limits of sHM.
Also if you have sharp edges they aren't modeled very good, not to say bad. For me this is of minor importance for I have to deal with smooth forms anyway.
Nevertheless you can determine refinement regions as mentioned above or you define different areas in your stl file which then will be imported to sHM and then separately can be refined, as you like.
I also know that other companies are using sHM for modeling also for highly complex structures e.g. p-brackets.
If you have some more questions on it don't hesitate to ask me I try to help as far as I can

regards
Colin

Voyage_gui October 27, 2010 03:27

Hi ColinB,
Thanks a lot for your advice. I see that you are dealing too with complex geometry and that's a good news. Could i ask you from a stl file, how long does it take you to fully mesh let's say for a ship hull surfaces ? A couple hours , a day ?
Nevertheless you pointed out a really problematic issue for my stl file. In many of my cases, i have on building sharp edge (such as roof, ridge of building ...). According of your post, I should spend some time to smooth them with a CAD software ?
Regards
Guillaume

colinB October 27, 2010 07:39

Hi Guillaume

it is hard to tell how long the whole process takes. I get .iges files from the system
which are comparatively good and I manly have to fix some patches with salome.
After that I build a solid with salome and export it to a .stl file.
To get so far I would say it takes me 2-3h, but I also have to mention, that I'm still new to salome as well and don't have routine and the work is done by lots of tries and errors.

Then I go to sHM and basically just hand over the .stl file. Since we have standardized procedures I usually don't have to adjust any parameters in the sHMD and immediately can run sHM. The same for blockMesh, but earlier to create the background mesh.
It takes about 20-30 min for a 1.7M cell mesh to generate. (Assuming you don't have to change parameters in sHMD)
So in total it takes may be ~4h +- to generate a mesh including some breaks and interruptions ;)

Smoothening is actually done by sHM but the question is, do you like that?
compare here the user tutorial. the car geometry in the beginning has clear edges and
in the end it has a smooth surface. As I told you for me thats not an issue for I prefer smooth surfaces.

I hope I could help you
regards Colin

7islands October 27, 2010 11:57

Hi Guillaume,
Just to get you an idea, my colleague has done a superb job in meshing an urban area with sHM. In his presentation slides are slides 13-15 for geometry in STL and slides 18-20 for the meshes (about 15 million cells, ran sHM in 16 cpu parallel). The mesh in slide 18 may seem rugged but it's because the elevation was reproduced accurately from aerial laser scanned geographical data. They are staircased (not body-fitted, I heard that was because convergence was better), however in turn retain sharp edges.

Takuya

Voyage_gui October 28, 2010 08:12

Thanks a lot ColinB and 7Islands

ColinB : half a day of work for meshing your case is the order of time that i would like to spend. I need now to spend some time on sHM.Thanks a lot for your answer.

7islands : I'm really impressed by your colleague's work. It's more or like what i'd like to achieve. I have several questions to ask him if you can transmit him (or by email?):

- from a clean CAD file (after post-processing of aerial laser scanned geographical data), how long did it take him to mesh the whole district ?

- Did it mesh with constant space interval in the whole domain ? Was it easy to refine closed to the building ?

- I've seen that he worked in RANS (RNG k-epsilon). Did it try to compute using LES (or DES) instead of RANS ?

- Does he have any papers regarding urban design ?

Thanks a lot for both of your answers

elvis October 29, 2010 02:46

Hi Guillaume

read this http://www.cfd-online.com/Forums/ope...-openfoam.html
or
http://www.cfd-online.com/Forums/ope...tml#post260727

what Eugene did not mention his former employer Icon also had an example of Terrain meshing in that presentation
http://openfoamfoorumi.com/wordpress...ON_v1.3mod.pdf

kroetenechse October 29, 2010 05:25

Hi Guillaume,

canīt you get the CAD files as .stp-datas? For meshing, I use first netgen to mesh the surface, after that I use blender to work on the geometry, then give it to engrid to mesh the inner side. From engrid i can give it to OF as an OF case. Did hear something of this way?

hope, i could help you.
phil

7islands October 29, 2010 12:20

Hi Guillaume,
I had a chat with him and he said he'll come to this thread to reply. However he's busy right now so in the meantime I'd give brief answers to your 2nd and 3rd points where I have info:

Quote:

Originally Posted by Voyage_gui (Post 281172)
- Did it mesh with constant space interval in the whole domain ? Was it easy to refine closed to the building ?

The cell sizes of the meshes were 8m high above the ground and gradually refined to 1m around the buildings except for 25cm around the building of interest, which is shown as blued out volumes in the slides due to too dense mesh lines.

Quote:

Originally Posted by Voyage_gui (Post 281172)
- I've seen that he worked in RANS (RNG k-epsilon). Did it try to compute using LES (or DES) instead of RANS ?

Yes he did. In slides 38 and 39 of his another presentation you can see the snapshots of the LES computation.

Takuya

eugene November 2, 2010 03:56

Oh yes, I forgot about Chicago. However, the version of snappy that made that mesh is not freely available, so there is little point in pointing to it as an example.

Voyage_gui November 2, 2010 12:39

Hi everyone, sorry i was off for some time.

Elvin & Eugene : Thanks a lot for the presentation of your case in Chicago. It's exactly what i'd like to achieve with DES simulation. It is said page 8 that company Icon develop their in-house mesh-generator. How efficient this tool can be for the mesh cleaning ? How about the sharp edge, any problem with this tool? Is there some equivalient free tool that we heart about than we can save you time for the meshing process?

7islands : Thks for the LES presentation. Too bad i don't know japanese (by any chance same document in English?). Was he satisfied by the result of the DES simulation (any exp. measure to compare with) ?

Kroetenechse : Thks for sharing your methodology. Never heard about those CAD tools before. Are they free/easy to use ?

Guillaume

elvis November 3, 2010 15:48

hi,
i saw
http://openfoamwiki.net/index.php/Ma...banAreaNiigata
http://openfoamwiki.net/index.php/Ma...ngInCityBlocks

maybe it is of use

elvis

7islands November 4, 2010 06:56

We are in the process of validating OpenFOAM against other CFD codes, wind tunnel tests and field measurements using benchmarking test cases defined by a Japanese academic society (or its journal article if you prefer paper form) for urban wind environment predictions. If you follow the link you'll find 8 cases, cases A - H, simulating urban environments with varying reality, ranging from simple blocks to realistic urban terrains. Among those we have finished cases A - F, and in the process of publishing the case data so that any OpenFOAM users can reproduce our results. The test cases Elvis mentionedare cases E and D respectively which my colleague (the author of the aforementioned presentation slides) has just published. We should be able to publish other cases as well shortly, among them cases E and F are realistic sHM cases enough to get an idea about how sHM works for urban terrains.

Takuya

imano November 8, 2010 07:47

Hi Guillaume,

I'm sorry for late reply.

I'd like to answer your 1st and 4th questions (thanks a lot Takuya for
answering 2nd and 3rd)

Quote:

Originally Posted by Voyage_gui (Post 281172)
- from a clean CAD file (after post-processing of aerial laser scanned geographical data), how long did it take him to mesh the whole district ?

It takes about one hour in 16 cpu parallel as listed below:

blockMesh (in single): 1 min.
decomposePar (in single): 1 min.
snappyHexMesh (in 16 cpu parallel): 40 mins.
reconstructParMesh (in single): 17 mins.

Quote:

Originally Posted by Voyage_gui (Post 281172)
- Does he have any papers regarding urban design ?

My English papers for CFD prediction of urban environment are very few so
far, but have a look at e.g.:

http://dl.dropbox.com/u/3609076/Vent...per_ver.2_.pdf
http://dl.dropbox.com/u/3609076/Vent...2009100201.pdf

Quote:

Originally Posted by Voyage_gui (Post 281884)
7islands : Thks for the LES presentation. Too bad i don't know japanese (by any chance same document in English?). Was he satisfied by the result of the DES simulation (any exp. measure to compare with) ?
Guillaume

There is no English document for this presentation, sorry.
Moreover I couldn't validate LES or DES simulation since I didn't have
any measurement data to compare with in this case.

As Elvis and Takuya mentioned in previous posts, I uploaded
OpenFOAM tutorial cases which predict urban wind environment and
validate with wind tunnel measurement data.
Though these cases use RAS model as turbulent model, but it's easy to
change it to VLES or DES if you share the mesh for the RAS calculation.
So please try validating these benchmark tests with VLES or DES model
and report the results if you have spare time :)

Masashi

izna October 9, 2013 01:51

hello..

I am hijacking this post.
I am simulating a flow over an urban area, but i am working in 2D, i am obtaining convegence with simpleFOam but when view in paraview its as if no wind has enter my domain..

Can you please advice me on the boundary conditions used? I tried SLip and inletoutlet all in vain...

I am using RAS model, with GAMG solver .

My east side of domain is inlet and the three remaining sides ie north south and west are outflow where my wind is supposed to go ...
But i need help in the boundarycondition..

kind regards
izna

julien.decharentenay October 9, 2013 21:36

Izna,

Probably best to create a new post for your question...

Can you post your U and p directory?

Julien

izna October 10, 2013 00:43

hi.. thanks a lot for the reply.. below is my u and p dire.. also sides means the north and south sides... its in 2D

Quote:

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 1 -1 0 0 0 0];

internalField uniform (0 0 0);

boundaryField
{
wall
{
type fixedValue;
value uniform (0 0 0);
}
outflow
{
type zeroGradient;

}

inlet
{
type fixedValue;
value uniform (-4 0 0);
}
sides
{
type fixedValue;
value uniform (0 0 0);
}

frontAndBackPlanes
{
type empty;
nFaces 67650;
startFace 68115;
}
}

// ************************************************** *********************** //
Quote:

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

dimensions [0 2 -2 0 0 0 0];

internalField uniform 0;

boundaryField
{
wall
{
type zeroGradient;
}
outflow
{
type fixedValue;
value uniform 0;
}

inlet
{
type zeroGradient;
}

sides
{
type zeroGradient;
}
frontAndBackPlanes
{
type empty;
nFaces 67650;
startFace 68115;
}
}

// ************************************************** *********************** //

julien.decharentenay October 10, 2013 01:40

Thanks. Nothing obviously wrong with the two files. Can you send some more information (mesh, solver output, screenshot)?

izna October 10, 2013 02:40

hi.. meshwas done in Gambit.. converted to FOam..
solver PCG i am putingh FV solution here

Quote:

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.1.1 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0.1;
}

pFinal
{
solver PCG;
preconditioner DIC;
tolerance 1e-06;
relTol 0;
}

U
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}

k
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}

epsilon
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}

R
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}

nuTilda
{
solver PBiCG;
preconditioner DILU;
tolerance 1e-05;
relTol 0;
}
}

SIMPLE
{
nNonOrthogonalCorrectors 0;

residualControl
{
p 1e-2;
U 1e-3;
"(k|epsilon|omega)" 1e-3;
}
}
residualControl
{
p 1e-3;
U 1e-4;
"(k|epsilon|omega)" 1e-3;
}


// ************************************************** *********************** //

each time after certain number of iterations i obtain my program is crashing..hence one picture which i was able to view before crashing.. you can clearly see that in thsi pic, thhe simulations was partly stopped...

izna October 10, 2013 02:44

we can see it has not simulated to convergence.. but how to make it converge without crashing???

izna October 10, 2013 05:05

when i do the BC as symmetryPlane i obtain the errors...

Quote:


Create time


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
--> FOAM Warning :
From function Field<Type>::Field(const word& keyword, const dictionary&, const label)
in file /home/opencfd/OpenFOAM/OpenFOAM-2.2.1/src/OpenFOAM/lnInclude/Field.C at line 262
Reading "/home/izna/Desktop/y/0/k" from line 18 to line 54
expected keyword 'uniform' or 'nonuniform', assuming deprecated Field format from Foam version 2.0.
kEpsilonCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
sigmaEps 1.3;
}


No finite volume options present




SIMPLE: convergence criteria
field p tolerance 0.01
field U tolerance 0.001
field "(k|epsilon|omega)" tolerance 0.001




Starting time loop


Time = 1


DILUPBiCG: Solving for Ux, Initial residual = 1, Final residual = 3.07582883344e-05, No Iterations 1001
DILUPBiCG: Solving for Uy, Initial residual = 1, Final residual = 9.95605000958e-06, No Iterations 301
DICPCG: Solving for p, Initial residual = 1, Final residual = 0.0999726835198, No Iterations 584
time step continuity errors : sum local = 29.8522772566, global = -0.0024880751966, cumulative = -0.0024880751966
DILUPBiCG: Solving for epsilon, Initial residual = 0.999913801056, Final residual = 1.00016301843, No Iterations 1001
bounding epsilon, min: -219.225697355 max: 207.638755413 average: 0.998265362431
DILUPBiCG: Solving for k, Initial residual = 1, Final residual = 1.13408135894e+12, No Iterations 1001
bounding k, min: -4.17424118765e+16 max: 8.29450514701e+16 average: -1.52614847385e+12
ExecutionTime = 424.6 s ClockTime = 425 s


Time = 2


DILUPBiCG: Solving for Ux, Initial residual = 0.801813491704, Final residual = 0.801813491704, No Iterations 1001
DILUPBiCG: Solving for Uy, Initial residual = 0.659490592026, Final residual = 0.659490592026, No Iterations 1001
DICPCG: Solving for p, Initial residual = 0.999998931991, Final residual = 2762872.03121, No Iterations 1001
time step continuity errors : sum local = 7.05385314245e+12, global = 12013.6485228, cumulative = 12013.6460347
DILUPBiCG: Solving for epsilon, Initial residual = 0.246233904231, Final residual = 369.290447986, No Iterations 1001
bounding epsilon, min: -1.8042009224e+36 max: 6.34190622628e+35 average: 2.79678186829e+31
DILUPBiCG: Solving for k, Initial residual = 1.62772660345e-13, Final residual = 1.62772660345e-13, No Iterations 0
ExecutionTime = 814.39 s ClockTime = 816 s


Time = 3


#0 Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam221/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#1 Foam::sigFpe::sigHandler(int) in "/opt/openfoam221/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#2 Uninterpreted:
#3 Foam::DILUPreconditioner::calcReciprocalD(Foam::Fi eld<double>&, Foam::lduMatrix const&) in "/opt/openfoam221/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#4 Foam::DILUPreconditioner::DILUPreconditioner(Foam: :lduMatrix::solver const&, Foam::dictionary const&) in "/opt/openfoam221/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#5 Foam::lduMatrix::preconditioner::addasymMatrixCons tructorToTable<Foam::DILUPreconditioner>::New(Foam ::lduMatrix::solver const&, Foam::dictionary const&) in "/opt/openfoam221/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#6 Foam::lduMatrix::preconditioner::New(Foam::lduMatr ix::solver const&, Foam::dictionary const&) in "/opt/openfoam221/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#7 Foam::PBiCG::solve(Foam::Field<double>&, Foam::Field<double> const&, unsigned char) const in "/opt/openfoam221/platforms/linuxGccDPOpt/lib/libOpenFOAM.so"
#8
in "/opt/openfoam221/platforms/linuxGccDPOpt/bin/simpleFoam"
#9
in "/opt/openfoam221/platforms/linuxGccDPOpt/bin/simpleFoam"
#10
in "/opt/openfoam221/platforms/linuxGccDPOpt/bin/simpleFoam"
#11
in "/opt/openfoam221/platforms/linuxGccDPOpt/bin/simpleFoam"
#12 __libc_start_main in "/lib/i386-linux-gnu/libc.so.6"
#13
in "/opt/openfoam221/platforms/linuxGccDPOpt/bin/simpleFoam"
Floating point exception (core dumped)


julien.decharentenay October 10, 2013 21:25

Izna,

What is your question/request for assistance?

Your post 9.10:
Quote:

i am obtaining convegence with simpleFOam but when view in paraview its as if no wind has enter my domain
Your post 10.10:
Quote:

we can see it has not simulated to convergence.. but how to make it converge without crashing???

izna October 11, 2013 03:45

1 Attachment(s)
i am sorry.. its just i am trying a lot of different solvers..

My question is i want to obtain a velocity start from the east side of my domain.. but i am obtaining the followig picture..:(

julien.decharentenay October 12, 2013 07:00

No drama. It is getting clearer. I can't see anything wrong from the dictionary, but have to admit that I have not done 2D simulations... So there are a few of the "tricks" that I do not know.

Could you post a link to a complete case for download and try?

izna October 12, 2013 07:39

yesh am going to send a link..thnaks heaps Julien..

julien.decharentenay October 13, 2013 06:23

Hi Izna,

Thanks for sending the case through. It helps - even though I have not tried to run the model. Below are two suggestions:

1) North and South boundaries:

In your setup, these are defined as "outlet" boundary conditions. I understand that you are using this approach as you would like to allow for exit/re-entry of fluid. This set of condition is what creates in your case the high in-velocity observed in the picture.

My recommendation is to change these conditions to symmetry (for the north and south faces only). If you are concerned about flow exit/re-entry, you can evaluate the impact of the domain size (in width) on the variable of interest by doubling the domain size in the width direction.

2) West boundary condition:

The setup is a zero velocity gradient and zero pressure. I personally prefer to change it to an inlet/outlet setup where the backflow velocity is specified as zero. It operates as the outlet you defined as long as the flow is going out, but prevent backflow. I found this approach more stable. Although this may have some impact, the above suggestion should be sufficient.

Let me know if you try any of the above and if they work (as a separate thread).

izna October 13, 2013 13:11

hello Julien
http://www.cfd-online.com/Forums/ope...tml#post456673


this is the new thread please do check.

:(

izna

Mark JIN September 20, 2016 23:19

Hey Guys, your discussions are really helpful, thanks!


All times are GMT -4. The time now is 01:39.