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/)
-   -   [Commercial meshers] How to get rid of internal walls (surfaces)? (https://www.cfd-online.com/Forums/openfoam-meshing/106041-how-get-rid-internal-walls-surfaces.html)

bmikuz August 16, 2012 07:51

How to get rid of internal walls (surfaces)?
 
Hello everyone,

I have the problem with internal surfaces in the mesh, because I don't know what BC to specify there (I tried cyclic but it didn't worked). These internal surfaces are supposed to be part of the fluid and not real physical walls. So, i want to get rid of them. Is it possible to join the internal surfaces with the rest of internalMesh?

To be more specific, the mesh was made with ICEM. Internal surfaces were introduced only for making special blocks which have different shapes and mesh densities. The mesh was stored in a fluent format and imported to OpenFoam with fluent3DMeshToFoam command. Now, I have also patches of these internal surfaces in the constant/polyMesh/boundary file but I want to get rid of them.

What do you suggest me to do? Thanks in advance!

wyldckat August 16, 2012 17:45

Greetings bmikuz,

This is a rather old page, but hopefully you can figure out how to do this in the latest OpenFOAM versions: http://openfoamwiki.net/index.php/Ho...internal_walls

Feel free to add more information to it if you can figure out how to do it in modern OpenFOAM versions.

Best regards,
Bruno

bmikuz August 17, 2012 03:25

Thank you for your respond, Bruno. I already checked this web page, which is not the thing I'm looking for. If I understand correctly, these instructions are made for creating two one-sided walls from a double-sided wall. If I do this I still have internal walls in the fluid domain, but what I want is to get rid of them. I don't want to have these walls in the fluid because I don't know what BC to specify there. They are not physical walls - they are just approximate borders of boundary layers in a fluid.

wyldckat August 18, 2012 04:06

Without a test case, I can't experiment myself. But from your description, it looks like you want to remove baffles... well, you might need to convert that wall into baffles first.

Quoting from here: http://www.openfoam.com/features/mesh-manipulation.php
Quote:

mergeOrSplitBaffles Detects faces that share points (baffles). Either merge them or duplicate the points
Additionally, there's this thread on a similar subject: http://www.cfd-online.com/Forums/ope...-patch-es.html

If you can provide a small test case, it would be easier for other members of this forum to test this as well ;).

bmikuz August 21, 2012 08:22

Your information was very useful. mergeOrSplitBaffles solved the problem. Thank you!

nash December 4, 2013 06:31

hi bmikuz,

how did you do to remove the internal patches using mergeOrSplitBaffles?
could you please explain to me.

thanks,
nash

bmikuz December 4, 2013 08:49

Hi nash,

in my case the mergeOrSplitBaffles command somehow did what I want, but there is no guarantee that it will work on every mesh.
I found out that this command does not effect only mesh but also BCs files in 0 directory! So, the 0 directory must have been prepared in the case directory before mergeOrSplitBaffles command was applied.

I did some research and found out that this command does not remove the "internal" patches (which belong to internal surfaces) from boundary file (in constant/polyMesh/boundary). In the boundary file, the nFaces at all "internal" patches were changed to 0, but the patches themselves were not deleted. Consequently the BCs were needed also for internal surfaces, which doesn't make sense but this was done automatically by the command if 0 directory was prepared before executing the mergeOrSplitBaffles command. For example the velocity's BC fixedValue uniform (0 0 0) was changed to nonuniform 0(). I don't know the details but I presumed that in this case the program recognized that there was no internal surface anymore and so it ignored that BC...

I hope that this will help you.

nash December 4, 2013 11:21

1 Attachment(s)
but i think my problem is a bit different.
i got internal faces which are non-conformal.
i think i need to use AMI but not so sure since my case doesnt involve dynamic mesh.

the mesh is from ANSA, after converting it to openfoam the internal faces are detected as wall by openfoam.
the are actually overlapping , quad and tetra mesh.

tomf December 5, 2013 02:52

Hi nash,

Indeed you can change the patch type in the boundary file to cyclicAMI. Just look at one of the AMI tutorials for the correct syntax. Of course you need to keep the ANSA written nFaces and startFace entries.

AMI is not just for dynamic mesh, it is used in case of non-conformal interfaces.

Good luck.

nash December 5, 2013 06:27

hi tom,

thanks for the reply. I look at the tutorial and the implementation is with createBaffles which i think in my case is not necessary since i already have them in my boundary (patches)

Code:

interface_02_side_tetra_layer_rotor
    {
        type            wall;
        nFaces          4044;
        startFace      19593687;
    }
    interface_01_side_tetra_layer_rotor
    {
        type            wall;
        nFaces          10734;
        startFace      19597731;
.
.
.
.

 interface_02_side_quad_layer_rotor
    {
        type            wall;
        nFaces          13384;
        startFace      19748052;
    }
    interface_01_side_quad_layer_rotor
    {
        type            wall;
        nFaces          37037;
        startFace      19761436;
    }
.
.
.
.

    }

can you help me how to change it to AMI?
the quad need to be matched with tetra.

thanks
-nash-

tomf December 5, 2013 06:46

Hi,

If you look at the mixerVesselAMI 2D case, run it and look at the boundary file you can find the following:

Code:

    AMI1                                                                                                                                                   
    {                                                                                                                                                       
        type      cyclicAMI;                                                                                                                         
        inGroups        1(cyclicAMI);                                                                                                                       
        nFaces          96;                                                                                                                                 
        startFace      6240;                                                                                                                               
        matchTolerance  0.0001;                                                                                                                             
        transform      noOrdering;                                                                                                                         
        neighbourPatch  AMI2;                                                                                                                               
    }                                                                                                                                                       
    AMI2                                                                                                                                                   
    {                                                                                                                                                       
        type            cyclicAMI;                                                                                                                         
        inGroups        1(cyclicAMI);                                                                                                                       
        nFaces          96;                                                                                                                                 
        startFace      6336;                                                                                                                               
        matchTolerance  0.0001;                                                                                                                             
        transform      noOrdering;                                                                                                                         
        neighbourPatch  AMI1;
    }

I think you can work with this example and modify it for your case,

regards,
Tom

nash December 5, 2013 06:58

should it be cyclicAMI or just AMI?

thanks
-nash-

tomf December 5, 2013 07:59

It needs to be cyclicAMI, I do not think AMI is a valid patch type.

nash December 5, 2013 08:04

Code:

AMI_02_side_tetra_layer_rotor
 {
  type      cyclicAMI;                                           
  inGroups        1(cyclicAMI);
  nFaces          4044;
  startFace      19593687;
  matchTolerance  0.0001;
  transform      noOrdering;                                         
  neighbourPatch  AMI_02_side_quad_layer_rotor; 
 }
 AMI_01_side_tetra_layer_rotor
 {

  type      cyclicAMI;                                           
  inGroups        1(cyclicAMI);
  nFaces          10734;
  startFace      19597731;
  matchTolerance  0.0001;
  transform      noOrdering;                                         
  neighbourPatch  AMI_01_side_quad_layer_rotor;
 }

...........


AMI_02_side_quad_layer_rotor
 {
  type            cyclicAMI;
  inGroups        1(cyclicAMI);
  nFaces          13384;
  startFace      19748052;
  matchTolerance  0.0001;
  transform      noOrdering;                                         
  neighbourPatch  AMI_02_side_tetra_layer_rotor;
 }
 AMI_01_side_quad_layer_rotor
 {
  type            cyclicAMI;
  inGroups        1(cyclicAMI);
  nFaces          37037;
  startFace      19761436;
  matchTolerance  0.0001;
  transform      noOrdering;                                         
  neighbourPatch  AMI_01_side_tetra_layer_rotor;
 }

is this ok?

what else should i edit/add before i can run the simulation using simpleFoam?

thanks
regards,
Nash

tomf December 5, 2013 08:17

Yes it looks ok at first glance. Just test it and look at the usually informative error report if something is wrong.

You only need to edit the files in the 0 time folder accordingly. Please look at the tutorials, there they have all the examples. I think you will learn more by looking at them and trying to understand what is going on than asking for help step by step on the forum.

Regards,
Tom

nash December 5, 2013 08:19

yup i have looked at them. i will give it a try.
thanks again :)

vangelis December 5, 2013 08:52

Hi there

Just wanted to add that you can define the cyclicAMI
bc type inside ANSA.

Go to DECK>AUXILIARIES>INTERFACE
Select NEW, type AMI
and set in the card the two PIDs that form the non conformal interface
and keep default type noOrdering

Vangelis

nash December 5, 2013 15:24

Quote:

Originally Posted by vangelis (Post 464999)
Hi there

Just wanted to add that you can define the cyclicAMI
bc type inside ANSA.

Go to DECK>AUXILIARIES>INTERFACE
Select NEW, type AMI
and set in the card the two PIDs that form the non conformal interface
and keep default type noOrdering

Vangelis

Thanks.. It works and lots easier ;)


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