Frequently Asked Questions

Installation/start-up

  • Harpoon checks out a token from the license manager. Periodically it must send a "heart beat" message to the license manager to let it know that it is still using the token. Upon termination, Harpoon checks the token back in to the license manager.

    Should Harpoon not be able to send a heart beat to the license manager, it will give a warning to the user and try one more time. If that fails, then Harpoon will abort. Should it succeed, then execution continues.

    If the license manager does not receive a heart beat from Harpoon, within the time-out period, it will mark that token as available for use by others. Should some one else try to check out a token and no other free tokens are available, then this token will be used.

    The time-out period used by the license manager and by Harpoon (for controlling heart beat frequency) can be modified by the system administrator. By default the time-out is 20 minutes. The value can range between 1 and 30 minutes. A lower value means more network traffic as the client and the license manager must communicate more often. A higher value means a longer wait for a dropped session to free the key. The default is 1200 seconds and the minimum is 600 seconds.

    On UNIX machines, the time-out value is set in the bin scripts area. Edit $SHARC_HOME/bin/waled_start and search for TIMEOUT. The value is in seconds.

    On Windows machines, set the environment variable WALED2_TIMOUT to the number of seconds.

  • If your license key does not have the word float in it and has the word 'node' in it, then you have a node-locked key. You can simply put your key into the $SHARC_HOME/license directory and run harpoon.

    If your license key has the word float in it then you have a floating key. You need to run the waled2 license manager.

    Run the License manager

    To start the license manager simply run
    SHARC_HOME/license/machines/win32/waled2.exe

    OR
    INSTALL the Windows Service

    Simply run
    SHARC_HOME/license/machines/win32/waled2_install.exe and choose install.

    When you use our Windows installer it will install the service. It may not start the service. To start the service, you'll need to go to Admin Tools, Services, and right click start on the waled2 service. You should not need to reboot.

    to UNINSTALL the Windows Service

    Simply run
    SHARC_HOME/license/machines/win32/waled2_install.exe and choose uninstall.

    Uninstall leaves it running but marks it disabled. You'll still be able to run harpoon even after an uninstall. To stop the ability to run harpoon You'll need to

    a. Go to Admin Tools, Services and right click on the waled2 service and choose stop.You'll still see the service but it's marked disabled and stopped.
    b. logout and log back in - it will go away.
    OR
    c. reboot and it will go away.

  • If you try to start the waled2 as a service and it fails with an error, check that the user attempting to start it has privileges to do so.

    Open the Control Panel, choose Administrative tools and then services. This opens the services dialogue. In the dialogue scroll down and select the waled2_service, right click and select properties. Click on the log on tab. Click on this account and enter your username and password. hit apply.

    Restart the service.

  • Open a console window, then go to
    $SHARC_HOME/license/machines

    cd into the appropriate architecture directory. There should be a waled2_status executable. Enter the following command.

    waled2_status -v ../../wale2.key

    waled2_status version 2.0. Getting waled2 status from host : Key expiration date: 12/31/2005 Feature 'sharc' total tokens 2 busy 0 idle 0 free 2 maint date 12/31/2005. Feature 'harpoon' total tokens 2 busy 0 idle 0 free 2 maint date 12/31/2005.

    This output indicates that your two floating tokens are both checked out and in use.

  • At startup, Harpoon tries to open a harp.cfg file for writing. If this fails, then Harpoon will fail to start.

    On Linux/Unix, if the directory where you start Harpoon doesn't have read/write permissions, or the existing harp.cfg file doesn't have read/write permissions, harpoon will fail to start. You will get a message, "Could not open config file - check write permissions". You will need to start Harpoon from a different directory, or change the write permissions of the directory and/or the existing harp.cfg file.

    On Windows, if you don't have read/write permission to the directory pointed to by the HOME environmental variable, then Harpoon will fail to start. If you don't have read/write permission to an existing harp.cfg file, then harpoon will fail to start. If you start by double-clicking an alias pointing to the executable, you may not see an error message, but harpoon will fail to start. To fix this problem, change your HOME environmental variable and/or your permissions to write to an existing harp.cfg file.

Importing

  • Your CAD package probably exported a binary STL. Binary STls do not contain part information. Re-export the model as an ascii STL.

  • Your Nastran file probably only has volume elements in Harpoon reads tris and quads by default. To extract the surface elements from a Nastran file, run with the command line option -extractfaces

Geometry

  • Currently the most common input format for harpoon is STL (stereolithography) format. These files are exported from 3D CAD programs. They are a series of small triangluated facets that approximate the surface of a 3D model.

    Harpoon uses these discretized facets to map out the model surface(s). Harpoon can only mesh as finely as the STL file represents the surface. There are a number of issues that you should be aware of before you export your model. Spend some time understanding STL export issues and how to refine your output in your CAD package and you'll be way ahead in your harpoon experience.

    Aspect Ratio If two sides of a facet are much longer than the third the triangle has a large aspect ratio. Large aspect ratios are undesirable numerically from harpoon's perspective. Equiangle, equilateral triangle facets are are much better numerically.

    Sag Fitting a curved surface with a line requires smaller line segments for a more curved surface. The amount that the line falls below the curve is called the sag. Similarly the amount that the facet falls below the 3D curvature is the sag. Lots of sag means a coarse tessellation of the surface. Harpoon cannot improve upon the sag of your STL file when it meshes.

    Size The facets should be sized according to the curvature of the model, according to the overall size of the model, and according to intersections of faces.

    Rounding Errors When discretizing the CAD data there is always the likelihood of numerical truncation errors. Because STL nodes are matched not on integer indices but floating coordinates, numerical roundoff when writing the STL can create duplicate nodes. Duplicate nodes imported into harpoon can lead to extraneous feature lines, non-watertight geometry, and meshing problems.

    Consider the following two facets. Compare the second vertex of the first facet to the third vertex of the second facet. The Z-coordinate roundoff causes these two nodes to be considered as different coordinates. A good STL exporter will avoid this pitfall.

    facet normal -0.337752 -0.941235 0.000128
    outer loop
    vertex 6.764929e+01 9.725301e+01 3.000000e+02
    vertex 6.764670e+01 9.724580e+01 2.403403e+02
    vertex 6.630964e+01 9.772569e+01 2.412399e+02
    endloop
    endfacet
    facet normal -0.337746 -0.941237 0.000128
    outer loop
    vertex 6.764929e+01 9.725301e+01 3.000000e+02
    vertex 6.815260e+01 9.706421e+01 2.400000e+02
    vertex 6.764670e+01 9.724580e+01 2.403404e+02
    endloop
    endfacet

    All one part vs multiple parts ASCII STL format allows the export of multiple parts. This allows you to define critical parts and control your mesh refinement and location in more detail. Binary STL format does not allow multiple parts.

    Gaps Prior to writing out the STL consider the small gaps in your geometry. Are they essential to the physics of your problem, or can you just do without them? Clean them up in your CAD package prior to exporting the STL. Don't leave the small gaps in your STL then try to use a coarse mesh in harpoon to fill them in. This can lead to unpredictable results.

    Intersections Sometimes you will have situations where one model geometry surface protrudes through another. Perhaps you have a bar protruding through a curved surface. It is best to clean this up in your CAD package, and create the conical intersection and then export your geometry with the STL surface triangle nodes lined up. It is less desirable to export the two geometries separately as STL's and let the somewhat unpredictable STL facet intersections define the intersection to Harpoon.

    A well thought out STL export is always a good start to a useful Harpoon mesh.

  • There are two ways to deal with small gaps in Harpoon.

    The first is to preserve the gaps in the exported STL and then refine your mesh so Harpoon also preserves the gaps.

    The second is to eliminate the gaps altogether using your CAD package and then export it as an STL.

    In order to preserve your gaps, export your geometry into STL as multiple parts. Then import the geometry into Harpoon and make sure that the preference for minimum number of cells betweeen two parts is set to something higher than one, for instance set this to 3. Also, make sure that the mesh in this critical area may not coarsen to a surface size that is greater than the smallest distance bewteen the two model parts. Then mesh it in harpoon.

    The second way to deal with gaps is to eliminate the gaps using your CAD software and export the STL without gaps.

    If you wish to eliminate your gaps, you can export your geometry as a single part or multiple parts. Use your CAD package to clean up the model lines and to smooth geometry transitions, then export the STL. It is bad practice to export a model with small gaps then use a Harpoon mesh refinement larger than the gap size. Using mesh coarseness to clean up STL geometry results in unpredictable harpoon behavior.

    In summary, reduce your mesh size to capture the small detals, but never coarsen your mesh to eliminate gaps. Use your CAD package to eliminate gaps prior to exporting the STL.

  • If your model consists of one part, or the parts are not correctly arranged then do the following:

    Once the geometry is loaded, select a part in the Geometry folder. Then select Separate in the Geometry menu. This will create subparts, each of them being assigned a separate attribute that will be saved in the mesh. You can also merge these subparts at will to create larger subparts. You can these use these attributes to assign your boundary conditions.

    The same can be done for lines and line segments using the Line menu.

  • If your model consists of one part, or the parts are not correctly arranged then do the following:

    Simply double-click on the part of interest in the graphics window, and the corresponding part in the parts list will become highlighted.

  • If you have a half model, simply snap the farwall provided in Harpoon to create a symmetry plane. If you have a full model, just place the farwall in the middle of the geometry and Harpoon will restrict the mesh to that position.

General Meshing

  • You will have a hole in your mesh.

    The way to find out what is happening is to mesh it externally and use the mesh trace. Display a clip plane, go to the Fix mesh icon and select the Trace button. Select two points on the clip plane, one inside the model and one outside. Hit get route. This will show where there is a problem so that you can fix it.

  • If your model consists of one part, or the parts are not correctly arranged then do the following:

    Once the geometry is loaded, select a part in the Geometry folder. Then select Separate in the Geometry menu. This will create subparts, each of them being assigned a separate attribute that will be saved in the mesh. You can also merge these subparts at will to create larger subparts. You can these use these attributes to assign your boundary conditions.

    The same can be done for lines and line segments using the Line menu

  • For CFD, the best option is always to use a smaller base level and fewer levels than a large base level and lots of levels. This is especially the case when using turbulence models such as k-ε or when using boundary layer.

    For FEA models, cell count is usually the important factor. Try and use a base level size which gives the lowest cell count but also gives good surface recovery

  • If you don't use a level per part which is the best way, you can use Auto, reduce the base level and restrict the range. eg: baselevel: 60 range 1-3 instead of baselevel: 120 range 1-4 This usually gives same number of cells but less transitioning. This is good for k-ε solvers which do not like the levels changing a lot. This will also help with boundary layer generation. You can also set the expansion on fast globally, and use the per part expansion in advanced to make it slower on different parts.

  • There are several ways to achieve a better geometry accuracy without getting meshes too dense. You can for instance either:

    • Put higher levels on the subparts which are too coarse for geometry accuracy: use mesh->advanced->levels, select the part from the Geometry folder on which to assign a higher level, then select a higher level in. highlighted part

    • Put higher levels on features: as above, but instead of setting the subpart, select the feature lines in the Lines folder. This will improve the accuracy on all feature lines.

    • Use the spray feature: use mesh->advanced->auto. Then click on interactive spray, and this will give you a map of the sizes on geometry, that you can change locally and interactively.

  • Make sure you select the part(s) you want translated. The translation is performed, but the bounding box is also automatically moved with the same translation. The geometry will however contain the new translated coordinates.

  • Place the box and resize it in turn for each axis, by clicking alternatively on +X, +Y or +Z and then move the relevant corner of the box.

  • Simply double-click on the part of interest in the graphics window, and the corresponding part in the parts list will become highlighted

  • Use either the -firstgeom or -lastgeom command line option. This will force Harpoon to assign the part ids to the first or the last geometry it comes across.

Exporting

  • It depends whether you want your volumes to have porosity (e.g. heat exchanger). If you do not need this, then keep the default "double-sided". If you need a heat exchanger, change to "single-sided".

  • Change your preference for Fluent thin wall treatment to "single-sided".

  • Harpoon marks all cells next to the surface tris and quads. This will be put into a separate volume. If you want all volumes to be kept as they are in Harpoon use the command line option -cfxvol.

  • You need to make Harpoon export double precision files. In the export preferences, change "single" to "double" for Export precision. This must be done before creating a mesh.

    You will also need to run Fluent in double precision

    Left-handed faces often occur when two dimensions are large compared to the third. Modelling cities and landscapes can produce this problem in single precision.

Miscellaneous

  • At startup, Harpoon tries to open a harp.cfg file for writing. If this fails, then Harpoon will fail to start.

    On Linux/Unix, if the directory where you start Harpoon doesn't have read/write permissions, or the existing harp.cfg file doesn't have read/write permissions, harpoon will fail to start. You will get a message, "Could not open config file - check write permissions". You will need to start Harpoon from a different directory, or change the write permissions of the directory and/or the existing harp.cfg file.

    On Windows, if you don't have read/write permission to the directory pointed to by the HOME environmental variable, then Harpoon will fail to start. If you don't have read/write permission to an existing harp.cfg file, then harpoon will fail to start. If you start by double-clicking an alias pointing to the executable, you may not see an error message, but harpoon will fail to start. To fix this problem, change your HOME environmental variable and/or your permissions to write to an existing harp.cfg file.

  • When you allocate in Windows and then allocate more memory, Windows is prone to memory fragmentation, dividing the "available" memory into unuseable chunks.

    As of version 1.4.9(d) there is a winmem option as follows.

    harpoon -winmem

    The winmem option checks the available system memory up front then tries to allocate a single large chunk of memory to avoid fragmentation. The winmem option is to be used after you run Harpoon and find that it runs out of memory as a second attempt at allocating memory.

    If harpoon -winmem fails up front then it is trying to allocate "available" system memory which is probably overly optimistic given the existing fragmentation. So it is failing. If you are using other apps on Windows, then you may have already fragmented the memory space. Try harpoon -winmem after a fresh reboot with no other applications running.

Tips on ...

  • Here are a few tips for general meshing.

    1. It is best to assign single levels (cell sizes) to individual parts/lines in the parts list

    2. Alternatively, (for example) assign level 3 to the surfaces and level 5 to the feature lines. Feature lines can be separated by feature and region just like the surfaces. You can then assign different levels to different feature lines. To select a feature line or surface from the screen, simple double-click the left mouse button on the surface or line and it will be highlighted in the parts list.

    3. If you are using the multiple levels (Auto or manually assigned) in your model, limit the number of levels that the calculation will use. By default this is levels 1-5. It is perhaps better to use 3-5 or 2-4 along with a smaller base level. This helps convergence in the solvers and usually gives a similar number cells.

    e.g. use base 10 levels 1-3 instead of base 20 levels 1-4

    4. You will probably need to generate meshes that are larger than you would have previously created. This is a characteristic of automatic meshing. However, you will easily make up for the slightly longer solve time by the huge speed up in meshing time. In fact, due to the hex-dominant nature of Harpoon meshes, they will converge far quicker than conventional tet meshes and so your solve time may not increase even with a larger cell count.

    5. After meshing, it may be useful to clean the surface using the standard surface clean option.

    6. To smooth use the the default of 0.98 skew for the target skew. If more smoothing is required then toggle on the "Smooth All Cells", do one smooth and then toggle off the "Smooth All Cells" and smooth the tets once more with the same target skew you used before smoothing all cells

  • Here are a few tips for Boundary Layer meshing.

    1. Reduce the number of level variations on surfaces where BLs will be created. Constant sizes are ideal. If several sizes are necessary, limit this to 1-2, or at most 1-3 levels of change.

    2. For STAR-CD, increase from 40 to 50 (or even 60 if user happy to do so).

    3. For larger Boundary Layers, remove hanging nodes or use 100% Tet mesh.

    BL Meshing Procedure

    1. Assign BL levels to geometry or surface parts. For best results keep BL below 3 times smallest cell height. No smoothing is required between meshing and BL creation.

    2. Smooth at end of meshing. “Smooth all cells” works well.

    3. For cells with remaining high skews, try hand-adjustment of nodes, in mesh fixing options, "Adjust Cell Nodes".

    4. Compute and display Mesh Quality histogram. Display Worst Skew and hand modify these as desired. Mesh without BLs first.

    Additional Notes:

    In some cases, such as internal ones, 2 times or even 1 times the minimum height should be used.

    Because Harpoon is very good at creating a mesh on very complex/dirty geometries, it is easy to forget that not all geometies are suitable for Boundary Layer production. Some geometries are almost impossible to put a boundary layer on due to their complexity.

  • A big problem with UTM type meshes is volumes merging when they should not because of holes in the surface mesh. Here are some tips to get around this.

    1. Use the -UTM command line option. This invokes an internal flag to minimize the number of holes in a mesh. The mesh method must be set to External when using this option. Harpoon will keep all volumes as not just the external one.

    2. Use the -fillhole number option. An automatic hole filling routine is used towards the end of meshing. The default value is 5. This means that all holes with edges less than 5 will be automatically filled (if possible). Changing this to, say, 10 would fix more holes and save manual fixing.

    usage: harpoon -UTM -fillhole 10.

    N.B. At least one Harpoon farwall must be used for this option to work.

  • Here are some tips to automatically remove holes.

    1. If you are meshing internally (or all), use the -UTM command line option. This invokes an internal flag to minimize the number of holes in a mesh. The mesh method must be set to External when using this option. Harpoon will keep all volumes as not just the external one.

    2. Use the -fillhole number option. An automatic hole filling routine is used towards the end of meshing. The default value is 5. This means that all holes with edges less than 5 will be automatically filled (if possible). Changing this to , say, 10 would fix more holes and save manual fixing.

    3. Some holes can be fixed by finding and filling holes a number of times. To do this use the -fillall number option. This will run the find/fill hole loop that number of times. The default is set to one

    usage: harpoon -UTM -fillhole 10 fillall 3

  • There are a number of things that can be done. Here are some tips on how to deal with dirty geometry.

    1. Make sure you have intersections on in your preference file. If your geometry has lots of small holes in it, turn on the dirty preference.

    2. Use the -UTM and -fillhole command line options.

    3. Use the Mesh Trace if you get merged volumes to find out where the hole is.

    4. For overlapping geometry, use the -lastgeom or -firstgeom command line option.

  • There are a number of reasons why a mesh may not converge. Skew is often blamed for poor convergence, but in the case of Harpoon meshes, this is rarely the case. In fact, it depends on the cell type, shape and location. A mesh may solve with one set of boundary conditions, but fail with another.

    We have spent a lot of time developing some optimisation routines which will help with covergence.

    Here are some things to check before blaming skew.

    1. Use the "Standard" optimisation setting in the meshing preferences. If this does not work, change to "Aggressive".

    2. If you do not require multiple volumes, delete all the ones not needed. Never set the max volume to 1 in the preferences. This will hide multiple volumes which will often give problems with convergence.

    3. Make sure that cells are not where they should not be. A group of cells connected to the main volume by a single (or few) faces can cause convergence problems. Use the "Find Baffles" button to in the fix cells area and/or the mesh trace (if needed) to find out where any holes may be.

    4. Look for areas of one cell thick, say, between walls. You must allow Harpoon to resolve these areas by using more cells or do not mesh them at all. This can be done by editing your geometry or by using a larger local cell size.

  • If you have a problem, download the latest executable. If you need to send a case then the following is what should be sent to your local support office:

    1) A geometry only Harpoon file. This is not a file that has been created after a few meshes have been done. It is very important to send a Harpoon file which has not had any mesh creation in it.

    2) If 1) cannot be done, then the raw input data with a config file. Preferences may also be required.