Click on the relevant category heading below to view frequently asked questions.

Q1 : In my cylindrical-polar mesh, why is there unexpected geometry appearing in the domain? 
A : When making a polar periodic mesh, the geometry is transformed automatically into a Cartesian space for mesh generation and then back into polar coordinates for the output mesh itself. The domain to be meshed is the relatively small theta-segment bounding box defined by the user; but the overall geometry may be perhaps a complete annulus. In this case, any substantial portions of geometry lying way outside the bounding box, in theta, will not be transformed correctly, and may overlap/intersect back into the domain. This can be avoided by just deleting any geometry that is substantially, in theta (as distinct from, say, the x-direction) outside the bounding box. This can be done quite easily in the GUI. 

Q2 : In my periodic cylindrical-polar mesh, why is mesh appearing in unseeded regions? 
A : In order to generate a periodic cylindrical polar mesh, the geometry at both the bounding box theta boundaries must be an exact match. If not, the gap created by the mismatch may be large enough for mesh to leak through in much the same way as it would leak though a ‘large’ (i.e. larger than the local cell length scale) hole in a Cartesian geometry. Use an Octree connection path to discover where the periodic mismatch is. 

Q3 : BOXERmesh has allowed me to create a specifier with no features in the Feature Tree Subset - what will happen to the mesh? 
A : For Edge and Face Refinement and Layer specification, BOXERmesh interprets and empty Feature Tree Subset to mean "apply to the whole geometry". Thus your mesh will be generated as if you had placed all the geometric features into the Feature Tree Subset for that specifier. This does not apply to Volume Refinement, where an empty Feature Tree Subset results in no Volume Refinement taking place

Q4 : Why can't I use a Polyline to set volume mesh refinement?
A : Because that capability isn't yet implemented in the meshing of the BOXERmesh server. You can, however, use general shapes (shells, volumes etc.) to define general volume mesh adaption. 

Q5 : My flat-ended Polyline has lots of cylinders in it and they don't match up neatly because the line itself is quite bent. What happens if I use this Polyline for mesh refinement?
A : The mesh refinement always responds literally to the entities in the GUI. So in this case, you'd get refinement driven by a series of piecewise-linear cylinders with small gaps inbetween the ends. You can change this behaviour (to fill in the gaps) by using a Sphere-Capped option. 

Q6 : I can't get the Bounding Box to be the shape I want - it keeps changing back to something too big.
A : The Bounding Box is made of an integer number of cells of a size determined by the background length scale. If this length scale is big compared to the geometry, the smallest available Bounding Box may be blocked by the size of a single cell at the given length scale. Solution : reduce the background length scale to match better the general dimension of the geometry.

Q7 : I'm using a Sketching Volume for volume mesh adaption, and the adaption has leaked everywhere. 
A : Your Sketching Volume has a leak somewhere. You can diagnose where, by loading the volume  .btf into a separate BOXERmesh session, making a simple mesh of it, and using the octree leak detection tool. 

Q8 : Why is the output layer mesh different from my specification? 
A : Layer mesh is effectively limited to be as thick as approximately 6 local octree length scales. I.e., a layer mesh can be a maximum of about 6 times as thick as the length of the local surface mesh edges. Any user specification combination that implies differently, e.g. number of layers, height or expansion ratio, is automatically clipped. 
A : Layer mesh is inserted by shuffling the "inviscid" regular mesh out of the way. This process is currently limited by the quality of the cells on top of the layer. So, layer growth is stopped automatically just before the quality of the cells on top of the layer becomes unacceptable. 
A : Layer height is adjusted slightly to account for the quality of local surface mesh. In particular, the first node height is sometimes increased to provide a better-quality wall-adjacent cell than would otherwise be extruded, upon a relatively low-quality surface element. 
A : In normal precision the aspect ratio of a layer cell can be no greater than 100:1. If the near wall distance is very small this might imply a very high aspect ratio near wall cell and BOXERmesh overrides this to maintain prism cell quality. In extended precision, this limit is increased to 10,000:1.

Q9 : Why can't I put surface mesh refinement where I want it? 
A : Face-based mesh refinement in  BOXERmesh  takes place on a per-geometry-triangle basis. I.e., any single geometry triangle in the surface tessellation always ends up having one particular local octree refinement level. 
Sometimes, especially for geometry with large flat regions, this can make it tricky to add mesh refinement into the middle of a geometry patch, as there are no individual tessellation triangles there. In this case, the "Max. Edge Length" option can be used during geometry import, to subdivide all the tessellation's edges down to some specified 
length scale. 
A : If using a Polyline to refine mesh on part of a face, the specified mesh refinement will only apply to those facets 
of the face lying entirely within the Polyline.

Q10 : How do I specify a greater range of levels of octree refinement? 
A : BOXERmesh in standard run-time mode restricts the total number of levels of octree refinement to a maximum of 21, i.e. mesh length scale variation of 1:2^21. By running boxerserver with the --extended option, up to 38 levels of octree refinement can be specified.

Q11 : I want to use a CFD isosurface from near-body for volume mesh adaption, but it's not a closed surface. 
A : You might be able to close off the domain entity you want to use simply by merging it with geometry of the body itself to construct a closed volume. You can do this as a separate task, in a separate BOXERmesh session.

Q12 : I specified a Bounding Box Extrusion, but it has not appeared when I generate the mesh 
A : Bounding Box extrusions are only created after the final meshing step. The ‘final meshing step’ is dependent on whether or not a layer specification has been set. BOXERmesh will not create an extrusion on an inviscid mesh if a layer specification has been set. If you want a Bounding Box Extrusion on an Invisicd (no layer cells) mesh, make sure there are no layer specification items in the Feature Tree. 

Q1 : Why do I get a solid mesh when my Region has seeded the fluid zone? 
A : There might be a hole somewhere in your geometry definition that is larger than the local octree length scale. In this case, the  BOXERmesh  mesh will pass through the hole and you will get a mesh over the "inside" as well as "outside" of your geometry. 
A : If your Region's seed  point is within a cut cell, i.e. an octree cell cut by the geometry, then you will see the message "Not in distinct zone". This can sometimes cause meshing of the inside rather than the outside of your geometry. Solution - move your seed point further into the domain you wish to mesh. 

Q2 : What does "Seed point not in distinct zone" mean? 
A : If your Region's seed point(s) is within a cut cell, i.e. an octree cell cut by the geometry, then you will see the message "Seed point not in distinct zone". Because the "inside" and "outside" are not then defined properly, sometimes the mesher will mesh the wrong side of the geometry.
Solution - move your seed point further into the domain you wish to mesh, i.e. not within a cut cell.

Q3 : What's the difference between "Regions" and "Conjugate" 
A : A Region, of which you can define many and various, is a single topological part of the overall meshing domain. The conjugate option is just a convenient automatic function to fill in mesh for every other part of the geometry that isn't itself explicitly defined as a Region.

Q4 : I'm meshing a multiregion case, and lots of my geometry has disappeared. 
A : In case of multiregion meshing of thin geometry, you either need to provide enough mesh resolution in the basic octree to support the size of things you're trying to mesh, or to use some additional features in your Region specification to guarantee that thin geometry is retained

Q5 : A void Region does not appear 'voided' at the octree stage - when does the Region become a void? 
A : Sometime between the octree and body-fitted meshing stages, the void region mesh is removed; hence cells may appear in the octree mesh but not in the final body-fitted mesh.

Q6 : What happens if I define a Region with both a normal seed point and a void Region point?
A : The void Region definition 'wins' and the Region becomes a void in the body-fitted mesh.

Q7 : What is the difference between defining a Region as a void and simply not defining it at all? 
A : A void Region will not appear in a conjugate mesh if conjugate is activated, whereas an unseeded Region will appear as part of the conjugate. 
A : In a multiregion mesh with 'thin' regions, an undefined Region may be destroyed (loss of geometry features due to lack of octree resolution), whereas a void Region's boundaries will remain defined and intact.

Q1 : Opening an existing *.bxr file results in the error message "Error reading from file $filename.bxr" 
A : The most likely reason for this error is that an associated *.btf or .bmf file has been moved or renamed. The full path to the files is stored in the *.bxr project file. Open the *.bxr file in a text editor and check that the path and filename to the data files is correct.

Q2 : What is the meaning of "client filesystem" vs. "server filesystem"? 
A : Major data such as the geometry file, is stored and loaded on the server machine. Therefore, this data needs to be available on the server machine's own storage (possibly a network disk etc.) - the "server filesystem". But, since the BOXER client - the actual GUI - may be on a completely different machine; a laptop, for example, vs. a big HPC resource for the meshing; the client and server are not necessarily able to see the same storage resource. Consequently, the BOXER GUI assumes two separate filesystems; one for the client, one for the server; and will save relevant data (e.g. project files vs. geometry files) in the relevant place.

Q3 : Why can't I read my CAD file? 
A : BOXERmesh supports a specific range, and version-set, of third-party CAD formats.
A : If your CAD import takes a very long time to tessellate, then your curvature resolution may be too high.
A : If you run out of memory during CAD import, make sure to use 64-bit  BOXERmesh  (i.e. the 64-bit version of boxerserver). This will provide full access to large CAD files.
A : Due to the very large range of general CAD formats supported, not all of the complete details of all internal CAD data-structures are always read. In this case, you can always use some "safe" import options to drive, for example, CAD-based patch assignation; "Colour" is usually more reliable than "Face Attribute". 

Q4 : *.btf geometry files are not saved correctly when using certain shared/virtualised file systems 
A : It has been observed that the use of certain shared/virtualised file systems (e.g. HGFS under VMWare) as the storage for BOXERmesh geometry files can cause these files to be written out with errors. It is recommended to use a non-shared or non-virtualised disk partition or file system instead.

Q1 : I think I've got lots of small slivery triangles in my geometry, but I can't see them in the 3D scene so as to be able to select them and put them in a particular patch. 
A : Try setting the geometry to wireframe mode. This works for  visualisation only, not for selection. In wireframe mode, the edges of tiny triangles will be drawn as black lines which are quite easy to see.

Q2 : I can't find the geometry patch I want to look at in the 3D view.
A : There are three possible reasons for this; it may be invisible, the view may be looking at the wrong part of the scene, or this patch might not contain the facets you think it does. In the Display Panel make sure that  Micro and the visibility modes Hide etc. are not active. In the Feature Tree right click on your patch and choose  Only, which will hide everything except for that patch. On the Toolbar or in the View menu use the  Fit button/option. This will move/zoom the scene to fit only the visible objects. If there is still nothing visible, the patch may be empty  - in the Feature Tree right-click on the Part it belongs to and select Delete empty patches.

Q3 : When I reload a mesh into the GUI, why can't I see the mesh quality scalar? 
A : The mesh quality itself is not supported in the  BOXERmesh .box file. You have to recompute the body-fitted mesh to retrieve the cell quality scalar information.
Alternatively load the associated .bmf file for your GUI session, which retains this information.

Q4 : Why can't I see a certain scalar? Why is the rendered view grey? 
A : Not all scalars are available for all entities. For example, the cell quality scalar is not computed for geometry facets. Consequently, if the 3D scene is displaying only entities not amenable to a certain scalar set in the Rendering Panel, then the rendering of those entities will be basic grey.

Q5 : Why can't I type enough significant figures of my data into a coordinate entry field? The window keeps going red when I enter more numbers. 
A : The precision (i.e. the number of digits) permitted for direct data input, is controlled in the Preferences menu. If you can't enter enough significant figures under the default setting, you can change it to something higher.

Q6 : I'm having trouble starting up the GUI (client). 
A : The BOXERmesh GUI attempts to discover the type of graphics card driver installed and determine the optimum graphics driver on the user's local hardware capability compatible with the GUI. In some cases there can be a graphics driver mis-match and a blank or dark graphics window appears. 
A : In some cases, specifying an OpenGL2 or DirectX9 driver for the Windows client can overcome this issue. This is done by running the client with the following options: 
boxerclient --ogl2-driver or  
boxerclient --dx9-driver
Failing that, a workaround is to revert to a basic '2D' graphics driver with the option 
boxerclient --2d-driver 
which applies to both the Linux and Windows client.


Q1 : I have selected some facets to assign to a patch but the Assign to Patch function is not available under the RMB or on the toolbar. 
A : Close (Cancel or OK) the currently-open Feature Tree widget (Face Refinement, seed point, Layer Specification etc.). The Assign to Patch function will become available. 

Q2 : I tried to assign some geometry facets to a new patch, but ended up reassigning whole patches rather than the sub-facets I intended. What happened? 
A : You probably forgot to toggle the Micro option during the selection of the geometry facets to be reassigned. If you accidentally did this selection in non-Micro mode, then you will have selected whole patches (i.e. at a "macro" level) rather than the individual facets you were intending.

Q3 : Why can't I make my patch boundaries exactly where I want them? 
A : BOXERmesh will only reassign existing facets of the geometry surface, not make new facets. So the permitted patch boundaries are limited by the resolution of the incoming geometry. You can get an idea of the facet edges by looking at the geometry in wireframe mode; to do this, right-click entities in the Feature Tree and toggle their view to Wireframe.

Q4 : How do I delete empty patches? 
A : By right-clicking the patch-containing part in the Feature Tree and selecting the Delete empty patches option.

Q1 : When running BOXERmesh using a system-installed OpenMPI version, an increase in meshing time is noted compared to running the CFS-bundled OpenMPI. 
A : It has been observed that recent public versions of OpenMPI have introduced an algorithm change that effects the run-time performance of boxerserver. It is recommended to run boxerserver using the mpirun-boxerserver command to address this issue, i.e. to use the particular OpenMPI which is bundled with BOXERmesh itself.

Q2 : I want to run my own version of OpenMPI and have noticed an increase in meshing run times. 
A : We have observed that adding the OpenMPI runtime arguments -mca coll_tuned_use_dynamic_rules 1, -mca coll_tuned_alltoallv_algorithm 1 to the boxerserver command line has a positive effect.

Q3 : Is there an optimum specification for parallel CPU/node usage? 
A : The use of slots=# to specify the number of processors on the parallel compute resource does optimise runtime communications for Boxer. For example, for a host cfd1 with 4 processors, cfd1 slots=4 would be appropriate.  
A : For maximum parallel efficiency during meshing, about one parallel MPI process per million-cell of final mesh is about right.

Q4 : Can I run BOXERmesh with my own MPI implementation? 
A : BOXERmesh is packaged with its own version of OpenMPI 1.10. Use of mpirun-boxerserver will ensure that the packaged version is found. Advanced users can try launching BOXERmesh with any compatible OpenMPI installation, but care must be taken to set up the search path for shared libraries and to launch the executable image directly, avoiding the normal wrapper program.  
For example, 
  export LD_LIBRARY_PATH=/usr/lib64/boxerserver/lib64 
  /my/openmpi/bin/mpirun /usr/lib64/boxerserver/bin/boxerserver
This will leverage a user-provided MPI implementation under  /my/openmpi  to launch the  BOXERmesh server executable image, with LD_LIBRARY_PATH  corrected to provide the non-MPI shared libraries required by BOXERmesh server. To launch the extended precision image, users should start  /usr/lib64/boxerserver/bin/boxerserver-