CFD Online Discussion Forums

CFD Online Discussion Forums (
-   ANSYS Meshing & Geometry (
-   -   [ICEM] How to subtract solid from fluid region ICEMCFD (

lisa April 20, 2010 10:06

How to subtract solid from fluid region ICEMCFD
Dear Members,

I have a Impeller , rotar and the blades joined together. I would like to substract the solid part of the geometry from the fluid region in ICEMCFD.

I am not sure how to carry out the boolean operation in ICEMCFD.

Thanks in advance

PSYMN April 21, 2010 10:17

Booleans are unnessary...
ICEM CFD is not a solids based modeler (it is surface based). Therefore, Booleans are not necessary.

Instead, go to the geometry tab and "create body", then choose the material point option (from 2 points).

Type in "FLUID" as the Material name and then select two locations on the model such that the mid point will be in the fluid...

Similarly, create a second material point named "SOLID", and select its two locations so that the mid point will be in the solid...

Flood fill will take care of the rest for Tetra/Prism...

For Hexa blocking, you select which volume material the blocks are in... but it still helps to have these material points.

If you skip this step and just mesh the model without material points, it will just create them on its own with names like CREATEDMATERIAL1, etc. I usually create them.

Best regards,


lisa April 22, 2010 08:52

Hi Simon,

Thanks for the reply. Would also like to know if i can do in Icemcfd Unite,subtract operations like in Gambit.

Since i am looking to subtract the solid from the fluid region and then mesh the fluid region. Like flow around the car. Will it be possible in icem.


PSYMN April 22, 2010 10:12

Don't need to do that stuff.
Again, ICEM CFD is not a solid modeler and does not need to do any of these operations...

For subtract, you put different Material points in each region.

For Unite, you put the same material points in each region.

It doesn't really unite or subtract anything, but the end result will be the same as if you did.

Side note: If you want to maintain surface elements (internal wall) between volume regions in the same material, you must turn on the internal walls check box on that part (under Params by Parts).

ICEM CFD is very different from Gambit... You need to realize these fundamental differences and advantages or you will be frustrated trying to reproduce the same processes as you used in Gambit... However, if you are willing to change your approach, we can give you the mesh you want.

Andrey M. May 19, 2010 01:21

Sorry, mis click.

Andrey M. May 19, 2010 01:34

Hello Simon!

I suppose. I have the same problem. I'm new in ICEM and in fact I have no experience with Gambit. I'm trying to make task with rotation in OpenFOAM using MRFsimpleFoam. I've found small tutorial for GAMBIT ( and now trying to make it in ICEM. I'm very thankful for your previous posts the really added much understanding in differences, but I still need some advice.

Going step by step:
1.generate two cylinders (r1=0.5 h1=1; r2=0.25, h2=0.5) and one cube (h3=0.3)
2.subtract cylinder 2 from 1 (maintain cylinder 2)
3.subtract cube 3 from cylinder

Till that moment there is no any problems. As I understand I need just to make 3 parts in ICEM.

4. Connect the faces (inner face of cylinder 1 and outer face of cylinder 2)

To do that I need to make 3 material points one as solid in cube and two in cylinders as fluid.

5. define continuum types (zones): rotor for cylinder 2, and stator for cylinder

As I understand you I need to mark intwall checkbox in part mesh parameters. Am I right?

6.define boundaries (inlet, outlet, cubeWall, cylindricWall, sliderFace).sliderFace is the connected faces mentioned above.
7.define the boundary for sliderFace as INTERIOR

At this two steps I misunderstanding. Inlet,outlet, walls it's not problem I knew how to do that, but everything connected with sliderFace, boundary between two cylinders, is a mystery. I suppose that it needed not to have a small cylinder as part, but to have some additinal boundary. But I don't know how to do that. Can you show the way?

Best regards,

PSYMN May 19, 2010 16:12

Solver forum...

You only need to mark parts as internal wall if the volumes on both sides are the same material, but you want to keep the shell elements. By default (if you don't mark as internal wall) it will remove shell elements if the volume material on both sides is the same.

I am not quite clear on what your model looks like, but generally speaking, you could just put the sliding interface surfaces into a Part (perhaps named "SLIDING_INTERFACE") and then set it up in in FLUENT...

Beyond that, I suggest asking this question under the solver forum (I am not a huge Fluent expert), or look up how to do it in a Fluent tutorial...

NormalVector August 10, 2011 18:43

I am having a similar problem and also having trouble following Simon's explanation. For simplicity, I'm trying to model the 2D heat transfer through a square aluminum block with a circular hole in the center. I'm having trouble creating a mesh because I don't know how to exclude the circular region from the rectangular aluminum domain in ICEM. All geometry (points and edges) were created in ICEM.

Thanks for your help.

PSYMN August 11, 2011 14:28

Normal Vector... Hexa or Tetra? Assuming Hexa and assuming you have blocked the plate and it has thickenss, you just need to place the blocks into the correct part. Do this by right clicking on the volume part => Add to Part => Add Blocking Material.

If it is a zero thickness baffle, then all you need to do in hexa is work with the associations => Face to Surface. Assign the face to the surface and the shells (internal wall) will be created.

If this doesn't help, please include an image so I can understand the issue.

NormalVector August 11, 2011 15:39

1 Attachment(s)
I've attached what I'm working with. I'm trying to mesh the grey part using a 2D, zero-thickness tetra mesh to use in FLUENT. In Gambit I would just create the rectangular and circular surfaces and then use the boolean subtract to leave the rectangular surface with a circular hole cut out of the center. As you've said, ICEM is completely different from Gambit and I'd like to transfer that procedure into ICEM but I've had no luck. Does my problem require blocking?

Thanks for your time.

PSYMN August 12, 2011 11:17

Simple surface based paradigm.
So it is just a surface with a hole in it... You just want a 2D triangle mesh?

No problem.

If the grey part is a surface, just mesh it. If there is a surface for the circle in the middle, just delete it (or don't select it to be meshed). It is a surface based mesher, there is no need for booleans.

ICEM CFD has several meshers that could get it done for you.

If you use patch dependent surface meshing, then you will need to make sure that you run Geometry => Repair => Build Diagnostic Topology. This tool makes sure that each surface is bounded by "attached" curves. You will need to set the sizes on these curves (or the overall parts). The Patch dependent mesher starts from "loops" that get their sizes from these curves and then pave across the surfaces using a recursive loop algorithm. If you want prism, do a search for instructions regarding BLAYER2D.

If you are going to use Patch Independent surface mesh, you just set up sizes on surfaces and curves and hit mesh. It is not as picky about attachment or gaps or anything like that. You can look up more about this algorithm in the help.

Either way should be pretty easy.

ICEM CFD Hexa would also be nice and not hard to block either. But you should probably try a tutorial or two first.

Best regards,


NormalVector August 12, 2011 11:43

Yeah that's basically it, I'm not working with too complicated geometry. Perhaps I should have mentioned that I'm creating this geometry inside of ICEM from points, curves and then surfaces. My problem is getting a surface in the shape of the grey region. When I choose to create a surface from the four outer square edges and the circle, ICEM disregards the circle and just creates a square surface with no hole in the middle.

Meshing makes more sense now... so an edge mesh is necessary?

PSYMN August 12, 2011 12:54

Oh, so you don't yet have what you showed me. Instead, you have a square surface with a circle drawn on it...

There are several ways to cut the square with the circle.

The most obvious is "Create/modify surface => Segement surface => by curve". Then delete the surface inside the circle.

But most users just run build topology. It will automatically sort out issues like this and segment the surfaces while it builds up the connectivity. Then you just come back and delete the circle if you don't want it.


NormalVector August 12, 2011 14:14

1 Attachment(s)
Thank you, that worked perfectly. While I still have you here, I have another question. I saw on another one of your posts about mesh growth control that you mentioned using the mesh params by parts tab. Will I use that for my 2D case? I want to recreate something like the attached; small elements at the wall and larger elements in the center. I want to do an edge mesh size of, let's say, 0.08 on the surrounding edges and I want it to grow to a size of 0.5 at the interior with a growth ratio of 1.2. Is that growth controlled by "mesh params by parts"?

aweizazuji August 13, 2011 11:01

Hi Simon. As you mentioned to created materia points, I just want to know how does ICEM determine which part belong to the body you set? Let's you create a CAR solid from two points around a car, and the car is divided into many parts ,then which zone belongs to the CAR solid?

NormalVector August 20, 2011 11:45

I also had a question about material points. Should it be created before or after the mesh? Also how does ICEM know what to take as one body... is it determined on a surface basis?

PSYMN August 20, 2011 12:44

Floodfill explained (briefly)
Material assignment is done by a concept called "Flood fill". You should place the material point before mesh generation because Flood fill is part of the octree process, but you can also place a material point later and run flood fill manually from the "Edit Mesh => Repair" DEZ.

I am sure I have described this in detail before, so just do a search for "Material Point" or "FloodFill" for that.

The short version is that it locates the material point and then finds the cell (element) that the material point is in. It logically assumes that you want that cell to be in that volume. Then it assumes that you also want all the volume cells attached to that cell. Then it assumes you also want the volume elements attached to those cells and so on. It stops in any particular direction when it reaches surface elements (shells) that were formed earilier when the mesh was being cut into the geometry. However, in other directions, it keeps adding where ever it finds a volume element next to a marked volume element. Eventually, it runs out of elements to add and then start with the next material point and does the same thing.

If during the process the flood fill encounters another material point, it will say that you have leakage because there were no shells between the material points.

As I said, more detail is in the help and on CFD Online...

NormalVector August 20, 2011 12:59

Does ICEM's material point determination work with just surface meshes? I'm working in 2D and thus have no volume.

PSYMN August 20, 2011 20:01

No, material points are for marking the volume. Surface meshes or 2D meshes will inherit the part of the surface geometry they follow.


NormalVector August 20, 2011 22:17

Alright, no material points for me. I saw another post of yours about conjugate heat transfer and the wall/wall shadow not showing up in FLUENT when meshed in workbench. You mentioned making a multi body part and the original poster said the problem was worked out but never said how. I'm not using workbench, is a multiple body part the route I need to take as well? The wall shadow isn't showing up for me in FLUENT either.

Again, I appreciate all this help. I'm making the switch to ICEM and haven't gotten my hands on any tutorials yet.

All times are GMT -4. The time now is 10:32.