CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM (http://www.cfd-online.com/Forums/openfoam/)
-   -   irregular model simulation with chtMultiregionFoam (http://www.cfd-online.com/Forums/openfoam/106545-irregular-model-simulation-chtmultiregionfoam.html)

lg88 August 31, 2012 11:24

irregular model simulation with chtMultiregionFoam
 
1 Attachment(s)
Hello everyone
I am simulating a turbulence and heat transfer problem with chtMultiregionFoam.But the geometrical model is irregular.It looks like the picture I attached.I have used chtMultiregionFoam before but with simple model only ,like rectangular duct flow.So I just know how to deal with the simple model which I can assign different fields in the file named makeCellSets.setSet easily. Can you tell me how to assign the different domains with complex geometrical model?The meshes I used are generated with ICEM.

Thank you very much!
regards!


lg88

wyldckat September 1, 2012 08:44

Hi lg88,

Well... since the mesh is coming from somewhere else, you'll need some form of identification coming from the ICEM's side.

So it really depends on how far you've gotten right now. Are you able to export and convert the whole and complete mesh to OpenFOAM? Or are you exporting in parts?

You can use STL surfaces to help isolate the zones for each volume and then use surfaceToPatch.
Then work from there with setSet or topoSet.

If the meshes come in separate volumes, you'll have to use mergeMesh at some point... either before or after the sets have been defined.

Good luck!
Bruno

lg88 September 1, 2012 09:51

Hi Bruno

Yes ,I have exported and converted the whole and complete mesh to OpenFOAM.But if necessary I think I can exported the mesh in parts also.

Code:

You can use STL surfaces to help isolate the zones for each volume and then use surfaceToPatch.
Then work from there with setSet or topoSet.

It is a little difficult for me to understand.What does STL surfaces mean?
How to use surfaceToPatch and setSet or topoSet?

Can you tell me where can I obtain relative tutorials or information about that?

Thank you very much!

lg88

wyldckat September 2, 2012 04:33

Hi lg88,

Have you never used snappyHexMesh? STL is the usual file format for 3D geometries, which was the first format used with snappyHexMesh in the famous "motorBike" tutorial. You can find such STL files being used with snappyHexMesh in the tutorial "heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater".

Run the following commands to see tutorials that use topoSet, createPatch and so on:
Code:

find $FOAM_TUTORIALS -name topoSetDict
find $FOAM_TUTORIALS -name createPatchDict

Study each tutorial and you'll get an idea of how things can be done.

As for surfaceToPatch, it should be intuitive after you understand the other tutorials, specially if you check the arguments it expects:
Code:

surfaceToPatch -help
Best regards,
Bruno

lg88 September 2, 2012 06:10

Hi Bruno
Yes,I have never used snappyHexMesh.The mesh I used before was generated by ICEM.And I will look into the tutorials which you suggested.
By the way,
Code:

If the meshes come in separate volumes, you'll have to use mergeMesh at some point...
Do you mean that if I already have two or more separated meshes,then I can use mergeMesh to merge them at some point?What points do you mean and how to merge them?Can you tell me in details?Thank you very much!

regards

lg88

wyldckat September 2, 2012 07:33

Hi lg88,

I wrote "at some point", in the sense of bullet points. The steps I imagined were:
  • Export mesh from ICEM as separate volumes.
  • Define cells for each volume as a particular cell zone.
  • Merge the meshes.
The last point could come in second...



As for mergeMeshes: unfortunately I've never understood it very well either. All I know is that mergeMesh will place the requested meshes into the same mesh space, but it will not attach faces automatically. Here's the page at openfoamwiki.net: http://openfoamwiki.net/index.php/MergeMeshes

Good luck!
Bruno

lg88 September 4, 2012 07:56

Hi Bruno
Can you tell me how to define cells for each volume as a particular cell zone?The second step that you told me to do.I just give them different region names and put them at different folders as the folder structure in chtMultiRegionHeater.

regards!

lg88

wyldckat September 4, 2012 14:59

Hi lg88,

OK, let's try to do this in steps then. Here's what I'm going to ask you to do:
  1. Create a very simple geometry, conceptually similar to what you're trying to do now. For example, a cylinder with a solid meshed wall; which would mean it would have 2 meshes: the internal mesh of the cylinder and the mesh of the wall of the cylinder.
  2. Export the mesh to OpenFOAM in two types:
    1. Both volumes in a single mesh.
    2. Separate meshes.
  3. Additionally, export the original geometry as 2 well defined STL files:
    1. One that has the internal cylinder;
    2. Another that has the wall cylinder.
After you've got these prepared, compress them into a single tar.gz file and share it with us or you can send a link to me via private message. You can use Dropbox or some other file sharing site.

This way it'll be easier to explain how to do it, namely with a practical example.

Best regards,
Bruno

Kumudu December 22, 2013 05:45

1 Attachment(s)
[Moderator note: The following quote is a group of posts that were moved from this thread: http://www.cfd-online.com/Forums/openfoam-solving/123840-heattransfer-pipe-using-chtmultiregionfoam.html]
Quote:

I have to simulate the similar problem you posted. I want to simulate a temperature field when a U-shape pipe is buried a solid. water is circulating through the pipe. Pipe is buried in a cylindrical domain. And again this cylindrical domain is buried in a cube.

I understood you have set constant mass flow rate in the pipe. So, in the case of constant mass flow rate don't I need to define velocity. you have given zero velocity as follows,

Code:

internalField  uniform (0 0 0);

 boundaryField
 {
  water_inlet
            {
            type            flowRateInletVelocity;
            volumetricFlowRate 0.1;
            value          uniform (0 0 0);
            }

So, if I have to 10m/s uniform velocity in the inlet with constant mass flow rate throughout the pipe, how should I give b.c.


Also, I couldn’t find the topoSet dictionary in the folder "laminar". I am curious about, how to define a U-shape pipe using topoSet.

Since, my pipe diameter is 32 mm (outer) and 23 mm (inner), and pipe is in the 1m*1m*40m cubic domain, I couldn’t define this region. It gives me killed command.

Also, I want to have a forced convection, not free convection. If I give g=0, is it correct?

I still can't figure it out, how to define inlet and outlet boundary condition for U-pipe, because, I don't know how to define these in the blockMeshDict which is related with topoSet.

----------------------------

Hi Bruno,

I want to learn how to define boundaries of a irregular region. I have a U-shape pipe which is buried in a solid region. I create this U-pipe using the topoSetDict and the blockMesh was defined for the cubic solid region.

Now, I have a problem defining boundaries. In the chtMultiRegionFoam/multiRegionLiquidHeater the boundaries were defined as minX,maxX,minY,maxY, blaaa

But, in my case this is only can be valid for solid. But for the fluid, as I have to give different boundary condition for inlet and outlet of the pipe, I can't understand how to define boundaries. I have attached the schematic of my domain.

Can you give me a hint for this.

Best,
Kumudu

wyldckat December 26, 2013 13:08

Hi Kumudu,

OK, regarding the case set-up, I suggest that you start by studying this very simple tutorial: http://openfoamwiki.net/index.php/Ge..._-_planeWall2D - then start playing with the case configuration, as explained in that tutorial. This will give you more experience than any answer people can give you. In addition, it will give you the sense that you need (and how) to be able validate your simulations.


As for the geometry+mesh, I suggest you should do one step at a time, by starting with a simple example and then gradually add more complexity to it. In summary, I suggest that you follow these steps:
  1. Given the complexity of your model, and assuming you don't need anything more sophisticated than the image you've attached, then learn how to use SwiftBlock: http://openfoamwiki.net/index.php/Contrib/SwiftBlock
  2. Start off by trying to build only the pipe in SwiftBlock. And simulate some fluid flowing inside that pipe.
  3. Then try creating the other part, namely the ground around the pipe. Try using laplacianFoam to simulate some basic heat transfer going through that ground. Keep in mind that you only want to create the mesh for the ground itself.
  4. Once you have created both parts independently and with success, it's possible to merge the two meshes with mergeMesh, along with stitchMesh to stitch the two parts of the mesh. Better yet, it should be possible to do the whole mesh in a single "blockMeshDict", with the help of SwiftBlock.
When you reach step #4, it will be easier to explain to you how you can merge+stitch the two meshes and how to look at the case set-up.

Best regards,
Bruno

Kumudu December 26, 2013 13:21

Quote:

Originally Posted by wyldckat (Post 467739)
Hi Kumudu,

OK, regarding the case set-up, I suggest that you start by studying this very simple tutorial: http://openfoamwiki.net/index.php/Ge..._-_planeWall2D - then start playing with the case configuration, as explained in that tutorial. This will give you more experience than any answer people can give you. In addition, it will give you the sense that you need (and how) to be able validate your simulations.


As for the geometry+mesh, I suggest you should do one step at a time, by starting with a simple example and then gradually add more complexity to it. In summary, I suggest that you follow these steps:
  1. Given the complexity of your model, and assuming you don't need anything more sophisticated than the image you've attached, then learn how to use SwiftBlock: http://openfoamwiki.net/index.php/Contrib/SwiftBlock
  2. Start off by trying to build only the pipe in SwiftBlock. And simulate some fluid flowing inside that pipe.
  3. Then try creating the other part, namely the ground around the pipe. Try using laplacianFoam to simulate some basic heat transfer going through that ground. Keep in mind that you only want to create the mesh for the ground itself.
  4. Once you have created both parts independently and with success, it's possible to merge the two meshes with mergeMesh, along with stitchMesh to stitch the two parts of the mesh. Better yet, it should be possible to do the whole mesh in a single "blockMeshDict", with the help of SwiftBlock.
When you reach step #4, it will be easier to explain to you how you can merge+stitch the two meshes and how to look at the case set-up.

Best regards,
Bruno

Dear Bruno,


Thank you very much. I have already done steps up to 3rd . I just have to go through the 4rth step. Thanks again. This means a lot to me.

Best,
Kumudu

wyldckat December 26, 2013 13:29

Quote:

Originally Posted by Kumudu (Post 467741)
Thank you very much. I have already done steps up to 3rd . I just have to go through the 4rth step. Thanks again. This means a lot to me.

:eek: That was quick! ;)

OK, then what exactly do you have?
  1. A single "blockMeshDict" file?
  2. Two "blockMeshDict" files?
Can you share the "blockMeshDict" file(s)? It would make it easier to ascertain what's missing.

Kumudu December 26, 2013 14:49

1 Attachment(s)
Quote:

Originally Posted by wyldckat (Post 467743)
:eek: That was quick! ;)

OK, then what exactly do you have?
  1. A single "blockMeshDict" file?
  2. Two "blockMeshDict" files?
Can you share the "blockMeshDict" file(s)? It would make it easier to ascertain what's missing.

Hi,

I didn't do it right now. I am not that talented:). I did it before.
I created a single blockMesh. And created regions using topoSet.
Since, after topoSet command is run, I ran the command,
splitMeshRegions -cellZones -overwrite.

Now I have more than one block. Only problem I had using multiRegionLiquidHeater tutorial case, is my less knowledge in merging mesh, I guess. I can't understand how to define boundaries as inlet and outlet for the fluid region. Because , I used only one blockMesh.

I am attaching the one pipe case, that I created.I realized that some boundary conditions may be wrong. I will make them correct and upload the corrected one.

I will upload the fluid region having the U-shape created using topoSet. And blockMeshDict (one block). then, you can tell me exactly what should I do to define different boundaries at the blockMesh.

Thank Bruno,

Kumudu

Kumudu December 26, 2013 15:09

Hi Bruno,

I think I have misunderstood the steps. I haven't really go through SwiftBlock properly. I will go through these steps. And let you know. I thought you are saying that make a one fluid region using one pipe.

I am really going crazy with thesis.

Thanks again.

Once I did all these steps, I will posted the new one.

Best,
Kumudu

wyldckat December 26, 2013 15:28

1 Attachment(s)
Hi Kumudu,

This is indeed a nice simple example! Although a bit familiar... looks a bit like the 2D plane wall: http://openfoamwiki.net/index.php/Ge..._-_planeWall2D - but extended to 3D.

You've got at least one problem here, as shown in the attached image "Screenshot from 2013-12-26 19:06:11.jpg", that after running splitMeshRegions, the 3 regions are far from perfect.
You need to better define the boxes in "topoSetDict".

Have a look into the region folders inside the "constant" folder. Look for the files "polyMesh/boundary" in all of them and you'll find the names of the patches that were assigned automatically to each one side of the regions.

For example, if you look into the file "constant/bottomWater/polyMesh/boundary", you'll find two new patches:
  • bottomWater_to_leftSolid
  • bottomWater_to_rightSolid
Therefore, the field files inside the folder "0/bottomWater", will have to also refer to those new patch names.


Quote:

Originally Posted by Kumudu (Post 467751)
I think I have misunderstood the steps. I haven't really go through SwiftBlock properly. I will go through these steps. And let you know. I thought you are saying that make a one fluid region using one pipe.

I am really going crazy with thesis.

Thanks again.

Once I did all these steps, I will posted the new one.

OK! Try not to panic with anything related to the thesis. Working with OpenFOAM should not be done when one is: irritated, sleepy and/or in a hurry. Any of the 3 or all combined, usually only results in one thing: pretty colours. ;)

Good luck! Best regards,
Bruno

Kumudu December 27, 2013 03:20

Thanks Bruno,

You are so generous and brilliant. Above the the comment, I think, I understood the problem.

Quote:

Originally Posted by wyldckat (Post 467754)
Hi Kumudu,

You've got at least one problem here, as shown in the attached image "Screenshot from 2013-12-26 19:06:11.jpg", that after running splitMeshRegions, the 3 regions are far from perfect.
You need to better define the boxes in "topoSetDict".

I found that now, I have defined, minX and maxX as patches. This should be wall for the fluid region. Because, fluid can't migrate into the other regions. Right.

Quote:

Originally Posted by wyldckat (Post 467754)

For example, if you look into the file "constant/bottomWater/polyMesh/boundary", you'll find two new patches:
  • bottomWater_to_leftSolid
  • bottomWater_to_rightSolid
Therefore, the field files inside the folder "0/bottomWater", will have to also refer to those new patch names.


In the Example/system/bottomWater/changeDictionaryDict,

I have defined, the boundary conditions for velocity and temperature

For velocity,U

Code:

U
    {
        internalField  uniform (0 0 -4);

        boundaryField
        {
            maxZ
            {
                type            fixedValue;
                value          uniform (0 0 -4);
            }

            minZ
            {
                type            zeroGradient;
            }

            ".*" //isn't this automatically refers to all other boundaries  including bottomWater_to_leftSolid & bottomWater_to_rightSolid
            {
                type            fixedValue;
                value          uniform (0 0 0);
            }

For T,

Code:

T
    {
        internalField  uniform 273;

        boundaryField
        {
            maxZ
            {
                type            fixedValue;
                value          uniform 273;
            }

            minZ
            {
                type            zeroGradient;
            }

            ".*"
            {
                type            zeroGradient;
                value          uniform 273;
            }

            "bottomWater_to_.*" //isn't this  refers to the  boundaries  bottomWater_to_leftSolid & bottomWater_to_rightSolid
            {
                type            compressible::turbulentTemperatureCoupledBaffleMixed;
                neighbourFieldName T;
                K              basicThermo;
                KName          none;
                value          uniform 273;
            }
        }
    }

I have to go through the 4 steps you told me to do. I haven't really looked at mesh generation (complex ) before, as my target was to first create the solver that accounts only the heat transfer in solid and liquid (only diffusion for solid and diffusion and convection for liquid). I am reading the link http://openfoamwiki.net/index.php/Contrib/SwiftBlock you sent me now.

Thanks again.

Kumudu

Kumudu December 27, 2013 05:24

2 Attachment(s)
Quote:

Originally Posted by wyldckat (Post 467739)
Hi Kumudu,

As for the geometry+mesh, I suggest you should do one step at a time, by starting with a simple example and then gradually add more complexity to it. In summary, I suggest that you follow these steps:
  1. Given the complexity of your model, and assuming you don't need anything more sophisticated than the image you've attached, then learn how to use SwiftBlock: http://openfoamwiki.net/index.php/Contrib/SwiftBlock
  2. Start off by trying to build only the pipe in SwiftBlock. And simulate some fluid flowing inside that pipe.
  3. Then try creating the other part, namely the ground around the pipe. Try using laplacianFoam to simulate some basic heat transfer going through that ground. Keep in mind that you only want to create the mesh for the ground itself.
  4. Once you have created both parts independently and with success, it's possible to merge the two meshes with mergeMesh, along with stitchMesh to stitch the two parts of the mesh. Better yet, it should be possible to do the whole mesh in a single "blockMeshDict", with the help of SwiftBlock.
When you reach step #4, it will be easier to explain to you how you can merge+stitch the two meshes and how to look at the case set-up.


Dear Bruno,

As you suggested I read the link on SwiftBlock. I think this for irregular geometries. For the time being, I just need to create the U-pipe using three rectangles. That is done. For now, I am not concern about the cylindrical Shapes of pipes. I have created the U-pipe using topoSet. As I said before, my only concern is to define the boundaries of the region I created for fluid because I need to name the boundaries of the liquid region as inlet, outlet and wall.

You can see that, in the attachment that I have created the U-pipe easily using topoSet. I can do this for cylindrical shape (without using boxToCell ) using cylinderToCell. So, I will get the pipe (cylindrical shape) geometry easily. I did the following,

blockMesh for ground (a cube with for now I reducing the sizes to 120 mm*120mm*50m)

topoSet (this will create liquid region as the U-shape pipe and other all parts as ground)

splitMeshRegions -cellZones -overwrite


ok, now I have U-shape block for liquid region and cubic shape block for ground, cells other than included in the water (pipe shape). This way I can get a perfect mesh without any complex meshing method.

Lets say, I defined one block in the blockMeshDict with all faces as walls. So, my U-shape is with walls. I can even change the inlet and outlet as patches if I am considering my pipe flow as open pipe flow by setting maxZ into patches in the changeDictionaryDict. So, every thing is good, other than defining inlet and outlet boundary conditions for liquid. Because,
If I consider closed pipe flow,

B.C for velocity,

inlet, fixedValue= (0,0,-4)
outlet, zeroGradient
wall, fixedValue = (0,0,0)

Just tell me now how to define the inlet and outlet faces as the same to liquid. Then, I can easily give required boundary conditions in the changeDictionaryDict as follows,

Code:

U
    {
        internalField  uniform (0 0 -4);

        boundaryField
        {
            inlet
            {
                type        fixedValue;
                value        $internalField
            }
            outlet
            {
                type        zeroGradient;
            }

            ".*"
            {
                type            fixedValue;
                value          uniform (0 0 0);
            }
        }
    }

Thats all I need. I think you can easily give me a hint for this. Then, I can have a look at exact shape of the pipe if my supervisor say so.

Thank you very much for helping me. I am really really grateful to you for this.

Best regards,
Kumudu

wyldckat December 27, 2013 15:46

Hi Kumudu,

Quote:

Originally Posted by Kumudu (Post 467821)

Code:

".*" //isn't this automatically refers to all other boundaries  including bottomWater_to_leftSolid & bottomWater_to_rightSolid
{
  type            fixedValue;
  value          uniform (0 0 0);
}


Yes, the ".*" automatically selects all other patch names.

Quote:

Originally Posted by Kumudu (Post 467821)
Code:

"bottomWater_to_.*" //isn't this  refers to the  boundaries  bottomWater_to_leftSolid & bottomWater_to_rightSolid
{
  type            compressible::turbulentTemperatureCoupledBaffleMixed;
  neighbourFieldName T;
  K              basicThermo;
  KName          none;
  value          uniform 273;
            }
        }
    }


Yes, "bottomWater_to_.*" selects all patch names that start with "bottomWater_to_".

Quote:

Originally Posted by Kumudu (Post 467829)
For now, I am not concern about the cylindrical Shapes of pipes. I have created the U-pipe using topoSet.

Mmm... I thought it was a simplified solid-water-solid geometry... an I-pipe, perhaps? ;)

Quote:

Originally Posted by Kumudu (Post 467829)
As I said before, my only concern is to define the boundaries of the region I created for fluid because I need to name the boundaries of the liquid region as inlet, outlet and wall.

Ah, OK OK. Got it.

Quote:

Originally Posted by Kumudu (Post 467829)
You can see that, in the attachment that I have created the U-pipe easily using topoSet. I can do this for cylindrical shape (without using boxToCell ) using cylinderToCell. So, I will get the pipe (cylindrical shape) geometry easily. I did the following,

[...]

Thats all I need. I think you can easily give me a hint for this. Then, I can have a look at exact shape of the pipe if my supervisor say so.

!!! Many, many thanks for the detailed explanation! This does make it a lot easier for me to explain things to you.

OK, the main utility that you are missing and are searching for is createPatch. It's similar to topoSet, in the sense that the dictionary shares some similar features, but the objective of createPatch is very simple: to take a "faceSet", existing patch or patches and create a new patch from any of them. It will also do some house cleaning, by removing the patches that have no mesh faces assigned to them :D.

Therefore, since you already have good experience with topoSet, you can easily create one or more "faceSet" that are the selection of faces in already existing patches, even in case you don't want to use the whole patch. In case you don't already know, this page gives a very nice description of what topoSet can do: http://openfoamwiki.net/index.php/TopoSet

Now for createPatch: http://openfoamwiki.net/index.php/CreatePatch - That wiki pretty much sums it all very nicely.
The information that might escape you upon reading the wiki page is this:
  1. "-region" - you need to use this option, in order to apply the "createPatchDict" file to correct region. Which implies that you will need one "createPatchDict" file for each region you want to manipulate.
  2. The location of the "createPatchDict" file... honestly, I'm not 100% certain of this, but I think that you can place each one directly inside the "system/region_name" folder.
  3. Since the patches are defined by region and will not assign values to the other region, even if they have the same name, means that you can do a simple patch renaming of the patches. Something like renaming "maxY" to "inlet" and "minY" to "outlet" (I have not checked if these are the correct names!). If I'm not mistaken, something like this:
    Code:

      { 
            // Name of new patch
            name inlet;

            // How to construct: either from 'patches' or 'set'
            constructFrom patches;

            // If constructFrom = patches : names of patches. Wildcards allowed.
            patches (maxY);
        }

      { 
            // Name of new patch
            name outlet;

            // How to construct: either from 'patches' or 'set'
            constructFrom patches;

            // If constructFrom = patches : names of patches. Wildcards allowed.
            patches (minY);
        }

  4. Similarly, you can something like this using a "faceSet" instead of a patch.
Right now I'm in a hurry, so I'm not 100% if this is all that you asked for.

Best regards,
Bruno

Kumudu December 27, 2013 16:07

Quote:

Originally Posted by wyldckat (Post 467877)
Hi Kumudu,


OK, the main utility that you are missing and are searching for is createPatch. It's similar to topoSet, in the sense that the dictionary shares some similar features, but the objective of createPatch is very simple: to take a "faceSet", existing patch or patches and create a new patch from any of them. It will also do some house cleaning, by removing the patches that have no mesh faces assigned to them :D.

Therefore, since you already have good experience with topoSet, you can easily create one or more "faceSet" that are the selection of faces in already existing patches, even in case you don't want to use the whole patch. In case you don't already know, this page gives a very nice description of what topoSet can do: http://openfoamwiki.net/index.php/TopoSet

Now for createPatch: http://openfoamwiki.net/index.php/CreatePatch - That wiki pretty much sums it all very nicely.
The information that might escape you upon reading the wiki page is this:
  1. "-region" - you need to use this option, in order to apply the "createPatchDict" file to correct region. Which implies that you will need one "createPatchDict" file for each region you want to manipulate.
  2. The location of the "createPatchDict" file... honestly, I'm not 100% certain of this, but I think that you can place each one directly inside the "system/region_name" folder.
  3. Since the patches are defined by region and will not assign values to the other region, even if they have the same name, means that you can do a simple patch renaming of the patches. Something like renaming "maxY" to "inlet" and "minY" to "outlet" (I have not checked if these are the correct names!). If I'm not mistaken, something like this:
    Code:

      { 
            // Name of new patch
            name inlet;

            // How to construct: either from 'patches' or 'set'
            constructFrom patches;

            // If constructFrom = patches : names of patches. Wildcards allowed.
            patches (maxY);
        }

      { 
            // Name of new patch
            name outlet;

            // How to construct: either from 'patches' or 'set'
            constructFrom patches;

            // If constructFrom = patches : names of patches. Wildcards allowed.
            patches (minY);
        }

  4. Similarly, you can something like this using a "faceSet" instead of a patch.

Thank you very much Bruno. I will have a look at the "faceSet"& "createPatchDict" and let you know. So, this means I can do this without having much problem.

Again, I am really grateful to you.
Thanks,
Kumudu

wyldckat December 28, 2013 07:16

Hi Kumudu,

You're welcome!
Quote:

Originally Posted by Kumudu (Post 467881)
So, this means I can do this without having much problem.

Keep in mind that the "faceSet" is a selection of faces. So don't expect square-like faces to magically adjust to the shape of a cylinder face ;)
In other words: the selection won't modify the mesh itself.

But you can do some mesh manipulation, once the correct selections are made and operated upon.
Not wanting to throw you off the right track, but this is just to give you an idea of what can be done with sets: http://openfoamwiki.net/index.php/SetSet#Usage_example - in that example, the idea is to select all cells and faces that are sort-of damaged and remove them completely by using subsetMesh to operate on the cell selection.

Best regards,
Bruno


All times are GMT -4. The time now is 07:24.