Using Surface Mesh from ANSA for Fluent Sim
I spent a 6-month co-op working with a CFD consulting group. After 40 hrs/wk of meshing I became very proficient with their package ANSA, and familar with their CFD package PowerFLOW. Now that I'm starting my senior capstone project I'm trying to get some experience with Fluent and ICEM since they're more of the industry standard. I'm having a hard time adjusting right now though.
When I worked at the company, I downloaded a CAD model of a Nissan GTR from one of those pay-for-CAD websites for a school project. Most sites only offer downloads in .obj, .max and other non-standard engineering geometry formats. Using a couple programs I was able to translate it to STL, then NASTRAN where it was already tri-meshed. From here I spent around 50 hours cleaning up the raw surface mesh in ANSA. In the end I had a beautiful Class-A surface mesh ready for CFD with PowerFLOW. With PowerFLOW I just need to bring in the surface mesh, and perform some boundary layer offsets, and the program does the rest... its pretty straight-forward (especially with a best-practices document at my disposal)
The problem I run into now is that I would like to use this NASTRAN surface mesh for a simulation in Fluent but I'm not sure how. I've spent some time trying to understand exactly how I need to prepare the simulation in ICEM, but I'm really lacking educational resources (I'm pretty sure my professors knowledge of simulation preparation is out of date). My professor showed me how to mesh an aerofoil, and was blocking out every single component and feature. In ANSA I could have done this in about 10 minutes, so I feel like there has to be a better way. He also says that hexa meshes are the best way to go, but we used strictly tri meshes at my previous job. I'm very confused. :confused:
I would like to know how I can use this surface mesh in ICEM/Fluent. I feel like I must be very close but I just don't know the process because its not a typical workflow. I would eventually like to modify this model, but I'd be content just understanding how to setup the mesh for now. Sorry this post is so long, but I wanted to give you an idea where I was coming from. I'd appreciate any help from you guys who know this program and its tricks. If you ever need ANSA help I'm your guy! :)
Here is an image of the NASTRAN surface mesh I have. Competely Class-A, no intersections, ready to go -
Just for fun - One of the images I generated when I ran the sim with PowerFLOW-
Somebody at your university should have access to the ANSYS customer portal where you can download lots of best practice documents for ICEM and Fluent...
Even better, if you can get your supervisor to pay you could go on ICEM and Fluent training at an ANSYS office. This would almost definitely be the best thing to do in your case...
Another option for meshing would be to use TGrid. Most F1 teams and lots of automotive companies use ANSA for surface meshing and TGrid for volume meshing so that's a natural option. In your case though you don't have a "Navier-Stokes" type surface mesh on the geometry at the moment so you need to remesh for quality. This is very easy in ANSA and there is a good tutorial on meshing a car which shows you how to. Otherwise, in TGrid you can wrap the geometry. In ICEM you should use the OCTREE mesher...
Balance it out
If you already have a surface mesh that you like, then don’t use the octree mesher. (the octree mesher is patch independent and should be used if you have poor surfaces or the surface mesh is not properly connected, etc. It creates a surface mesh as part of the process, so it would have been faster if you were starting from the original model, but since you have already got this far… a Delaunay or Advancing front algorithm will be faster.)
What you need to do is close the volume. You have the surface mesh for the vehicle. Can you get a surface mesh for the tunnel? ICEM CFD has tools to do this, but if you still have access to ANSA and are more familiar with that, then use that.
After you sew it all together (no holes or mesh mismatch) to define the volume around the vehicle, then take it into ICEM CFD or TGrid and run a Delaunay or advancing front Method to generate a Tetra mesh. This will be very fast and easy. If you want inflation layers also, you could generate that with either tool. I think ICEM CFD is better, but many of our racing car customers use one or the other or even a combination of the two…
Wadebogs is right in that your next step (now that you know it will be possible) is to get some of our tutorials to help move you up the experience curve.
As for Powerflow, I used that when I worked at my previous job (vehicle aerodynamics at a major automotive manufacturer) along side a bunch of other CFD meshing and solving codes. It was very easy to use and setup, but not as accurate as Fluent, certainly not at predicting the separation locations. We knew that, but used it anyway for quick and dirty runs.
As for Hexa vs Tetra, yes, certainly hexa is more accurate, but for this sort of geometry you need to ask yourself if the increased accuracy is worth the trouble. I would say a Tetra/Prism mesh run in Fluent would be a good compromise between the easy to use Powerflow, which is less accurate (it doesn’t even support boundary layers) and the more accurate, but difficult interactive blocking that would be required to set this sort of model up in a Hex mesh generator. We did hex mesh some vehicles, but usually only very mature designs for acoustics. You could also hybridize and mesh parts of the model with hexa and other parts with tetra…
Simon is dead right if your surface mesh skewness is less than ~0.8-0.9 in FLUENT definition, ~0.1-0.2 in ICEM definition but looks like it is a NASTRAN surface mesh suitable for structural or Powerflow but not quite for delauney meshers...
Thank you very much for the help guys! I contacted my schools admin and he's in the process of getting me the help/tutorial information I need. I no longer have access to ANSA, so all work will be done in ICEM. Until I get access to the help documents some of my questions may be trivial, but I appreciate the help :)
I was hoping that having this surface mesh would start me from an intermediate step that I would get to through a typical workflow. Doing this would only be for practice. Since it sounds like the process of re-using this mesh is different from how I will need to generate meshes for other car geometries I want to simulate, I'm not going to spend any time on it. I would rather use the time to learn how to do it fully in ICEM.
Wadebogs - when you say I don't have a N-S mesh, what do you mean? I know that PowerFLOW uses a lattice-boltzmann approach, so this makes sense, but I'm just trying to get a sense of what differentiates the mesh. Am I correct to say that all of the meshing techniques discussed so far (delauny, advancing front, octree) are considered unstructured meshes?
Simon - To create the tunnel in ICEM, I generated points around my object based on a local CS, connected with curves, and then created faces. What I'm left with is a solid box around my object. In order to perform one of the patch-conforming mesh processes I must have a surface mesh on my car, correct? The way my professor showed me is to go through and block all significant features of the part, and then subtract that volume. I'd imagine this would take many many blocks for a basic vehicle mesh? Is there a more automatic way to generate the surface mesh so that I can use a patch independent technique to mesh the volume?
I'm not as concerned with accuracy at this point... I would rather learn all of the steps involved and then worry about refining technique later. Since tetra-mesh sounds good, I would use the "all-tri" option for mesh type?
Are "inflation-layers" the equivalent of the higher "Variable Resolution Regions" in PowerFLOW? I know for a VR8 I would offset a few cells, then for VR7, about double that, then start using bigger blocks for the courser regions. Is it a similar idea?
In PowerFLOW I was able to have clean shells intersecting other clean shells. For example I would surface mesh the base shape of the car. Then I would mesh a mirror separately as its own shell, make the "neck" of the mirror a little longer so it intersected the door of the body shell, and everything would be okay. Does it work the same way in ICEM or must the entire surface mesh be connected facets?
I wish I could have Porsche send me clean IGES files like they did when I was on co-op, but since they wont be, I'll be starting from a wierd file type (.obj, .max, .lwo) from one of the 3D CAD sites. I'm able to convert one of them to .stl with Rhino so that I have something I could bring in to ICEM. Could you briefly explain the extra steps involved in starting from an STL?
I know I asked alot of questions up there, so feel free take your time if you are nice enough to respond. I really appreciate the help Simon and wadebogs! :)
PowerFlow meshing is very different to that for NS type solvers. I am no expert but believe you need a closed surface set but that intersections etc can be allowed as you mentioned. Also, surface mesh quality is not important as the elements which are generated in the volume are not connected eventually to the triangles on the boundary as they are for NS meshes (tet).
Anyway, I think Simon can help best with the approach in ICEM - he seems an expert...
All the methods we suggested are unstructured. You could use the OCTREE method though if you don't want to remesh the surfaces (I'm still guessing they're not CFD ready from the pic but they may be improved with some tri surface smoothing in ICEM - is that possible Simon?) Then after using OCTREE you can do tet to hex conversion to lower cell count and get less dissipative hex elements in the important wake/vortex regions of the flow. No offence Simon but people who are too involved in meshing and not solving often don't realise how big the difference in solution accuracy is between a messy tet mesh and a nice orthogonal hexa or hexacore mesh when running in Fluent/CCM+/etc. This is not such a big thing for general automotive aero but if you had wings shedding vortices, or wanted to focus on the a-pillar vortex you'd see the difference with hexa cells.
Oh I am totally a Hexa Fan. I actually enjoy generating hexa meshes (Tetra is boring, Hexa is a mind puzzle that makes the day go by very quickly). But the end user needs to balance the extra accuracy with the extra effort required. Formula1 teams (with complex wings, etc) most often use tetra prism mesh because they generate so many models that they just can’t afford the time to be more accurate… I like hybrid methods as a way of trying to manage this balance and get the best of both worlds. I don’t recommend a newbie ;) start hexa on something this complicated, but when you are ready (have done a bunch of hexa work on other models), I can give you an old hexa tutorial to get you going…
As for using ICEM CFD, just try a few tutorials (built right into the software or available on the customer portal) and you won’t need to ask these questions anymore (you may still have different questions) ;).
The fill options, such as Delaunay or TGrid, require a surface mesh (not geometry). The other options will work from geometry. The blocking is only for ICEM CFD Hexa (or MultiZone), other methods do not require it.
If your geometry is mostly closed (slivers and small gaps are ok, missing the windshield is not), you can run the octree mesher. This will give the surface and volume mesh directly from the geometry. If you want smoother transitions, you can then Remesh the volume with the Delaunay or Advancing front methods. (I recommend Delaunay with the TGLib beta option). Then put prisms in. Between each step you may have some smoothing and/or mesh editing.
In a N-S solver, you get a boundary layer profile because of the no-slip wall condition. Inflation layers help you resolve this profile without overly refining the mesh. They provide more nodes perpendicular to the wall then along the wall. Without Prisms, you would require many more tetras along the wall (inefficient) to get the same resolution perpendicular to the wall.
As for your intersections, Wade is right about how this works in Powerflow because they really just generate some sort of Cartesian grid and don’t need to connect to the surface triangles (just use them to determine in or out). With ICEM CFD, I recommend you convert that imported mesh to geometry. The geometry can be penetrating (mirror penetrating A pillar, tyres penetrating floor, etc.), but you may want to “intersect” the components to get nice sharp feature lines. When you run the Octree Tetra mesher, it will “wrap” these components and give you a volume region that is outside of the car but inside the tunnel. You can have it automatically delete all the dead “orfn” (pronounced “orphan”) regions inside the vehicle simply by putting a “material point” in the regions you are interested in. If you get leakage, it means that your model is not closed enough and you will need to repair it so ICEM CFD can make sense of what is in the region and what is outside of it.
There is a tutorial or two that start with STL data. Basically, you will want to extract features (edges, by angle and intersection), break up your model into the various components that you want, build the tunnel (try the primitive enclosure options), set up the global and part based mesh parameters (sizes), and mesh…
I would like to try out ANSA for FULL underhood apps and just begin working on it. My goal for ANSA is to just get the clean closed watertight surface. I was wondering if you have any best practice documented for ANSA. Also if can throw some light on wrapping the model specifically.
Thanks in advance !
I'll start by saying the surface mesh I would generate may not be the same type you need for your program (I used PowerFLOW). I wish I had the program in front of me because I forget specific names on some buttons, but I'll do my best.
I don't have any best practices document unfortunately, but I'll explain my general procedure.
It all will come down to the geometry you have. If you have clean geometry, then you can Class-A it in a reasonable amount of time. However, due to the level of detail in engine components, the files we would get would often develop lots of missing faces during the translation and importation process. It takes forever to recreate these faces, close up all of the holes, delete all the inner geometry, etc. so I would wrap about 75% of underhood components. I used PowerWRAP, but I'm aware ANSA has a pretty good wrapper of its own built in. I used it rarely, but it was pretty easy to use... sorry I can't comment on it more.
Divide the components into groupings (PID's) that you'll deal with independently. Maybe make the block and head one PID, the exhaust manifold another, the transmission another... it makes it easier to hide all the PID's but one and work. Separating them could take a bit of time. To select them, I would use a button that would highlight all faces connecting to the one I selected. This would help group, but you still need to manually go through and select sometimes.
Things like coolant hoses can be class-A prepped pretty easily to save lots of facets. Just go through and delete the ID faces, cap the ends so you have a shell, then use the MAP algorithm on the cylindrical walls. Go with a BEST or STL on the ends.
For any of the other parts you want to class A prep I recommend the STL algorithm. I would just "mesh-visible" and it would mesh everything on screen. Then see whats left or what STL did a bad job of meshing and try a different algorithm on it. I wish I could remember the the settings I had, but mess around with chordal deviation, max length, and other parameters and keep re-meshing until you find something that works well. I found a set of settings that made class-A prepping a thing of beauty with the STL algo.
When you go into wireframe, your mesh will be in white with any gaps in the mesh surrounded in red. When your part is fully meshed its hard to see the red, so you can toggle off the white part (I forget what button) and the red will jump out. Zoom into those areas and try to tweak the geometry a little and re-mesh or try a different algo. Anything that doesn't want to mesh easily can always be facet-deleted and node-pasted away after you export your mesh and bring it back in to ANSA.
As you finish each PID grouping, you can export the NASTRAN file. Eventually you'll have several .nas files... bring these in separately and do a mesh check for intersections and near intersections. Clean up any intersections by pasting nodes or deleting facets. Keep re-checking and fixing until you are clean. Then export that nastran and its ready to go.
I hope that helps. Wadebogs and Simon have been nothing but helpful so I'm just trying to help back with something I know about :)
BTW although my network admin is dragging his feet with the documentation, I was able to find an ICEM CFD 10.0 tutorial .pdf on-line that I'm using now. It reads more like a manual then a tutorial, so I'm hoping I've got the right one. Anyway, I'll be spending some time with it and will report back with questions. Thanks for the help guys.
Good Info ... Is that the standard practice in ANSA to check for the red lines for any possible leak in the geometry. I guess the practice here is the work on group one at a time while you wrap.
I may have questions for you later as I make progress prepping the model.. But for now thank you very much for your help :)
Ansa to Fluent
I was messing around with these two today, not being able to import the Ansa created mesh into Fluent. I was trying to run a simulation on half the body of a car and I couldn't get the volume meshed. But then I found a small button (:D) that said DEFINE in the mesh->Volume work area of Ansa. I created a bound box around my geometry, I created a refined surface mesh on both the geometry and the bound box and then I created a volume defined by the geometry and the bound box and I managed to get that volume meshed with tetra element.
* the bound box faces were separate PIDs, with respective names to the Inlet, Outlet and Symmetry so that they could be easily identified later on
I then opened the mesh with TGrid and set the BCs then saved the mesh one more time.
After doing this I was able to read the mesh in Fluent and set a basic flow case. I am still waiting for the results :)
This worked for me, I hope it might be of some use to others.
Some tips about using ANSA.
Make sure you start it in CFD mode so that all
settings are tuned for CFD.
About volume meshing,
if you want to refine certain areas of your surface and volume mesh you can use the ANSA Size Boxes, this means that you do not have to create geometrical constructions for closed inner volumes.
Also you can switch to Fluent Deck and then you
can specify the boundary condition type for each property. In this way you do not have to go through TGrid.
could you please send me that car's iges model?
|All times are GMT -4. The time now is 19:18.|