CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (https://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   [snappyHexMesh] multiple regions (https://www.cfd-online.com/Forums/openfoam-meshing/112637-multiple-regions.html)

Tobi February 1, 2013 10:59

multiple regions
 
2 Attachment(s)
Hello all,

I have a new problem. Well lets say not a new but an old new problem. I want to mesh the domain shown in the attachement.

There are two STL file. One for the water and on for the solid region.

Now I want to mesh the geometry with sHM and write out the "two" regions.

As you can see in the picture the water stl is seperated into two single regions and the solid depends on six singel regions.

After meshing with sHM the command checkMesh gives me the following:

Code:

Mesh stats
    points:          1163130
    faces:            3316330
    internal faces:  3274409
    cells:            1076892
    boundary patches: 8
    point zones:      0
    face zones:      2
    cell zones:      2

To get the regions I set the following in the sHM dict:

Code:

        rohr
        {
            // Surface-wise min and max refinement level
            level (2 2);

            faceZone rohr;
            cellZone rohr;
            cellZoneInside inside;
        }
        wasser
        {
            // Surface-wise min and max refinement level
            level (0 0);

            faceZone wasser;
            cellZone wasser;
            cellZoneInside inside;

        }

If I have a look at the meshed geometry with paraFoam I have the two cellZones like I want to have.

CellZone 1 = 2x fluid
CellZone 2 = 6x solid

(attached file)


After splitting the cellZones to regions with
Code:

splitMeshRegions -cellZones
I got 14 regions. every solid region is seperated in a new mesh couse they are not connected to each other.

So my question:

How can I handle that problem?
After splitting my mesh I want to have only the two regions!


I hope that I described my problem properply.

Thanks for every help.
Tobi

wyldckat February 2, 2013 06:00

Hi Tobi,

A quick glance to your post makes me remember an old thread about multi-regions, for which I left a link at the wiki page, namely section 3.2: http://openfoamwiki.net/index.php/Sn...-region_meshes

Best regards,
Bruno

Tobi February 2, 2013 06:02

Quote:

Originally Posted by wyldckat (Post 405603)
Hi Tobi,

A quick glance to your post makes me remember an old thread about multi-regions, for which I left a link at the wiki page, namely section 3.2: http://openfoamwiki.net/index.php/Sn...-region_meshes

Best regards,
Bruno

Thanks Bruno,

i ll have a look at it!

Tobi February 2, 2013 06:36

10000 thanks - works!

:D - now I am the happiest men in the world.

Greate work.

Tobi February 2, 2013 09:40

Well Bruno just one question.

Now I have my case ready, but there is only one boundary as
Code:

oldInternalFaces
Code:

Checking patch topology for multiply connected surfaces ...
    Patch              Faces    Points  Surface topology                 
    defaultFaces        0        0        ok (empty)                       
    inlet              0        0        ok (empty)                       
    outlet              0        0        ok (empty)                       
    mappedOut          0        0        ok (empty)                       
    mappedIn            0        0        ok (empty)                       
    wallWasser          0        0        ok (empty)                       
    wasserToRohre      0        0        ok (empty)                       
    oldInternalFaces    34074    34398    ok (closed singly connected)

How can I set the BC for that?
Sorry I am not familiar with setSet and stuff like that!?

Any suggestions?

wyldckat February 2, 2013 14:15

Hi Tobi,

"oldInternalFaces" is just an old collection of faces, which should no longer be used. In other words, after you split the zones into regions, the main mesh is basically gone. You now have to (only) set the boundary conditions for the regions.

For more information, check the "chtMultiRegion*Foam" tutorials ;)

Best regards,
Bruno

Tobi February 3, 2013 17:40

3 Attachment(s)
Quote:

Originally Posted by wyldckat (Post 405669)
Hi Tobi,

"oldInternalFaces" is just an old collection of faces, which should no longer be used. In other words, after you split the zones into regions, the main mesh is basically gone. You now have to (only) set the boundary conditions for the regions.

For more information, check the "chtMultiRegion*Foam" tutorials ;)

Best regards,
Bruno

Hi Bruno,

well thats not the problem. The problem is, that after splitting the mesh I getting 2 regions again. The step I done befor does not make sence at all if I get again two regions.

Okay a short example:

I want to mesh the region shown in the picture.
The two seperated region should be (after meshing) one region.

After meshing and using your advice I get picture #2
The two blocks are in the cellZone wasser

But if I split my mesh now I get two regions again: each for one block.

- region1: wasser
- region2: domain0


But both regions should be in one!
Do you know what I mean?

Is that possible to do?

Thanks Tobi

wyldckat February 4, 2013 05:23

Hi Tobi,

From your images, it looks like you have 4 regions in total, no matter what. There is no clear indication that the tubes are connected between the two blocks. If the tubes were connected, you should then have 3 regions in total.

If you can share a simpler version of this case, it should be easier to help you.

Best regards,
Bruno

Tobi February 4, 2013 07:10

Hi Bruno

here is my testcase.

After splitting into Regions I get 4 Regions and the region

"wasser" and " domain1" should be together as one region.

Hope it clear now.

As you said, the geometry is not connected. Thats my question at all. Is it possible to get one region with two not connected regions!?


Couse If you have 20 not connected pipes and all has the same properties it would be very very nice to get only one region which contains all 20 pipes.

Thanks for helping.


Testcase Download

wyldckat February 5, 2013 05:23

Hi Tobi,

Good point... now that I think of it, there should be as many zones as tubes...
But from your description, I remembered this groovyBC example: http://openfoamwiki.net/index.php/Co...ing_of_patches - it allows for two separated domains of the mesh to interact with one-another. But I don't remember how exactly it works.

I'll try to look into this the coming weekend... but I hope you manage to figure this out sooner ;)

Best regards,
Bruno

wyldckat February 10, 2013 07:34

Hi Tobi,

OK, I didn't have time to test the following theory, but it should work:
  1. Define the pipes as being part of a single solid. Ditto for the housing blocks.
  2. Generate the mesh using snappyHexMesh and using multi-regions, as shown on "mesh/snappyHexMesh/snappyMultiRegionHeater". The pipes will be defined into a single cell zone region.
  3. Take out the unwanted mesh, following the instructions I mentioned on the 2nd post.
  4. Then... uhm... it depends. You can use createPatch, autoPatch or even snappyHexMesh in a non-refining run, for assigning the patches to the mesh.
Best regards,
Bruno

Tobi February 11, 2013 18:54

Hi Bruno,

I build a new simpler case.
Just wanna mesh three seperated pipes.

1. create background
2. mesh with sHM
3. step in your post #2


then I have my pipes as mesh but without the correct BC.
A new run with sHM to generate the patches is not working.

The other tools "createPatch" or "autoPatch" I ll try but I never done sth. with that commands.

If you know how to create the patches out of the STL files please let me know :rolleyes:


My very easy testcase: www.holzmann-cfd.de/openfoamcases/testCase.tar.gz

Thanks in advance
Tobi


PS: via autoPatch its possible to seperate the patches into "autopatch xx" well ... maybe there is a better solution

Tobi February 12, 2013 18:46

Hi Bruno,

with an additional sHM run without refinement I get some Boundary Faces but not the whole boundary. Its splittet into oldInternalFields and patches created with the additional run.

:( :(

AutoPatch is not working couse its not completely a good surface

wyldckat February 13, 2013 04:40

Hi Tobi,

Only in the coming weekend will I be able to play with this.
But in the mean time, try to first use splitMeshRegions (not sure of the name of the app) and then use autoPatch each region.

Good luck!
Bruno

Tobi February 13, 2013 11:32

Hi Bruno,

I have an idea and I think its working but now I have a strange problem. With checkMesh I get 4 regions but if I split my mesh into my regions I get over 70 regions - most of them just contain 1 - 3 cells.

How can I provide that problem?

Code:

Region    Cells
------    -----
0    57621
1    12473
2    59994
3    201142
4    2
5    3
6    1
7    1
8    1
9    1
10    2
11    2
12    3
13    1
14    2
15    4
16    1
17    2
18    3
19    1
20    3
21    2
22    1
23    1
24    2
25    1
26    1
27    19
28    2
29    15
30    2
31    2
32    2
33    1
34    1
35    2
36    1
37    2
38    1
39    1
40    1
41    2
42    4
43    2
44    2
45    3
46    1
47    2
48    3
49    1
50    3
51    1
52    1
53    1
54    2
55    1
56    1
57    2
58    1
59    1
60    2
61    1
62    1
63    1
64    1
65    2
66    2
67    1
68    1
69    1
70    1
71    1
72    2
73    1
74    2
75    1
76    1
77    1
78    1
79    1


wyldckat February 13, 2013 16:20

Hi Tobi,

Multi-regions is a pain to deal with, at least until we get the hang of it.

OK, hints/details/suggestions:
  1. Make the geometry even simpler, at least for now: use only 3 square'ish pipes. The reason is so that you have a less complex and lighter mesh to experiment with, therefore also avoiding crooked meshes.
  2. If you examine in detail the tutorial "mesh/snappyHexMesh/snappyMultiRegionHeater", you'll see that each block only has one name. The interfaces are automatically derived by splitMeshRegions. Which means that for the first mesh, you should not use the definitions of "inlet" and "outlet", simply keep them all as "walls".
  3. After splitting the mesh regions, you can use changeDictionary for renaming patches, if-and-only-if there are enough regions they can interface with... i.e. in the same way as the tutorial "mesh/snappyHexMesh/snappyMultiRegionHeater".
Good luck!
Bruno

Tobi February 13, 2013 17:08

Quote:

Originally Posted by wyldckat (Post 407682)
Hi Tobi,

Multi-regions is a pain to deal with, at least until we get the hang of it.

OK, hints/details/suggestions:
  1. Make the geometry even simpler, at least for now: use only 3 square'ish pipes. The reason is so that you have a less complex and lighter mesh to experiment with, therefore also avoiding crooked meshes.
  2. If you examine in detail the tutorial "mesh/snappyHexMesh/snappyMultiRegionHeater", you'll see that each block only has one name. The interfaces are automatically derived by splitMeshRegions. Which means that for the first mesh, you should not use the definitions of "inlet" and "outlet", simply keep them all as "walls".
  3. After splitting the mesh regions, you can use changeDictionary for renaming patches, if-and-only-if there are enough regions they can interface with... i.e. in the same way as the tutorial "mesh/snappyHexMesh/snappyMultiRegionHeater".
Good luck!
Bruno


Hi Bruno,

thanks for the hints.
The last problem is gonna be solved by refining the STL mesh!

So first problem solved!

Tobi February 14, 2013 12:35

Hi Bruno,

well everythings works fine with multiregion. Yesterday I meshed a reactor with heatelemnt and steel (3 regions) out of four due to the domain0.

But that was not a problem couse domain0 does not matter. I delete that region and renamed the patches with createPatch.

The only thing that makes the multi region complicated is the fact, that if you have more similar geometries e.g. pipes with same properties but not connected to each other, you ll get several regions for each pipe (but you know that). After sHM you have all pipes in ONE region but by splitting it, it ll be seperated.

Well I think the easiest way is:

1. for every single region you have to build one STL (instead of building one STL for 10 pipes)
2. load everything into sHM
3. Meshing
4. splitting

and then: create a simple script that change all the entries and values you have to change.


I ll do that way now and publish my case here.
Yesterday I had success in doing that way on a other geometry. This one ll be published in a few weeks couse now I am not allowed to publish it.

Tobi

BUT Bruno, thanks for all your help and commitment to help me!

Tobi February 14, 2013 17:04

1 Attachment(s)
Hi Bruno,

do you know how to solve that problem:
--------------------------------------------------------

I made my six pipes and the channel as singel STL and after splitting the mesh I get some little smart domains with one or two cells at the interface between pipes and channel (attachement! <- the two brightness cells)

How can I solve that problem?
Or did anybody else know that problem?

Tobi

wyldckat February 15, 2013 07:18

Hi Tobi,

My guess is that the base mesh needs a little bump in one of the directions, because an edge might be in the wrong place, leading snappy to have difficulties aligning the final mesh onto the surface of the pipes.

The other possibility is the need to improve some of the quality controls for meshing. Don't forget that when meshing all zones, snappy will have to take into account both sides of all surfaces, not just one side!

Use the "Extract Cells by Region" filter on ParaView to diagnose better those odd shaped cells (don't forget to not decompose polyhedra!), where you'll probably see some contortions going on there! It'll be easier this way to assess what quality indicator is having problems there.

Best regards,
Bruno

Tobi February 15, 2013 09:33

Quote:

Originally Posted by wyldckat (Post 408006)
Hi Tobi,

My guess is that the base mesh needs a little bump in one of the directions, because an edge might be in the wrong place, leading snappy to have difficulties aligning the final mesh onto the surface of the pipes.

Best regards,
Bruno

Hi Bruno

thanks for your answer. Can you explain the quoted sentence of you in a other way? What do you mean with "bump" ?

Tobi

wyldckat February 15, 2013 10:24

Hi Tobi,

Quote:

Originally Posted by Tobi (Post 408044)
thanks for your answer. Can you explain the quoted sentence of you in a other way? What do you mean with "bump" ?

Sorry, I should have been more clearer. I meant "by bump" that you should try and shift the edges a few millimetres or centimetres.
You can do this, for example:
  • By adding 1 more cell on each direction in blockMesh.
  • And/or extending or reducing the length of the limits of the base mesh.
Best regards,
Bruno

PS: Moved aerogt3's post to here: http://www.cfd-online.com/Forums/ope...rous-zone.html

Tobi February 15, 2013 13:50

3 Attachment(s)
Hi Bruno

I played a bit with the whole thing.
Here are three pics of the problem zones (red).

Tomorrow I ll try:

- refine the mesh there more
- refine the STL more
- changing snap controls (but what setting?)
- changing mesh quality parameters (but what parameter?)

Tobi

Tobi February 17, 2013 06:05

Hi Bruno


I played a bit with the s ettings but the problem still exists.

To refine the STL does not make any difference. Further more using a accurate cell refinement from (3 3) to (4 4) does not make any differences.

I also tried so make the background cell one or a few cells more to change the lines in that section ... welll - that does not work too.


I played a bit with the snapControls but the problem still occures.
Now I am trying to make a new case in which I am trying something.

If its working I ll let you know it.

wyldckat February 17, 2013 06:41

Hi Tobi,

I forgot to mention this here, but have you tried using SwiftBlock and SwiftSnap to help prepare the mesh? And have you check the presentation "A Comprehensive Tour of snappyHexMesh" for more ideas?

Since yesterday I've been playing around with snappyHexMesh and porous zones and I haven't managed to get very far as well. But I did things manually, i.e. without the help of SwiftBlock and SwiftSnap...

Good luck!
Bruno

Tobi February 17, 2013 07:09

Quote:

Originally Posted by wyldckat (Post 408276)
Hi Tobi,

I forgot to mention this here, but have you tried using SwiftBlock and SwiftSnap to help prepare the mesh? And have you check the presentation "A Comprehensive Tour of snappyHexMesh" for more ideas?

Since yesterday I've been playing around with snappyHexMesh and porous zones and I haven't managed to get very far as well. But I did things manually, i.e. without the help of SwiftBlock and SwiftSnap...

Good luck!
Bruno

Hi Bruno,

I ll have a look at switft* and share my results.
The new case and my new idea is not working. But the meshing in my testcase is been very far ... still there is the problem with the single cells and the additional regions I get.

I know the documentation of sHM and the slides are very good.

Tobi February 19, 2013 10:46

Hi Bruno,

1. I make my backgroundmesh with Salome Meco.
2. I tried everything in:
- changing snapping parameters
- changing all quality parameters
- changing backgroundmesh
- changing refinement levels

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Problem still persists.

If I make a finer mesh in the region of the pipes I get more and more "domains*". A coarsar mesh works better (i dont know why).

I have a setting now in which I only get one cell into a other domain. With these setting I played with the snap and quality parameters. The one cell is there all the time.

At the moment I am out of ideas and `ll leave that topic open.
Maybe I find a day when god tells me the solution :D

Thanks for all your help!

Tobi February 19, 2013 12:37

Hi Bruno and all other guys,

I think I have solved the problem.

If you are using a complex geometry like I do you have to declare all walls which belong to a interface with the same refinement level.

So you have to use STL with regions. I ll test it now with a complexer mesh system but I think its working :) ...

Tobi February 19, 2013 14:48

Perfect!

Code:

created 'test.OpenFOAM'
created 'test{domain0}.OpenFOAM'
created 'test{kanal1}.OpenFOAM'
created 'test{kanal2}.OpenFOAM'
created 'test{luftkanal}.OpenFOAM'
created 'test{rohr1}.OpenFOAM'
created 'test{rohr2}.OpenFOAM'
created 'test{rohr3}.OpenFOAM'
created 'test{rohr4}.OpenFOAM'
created 'test{rohr5}.OpenFOAM'
created 'test{rohr6}.OpenFOAM'


Tobi February 19, 2013 16:40

1 Attachment(s)
Hi all,

I ll tell you how to mesh a complex geomety with several and seperated regions with snappyHexMesh.


Very important
- - - - - - - - - - - - - - - - - -
like in the snappyMultiRegion tutorial you have to build your STL files with regions. Therefor you should have the interfaces named as a single region in the STL file (e.g. in the attachement).

- The picture I added is important for the "splitMeshRegion -cellZone" command. If you are using one whole STL its possible that you `ll get 10 or more other regions named domain** after splitting.

It doesn't matter to change the snap or quality control settings. To get only the domains you want to have you have to use the STL as region STL.

After that you should set the refinement of the interface to the same levels. With that knowledge you are able to mesh complex gemoetries with snappyHexMesh without creating other domains.

For more information have a look at that complete thread.
My case is avaiable on my homepage soon.


Thanks for all the infos bruno! :)
Tobi

Tobi February 20, 2013 10:01

1 Attachment(s)
Hi everybody & bruno,

I share my complex geometric meshing case with you. In the case you are meshing:

- a hot air pipe
- two cold water channels
- the connection between air/water with solids (steel) by six pipes

At the end you have nine regions and a case you can solve with chtMultiRegionSimpleFoam. Just execute the Run.sh file to build everything by the script (Attachement).


Warning | Important
- - - - - - - - - - - - - - - - - -
My maschine works with 20 GB memory space and while meshing that case I get a total load of about 75%. I reduced the cellrefinement just to see how the meshing process is working but the mesh is not very accurate then.

Anyway be sure you have more then 8 GB memory on your computer to be sure that everything is working fine. Otherwise your computer get overloaded by sHM and I think you know what that means :p



Unfortunately the script is written in germany but I think everyone understand the things I have done.


I will add that tutorial into the OpenFOAM-Wiki SnappyHexMesh for downloading :)


Thanks to all. New experiance and good work.

Download [activated]: http://www.holzmann-cfd.de/index.php...waermetauscher

Tobi

Tobi February 20, 2013 12:58

1 Attachment(s)
Hi all,

at least there is one problem left. I realised that the last few minutes.

Have a look at the picture. Can someone imagine why that is happening?

Problem:

The first pipes above are refined a level more and everything is working.
If I want to refine the pipe with the cutten cells I get problems by splitting the mesh. --> more regions (domain**)...


Hmmmm :confused:

wyldckat February 20, 2013 17:00

Hi Tobi,

Have you tried checking your STL files with OpenFOAM's surfaceCheck? It should give you some diagnostics on the validity of the STL files.

Best regards,
Bruno

Tobi February 20, 2013 18:38

yes everything is fine!

Tobi February 22, 2013 09:41

Hi Bruno,

just set one more cell into the mesh and everything is working now.

Here my Run script:

Code:

#!/bin/bash
./Clean.sh
echo "Feature Edge erzeugen"
surfaceFeatureExtract -includedAngle 130 constant/triSurface/kanal1.stl kanal1  > log.Run
surfaceFeatureExtract -includedAngle 130 constant/triSurface/kanal2.stl kanal2  >> log.Run
surfaceFeatureExtract -includedAngle 120 constant/triSurface/luftkanal.stl luftkanal  >> log.Run
surfaceFeatureExtract -includedAngle 130 constant/triSurface/rohr1.stl rohr  >> log.Run
surfaceFeatureExtract -includedAngle 130 constant/triSurface/rohr2.stl rohr  >> log.Run
surfaceFeatureExtract -includedAngle 130 constant/triSurface/rohr3.stl rohr  >> log.Run
surfaceFeatureExtract -includedAngle 130 constant/triSurface/rohr4.stl rohr  >> log.Run
surfaceFeatureExtract -includedAngle 130 constant/triSurface/rohr5.stl rohr  >> log.Run
surfaceFeatureExtract -includedAngle 130 constant/triSurface/rohr6.stl rohr  >> log.Run

echo "Feature Edge für Paraview konvertieren"
surfaceFeatureConvert constant/triSurface/kanal1.eMesh constant/triSurface/kanal1FeatureEdge.obj >> log.Run
surfaceFeatureConvert constant/triSurface/kanal2.eMesh constant/triSurface/kanal2FeatureEdge.obj >> log.Run
surfaceFeatureConvert constant/triSurface/luftkanal.eMesh constant/triSurface/luftkanalFeatureEdge.obj >> log.Run
surfaceFeatureConvert constant/triSurface/rohr1.eMesh constant/triSurface/rohr1FeatureEdge.obj >> log.Run
surfaceFeatureConvert constant/triSurface/rohr2.eMesh constant/triSurface/rohr2FeatureEdge.obj >> log.Run
surfaceFeatureConvert constant/triSurface/rohr3.eMesh constant/triSurface/rohr3FeatureEdge.obj >> log.Run
surfaceFeatureConvert constant/triSurface/rohr4.eMesh constant/triSurface/rohr4FeatureEdge.obj >> log.Run
surfaceFeatureConvert constant/triSurface/rohr5.eMesh constant/triSurface/rohr5FeatureEdge.obj >> log.Run
surfaceFeatureConvert constant/triSurface/rohr6.eMesh constant/triSurface/rohr6FeatureEdge.obj >> log.Run

echo "Hintergrundnetz erstellen"
ideasUnvToFoam files/blockMesh.unv >> log.Run

echo "Skaliere Hintergrundnetz"
transformPoints -scale "(1000 1000 1000)" >> log.Run

echo "Netz zerlegen"
decomposePar >> log.Run

echo "Vernetzen"
mpirun -np 8 snappyHexMesh -parallel >> log.Run

echo "Netz zusammenfügen"
reconstructParMesh -latestTime -mergeTol 1e-6 >> log.Run

echo "Prozessorordner löschen"
rm -rf processor*

echo "Netz in Regionen splitten"
splitMeshRegions -cellZones >> log.Run

echo "Nicht benötigte Zonen löschen"
rm -r 3/domain0

echo "Regionen verschieben"
mv 3/* constant

echo "Patches der Regionen ändern"
cp files/createPatchDict.kanal1 system/kanal1/createPatchDict
cp files/createPatchDict.kanal2 system/kanal2/createPatchDict
cp files/createPatchDict.luftkanal system/luftkanal/createPatchDict
cp files/createPatchDict.rohr1 system/rohr1/createPatchDict
cp files/createPatchDict.rohr2 system/rohr2/createPatchDict
cp files/createPatchDict.rohr3 system/rohr3/createPatchDict
cp files/createPatchDict.rohr4 system/rohr4/createPatchDict
cp files/createPatchDict.rohr5 system/rohr5/createPatchDict
cp files/createPatchDict.rohr6 system/rohr6/createPatchDict

createPatch -region kanal1 -overwrite >> log.Run
createPatch -region kanal2 -overwrite >> log.Run
createPatch -region luftkanal -overwrite >> log.Run
createPatch -region rohr1 -overwrite >> log.Run
createPatch -region rohr2 -overwrite >> log.Run
createPatch -region rohr3 -overwrite >> log.Run
createPatch -region rohr4 -overwrite >> log.Run
createPatch -region rohr5 -overwrite >> log.Run
createPatch -region rohr6 -overwrite >> log.Run

echo "Patchtypen ändern"
cp files/changeDictionaryDict.kanal2 system/kanal2/changeDictionaryDict

changeDictionary -region kanal2 >> log.Run

echo "Numerische Schemen und Verfahren aktualisieren"
cp files/fvSolution.kanal system/kanal1/fvSolution
cp files/fvSolution.kanal system/kanal2/fvSolution
cp files/fvSchemes.kanal system/kanal1/fvSchemes
cp files/fvSchemes.kanal system/kanal2/fvSchemes
cp files/fvSolution.luftkanal system/luftkanal/fvSolution
cp files/fvSchemes.luftkanal system/luftkanal/fvSchemes
cp files/fvSolution.rohr system/rohr1/fvSolution
cp files/fvSolution.rohr system/rohr2/fvSolution
cp files/fvSolution.rohr system/rohr3/fvSolution
cp files/fvSolution.rohr system/rohr4/fvSolution
cp files/fvSolution.rohr system/rohr5/fvSolution
cp files/fvSolution.rohr system/rohr6/fvSolution
cp files/fvSchemes.rohr system/rohr1/fvSchemes
cp files/fvSchemes.rohr system/rohr2/fvSchemes
cp files/fvSchemes.rohr system/rohr3/fvSchemes
cp files/fvSchemes.rohr system/rohr4/fvSchemes
cp files/fvSchemes.rohr system/rohr5/fvSchemes
cp files/fvSchemes.rohr system/rohr6/fvSchemes

echo "Zeitornder vorbereiten"
rm -rf 1 2 3
cp -r 0.org 0
cd 0
cp -r rohr rohr1
cp -r rohr rohr2
cp -r rohr rohr3
cp -r rohr rohr4
cp -r rohr rohr5
mv  rohr rohr6
cd ..

echo "Update der Einträge von rohr.*"
sed -i s/rohr_to_kanal/rohr1_to_kanal2/g 0/rohr1/T
sed -i s/rohr_to_kanal/rohr2_to_kanal1/g 0/rohr2/T
sed -i s/rohr_to_kanal/rohr3_to_kanal2/g 0/rohr3/T
sed -i s/rohr_to_kanal/rohr4_to_kanal1/g 0/rohr4/T
sed -i s/rohr_to_kanal/rohr5_to_kanal2/g 0/rohr5/T
sed -i s/rohr_to_kanal/rohr6_to_kanal1/g 0/rohr6/T
sed -i s/rohr_to_l/rohr1_to_l/g 0/rohr1/T
sed -i s/rohr_to_l/rohr2_to_l/g 0/rohr2/T
sed -i s/rohr_to_l/rohr3_to_l/g 0/rohr3/T
sed -i s/rohr_to_l/rohr4_to_l/g 0/rohr4/T
sed -i s/rohr_to_l/rohr5_to_l/g 0/rohr5/T
sed -i s/rohr_to_l/rohr6_to_l/g 0/rohr6/T

echo "Vorbereitung für Paraview"
paraFoam -touchAll

echo "Physikalische Daten vorbereiten"
cp files/g  constant/kanal1
cp files/g  constant/kanal2
cp files/g  constant/luftkanal*
cp files/RASProperties.kanal constant/kanal1/RASProperties
cp files/RASProperties.kanal constant/kanal2/RASProperties
cp files/RASProperties.luftkanal constant/luftkanal/RASProperties
cp files/turbulenc* constant/kanal1
cp files/turbulenc* constant/kanal2
cp files/turbulenc* constant/luftkanal
cp files/radiation* constant/kanal1
cp files/radiation* constant/kanal2
cp files/radiation* constant/luftkanal
cp files/solid* constant/rohr1
cp files/solid* constant/rohr2
cp files/solid* constant/rohr3
cp files/solid* constant/rohr4
cp files/solid* constant/rohr5
cp files/solid* constant/rohr6
cp files/thermophysicalProperties.kanal constant/kanal1/thermophysicalProperties
cp files/thermophysicalProperties.kanal constant/kanal2/thermophysicalProperties
cp files/thermophysicalProperties.luftkanal constant/luftkanal/thermophysicalProperties

echo "PolyMesh Ordner löschen"
rm -r constant/polyMesh

echo "Netz zurückskalieren"
transformPoints -scale "(0.001 0.001 0.001)" -region kanal1 >> log.Run
transformPoints -scale "(0.001 0.001 0.001)" -region kanal2 >> log.Run
transformPoints -scale "(0.001 0.001 0.001)" -region luftkanal >> log.Run
transformPoints -scale "(0.001 0.001 0.001)" -region rohr1 >> log.Run
transformPoints -scale "(0.001 0.001 0.001)" -region rohr2 >> log.Run
transformPoints -scale "(0.001 0.001 0.001)" -region rohr3 >> log.Run
transformPoints -scale "(0.001 0.001 0.001)" -region rohr4 >> log.Run
transformPoints -scale "(0.001 0.001 0.001)" -region rohr5 >> log.Run
transformPoints -scale "(0.001 0.001 0.001)" -region rohr6 >> log.Run

echo "Simulationsfall zur Simulation bereit
Befehl >> chtMultiRegionSimpleFoam > log &"

Everything is build automatically in that script. I think some commands or the way I do a few things is unconfortable but in a way everyone will understand :)


I upload the file in a few minutes

Tobi February 22, 2013 11:07

Finished
 
Okay now it's gonna be a monolog :)


1. Download Link activated above.
http://www.holzmann-cfd.de/index.php...waermetauscher

2. Reduce the mesh refinements to reduce the memory load

3. Updated the openfoamwiki with that link


Enjoy

Kind regard
Tobi

Haces April 4, 2013 06:27

add layers
 
1 Attachment(s)
Hi!!

I need some help!

I want to add layers to a multi-region case, in the interface between the water and the pipes. You can see the geometry in the attached document. The grey parts are the pipes and the blue part is the water.

I was able to create the castellated mesh and snap it in the multi-region case. I can also add layers if I am working only with the water. The problem is that snappyHexMesh doesn't recognize the boundaries between the surfaces when is working with several STL files.

What I thought to solve this problem is to:

Option 1:
1-Create the mesh without layers using several STL files.
2-Split the mesh with splitMeshRegions.
3-Add layers only to the water.
4-Put everything again together.
5-Eliminate the domains I don't want since the geometry is complex and blockmesh is a prism.

The step number 4 I don't know how to do it. I've thought using stitchMesh or mergeMeshes but i don't know if it will work to create a multi-region mesh.

Option 2:
Adding layers using only one STL file but the result won't be a multi-region case any more. Is possible to generate a multiregion case from only one STL file?


Any suggestions in order to help me with the 2 options? Do you have another idea to add layers?

Thanks for your help!

David.

Tobi April 4, 2013 07:01

Hi,

why you want to put the mesh together again ?

Haces April 4, 2013 07:13

Hi toby,

The problem is that if I modify the blockmesh of the water the new points are only in this blockmesh and not in the general blockmesh. Later when I run the cht this is not going to work properly, right? It is a little bit difficult to understand how works the cht solver for me...

Tobi April 4, 2013 07:21

No :)

You can have 1000 faces from fluid_to_solid
and 13000 faces to solid_to_fluid


A lot of people do not use snappy for using several domains.
You can mesh every domain itselfs and connecting them later with the patchType mappedWall.


The points dont have to be at the same possition from mesh1 compared to mesh2.


All times are GMT -4. The time now is 22:09.