CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Meshing & Mesh Conversion (http://www.cfd-online.com/Forums/openfoam-meshing/)
-   -   Native OpenFOAM interface in Pointwise (http://www.cfd-online.com/Forums/openfoam-meshing/61597-native-openfoam-interface-pointwise.html)

cnsidero January 16, 2009 13:31

The CAE mesher, Pointwise (sam
 
The CAE mesher, Pointwise (same name as company), released on January 14, 2009, now has a native OpenFOAM export interface. This means users no longer have to export their grids to an intermediate format and use one of the conversion applications from OpenFOAM.

Pointwise, Inc. has received increasing interest in using Pointwise and Gridgen with OpenFOAM. Since participating in the OpenFOAM Workshop this past summer in Milan, Pointwise, Inc has maintained active communication with Prof. Jasak. Prof. Jasak visited Pointwise, Inc in early November 2008 and implemented the native interface. The latest release of Pointwise is the first public version with the OpenFOAM interface.

Many people know Pointwise, Inc for Gridgen. However, Pointwise our next generation meshing software for CAE from Pointwise, Inc. and has been in production use for more than a year. We have combined the reliable CFD meshing in Gridgen with modern software techinques to bring you the eponymous Pointwise - a major advancement in gridding capability. In addition to the high quality grid techniques we have always had, you will appreciate Pointwise's flat interface, automated grid assembly, and full undo and redo capabilities.

Drop me a line if you want to know more about Pointwise.

Thanks, Chris

And before anyone asks, Yes, I work for Pointwise.

dkingsley January 16, 2009 13:36

Thanks, on my way to the downl
 
Thanks, on my way to the download page....

dkingsley January 21, 2009 20:48

I finally got a few moments to
 
I finally got a few moments to try the new Pointwise native OpenFOAM interface. I exported one of my more complicated unstructured grids.

The test case has 0.5 million points and 2.8m tets.

The bc I defined for the Fluent export were correctly translated to the OpenFOAM solver in Pointwise and was exported correctly.

CheckMesh shows the grids properties are slightly better than the translated Fluent grid.

The case is running now.

I am not a Pointwise employee, however I have been using gridgen for 10yrs and was one of the people who contacted Pointwise to support OF natively.

cnsidero January 22, 2009 09:40

Dennis, thanks for your feedba
 
Dennis, thanks for your feedback. I'm glad to hear it is working well for you.

I was hoping Eric Patterson might chime in as well ... you there Eric?

egp January 22, 2009 18:24

Hey Chris, I'm here. I'm
 
Hey Chris,

I'm here. I'm also using Pointwise and am very glad that you added the direct OpenFOAM export. However, I've been using Pointwise software for even longer than Dennis, and I'm having a hard time moving from Gridgen to Pointwise (Gridgen doesn't have the OpenFOAM parser, right?).

Eric

cnsidero January 22, 2009 18:46

Eric, correct - there is no na
 
Eric, correct - there is no native interface to OpenFOAM in Gridgen but I can help you out with your Gridgen to Pointwise transition in two ways.

1. Pointwise can read and write Gridgen's file. So you can do your work in Gridgen, open the grid in Pointwise and export to OpenFOAM.

2. To help long time Gridgen users transition more gradually into Pointwise, we have included "Gridgen" preferences into the latest version of Pointwise (v16.02). Specifically the preferences are scene manipulation and entity selection. You can find them in Edit > Preferences (Windows and Linux) and Pointwise > Preferences (Mac).

Hope that helps, Chris

su_junwei January 23, 2009 15:31

Hi Dennis Kingsley I
 
Hi Dennis Kingsley

I am not that lucky. When I use checkMesh to check the grid exported from Pointwise the following errors always appear even with very simple grids.

FOAM FATAL ERROR : index 1944 out of range 0 ... 1943#0 Foam::error::printStack(Foam:http://www.cfd-online.com/OpenFOAM_D...part/proud.gifstream&) at ~/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/OSspecific/Unix/printStack.C:203
#1 Foam::error::abort() at ~/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/error.C:231
#2 Foam:http://www.cfd-online.com/OpenFOAM_D...part/proud.gifstream& Foam::operator<<>(Foam:http://www.cfd-online.com/OpenFOAM_D...part/proud.gifstream&, Foam::errorManip<foam::error>) at ~/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/errorManip.H:86
#3 Foam::UList<int>::checkIndex(int) const at ~/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/UListI.H:107
#4 Foam::UList<int>::operator[](int) at ~/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/UListI.H:123
#5 Foam::polyMesh::initMesh() at ~/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/meshes/polyMesh/polyMeshCalcFaceCells.C:5 2
#6 Foam::polyMesh::polyMesh(Foam::IOobject const&) at ~/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/meshes/polyMesh/polyMesh.C:225
#7 main at ~/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/createPolyMesh.H:13
#8 __libc_start_main in "/lib/libc.so.6"
#9 Foam::regIOobject::readIfModified() in "/home/sujunwei/OpenFOAM/OpenFOAM-1.4.1/applications/bin/linuxGccDPDebug/checkMe sh"


From function UList<t>::checkIndex(const label)
in file /home/sujunwei/OpenFOAM/OpenFOAM-1.4.1/src/OpenFOAM/lnInclude/UListI.H at line 107.

Where is the problem?

Best, Junwei

dkingsley January 23, 2009 17:16

I only tested with OF-1.5.x, b
 
I only tested with OF-1.5.x, based on the fact that the error is "index out of range" I would suspect there is a difference in the way OF-1.4.1 reads the grid.

egp January 23, 2009 18:47

I've also only run Pointwise g
 
I've also only run Pointwise generated meshes with 1.5.x. I just tried to run the Pointwise tutorial TransitionDuct with 1.4.1-dev, and it choked. First off, it doesn't like the "type Unspecified;" in the polymesh/boundary file. However, even after tweaking these, I still ended up with a segmentation fault.

Hrv, since you implemented this parser for Pointwise, any idea why backward compatibility would be broken?

hjasak January 23, 2009 19:28

Yes, the mesh format has chang
 
Yes, the mesh format has changed: now the neighbour array only covers internal faces (as it should)., Therefore, you cannot move any mesh from OF-1.5 back to 1.4 and the Pointwise converter is written for 1.5

If you want a fixing tool, it should be easy to write:

- read constant/polyMesh/owner
- read constant/polyMesh.neighbour
- resize neighbour array to the size of the owner and pad it with -1.
- write out the new neighbour array and all will be well.

Hope this helps,

Hrv

gschaider January 26, 2009 08:55

Just an example for that kind
 
Just an example for that kind of fixing tool using PyFoam (use it only with small to medium size meshes because PyFoam was not designed to effectively parse huge lists):

import sys
from os import path
from PyFoam.RunDictionary.ParsedParameterFile import ParsedParameterFile

dirName=sys.argv[1]

nf=ParsedParameterFile(path.join(dirName,"neighbou r"),listDictWithHeader=True)
of=ParsedParameterFile(path.join(dirName,"owner"), listDictWithHeader=True)

oLen=len(of.content)
nLen=len(nf.content)

if nLen<oLen:
....print "Extending neighbour from",nLen,"to",oLen
....nf.content+=[-1]*(oLen-nLen)
....nf.writeFile()
else:
....print "Nothing done"

(the .... are just there to preserve pythony formatting on the message board. Remove them)

egp January 26, 2009 10:29

@Chris: I spent the weekend g
 
@Chris: I spent the weekend going through the Pointwise tutorials, and reading the manual. I think I'll be able to ditch Gridgen for Pointwise. I really like a number of the features, including the layer manager and masking. Are any of the core Gridgen features not included? Looks like the core grid generation algorithms are pretty much the same.

@Bernhard: thanks. Speaking of Python, I should note that pyFoamCreateBoundaryPatches.py is also useful for adding all of the B.C.s from the Pointwise-created boundary file, thus reducing the amount of handwork in the editor. It's too bad the pyFoam tool doesn't clean up and delete the boundary conditions that may be from the cloned case. This would be pretty easy to script, though.

As a first test, I created a 1.25M cell hybrid mesh for a zero-Froude number (i.e., no free surface waves) model 5415 calculation (Model 5415 website). The real challenge in these ship hull meshes is the sharp edge at the deck....

cnsidero January 26, 2009 10:42

Eric, The core algorithms a
 
Eric,

The core algorithms are pretty much the same in Pointwise. One that has improved, is the block elliptic solver - you can now set internal block boundaries to "float", analogous to floating boundaries for the domain elliptic solver.

As of 16.02, there are only two major features that have not transitioned from Gridgen to Pointwise. They are Solid Meshing (import/creation solid models) and Anisotropic Tet/Tri meshing (fully-unstructured viscous boundary layers). The former is currently being implemented.

Note, the layer manager in Pointwise allows grid entities as well - very helpful for complex grids.

egp January 26, 2009 10:52

Hey Chris, what about the Anis
 
Hey Chris, what about the Anisotropic Tet/Tri meshing? Will we be seeing that in future releases of Pointwise?

cnsidero January 26, 2009 11:05

Hehe ... I was waiting for you
 
Hehe ... I was waiting for you to ask about that.

Yes, Anisotropic Tet/Tri meshing will be coming to Pointwise. However, we felt that the necessary precursor to it was Solid Meshing (importing native CAD solids, importing IGES b-rep solids and creating quilts/solids in the mesher).

Aniso meshing will work without the existence of quilts and solid models but the workflow for aniso meshing is much more positive with it, so we decided to implement solid meshing first with aniso meshing to follow.

gschaider January 26, 2009 11:14

Hi Eric! The option --clear
 
Hi Eric!

The option --clear-unused to pyFoamCreateBoundaryPatches.py should do what you want to (remove all boundaries from the field that are not found in the boundary-file). I don't know since when it is there (but I think for the last 2 or 3 releases)

Bernhard

cnsidero January 26, 2009 11:46

Eric, One more thing I forg
 
Eric,

One more thing I forgot to mention about aniso meshing.

The most time consuming part of meshing tends to be the surface mesh generation as the volume mesh quality is directly dependent on it. The aniso volume mesher in Gridgen is typically the last step you do before exporting your grid, i.e. set a few parameters, click button, wait a minute or two for aniso mesh to finish, export to solver. As such, you can do all the geomety/surface meshing in Pointwise and use Gridgen strictly to create the aniso volume.

This is my recommend workaround for those who want to limit their use of Gridgen until aniso meshing is implemented in Pointwise.

egp January 26, 2009 12:23

Hi Eric! The option --cle
 
Quote:

Hi Eric!

The option --clear-unused to pyFoamCreateBoundaryPatches.py should do what you want to (remove all boundaries from the field that are not found in the boundary-file). I don't know since when it is there (but I think for the last 2 or 3 releases)

Bernhard
Note to self: pyFoamAppOfChoice --help gives all of the options...

gschaider January 26, 2009 15:53

Hi Eric! Stuff like that ha
 
Hi Eric!

Stuff like that happens: "ah, that would be a cool feature, let's add it. <open> The first change should go there .... wait a minute: the change is already there .... when did I? ... Memo to self: check --help before adding anything" And this happened more than once to me

Bernhard

marico January 29, 2009 08:23

Hi, how much euros do I hav
 
Hi,

how much euros do I have to pay for a licence of pointwise (in germany)? At about... Just for thinking about... The homepage suggests me, that it is for free... ;)
Thanks

Marco


All times are GMT -4. The time now is 23:40.