Orca3D Marine CFD, which relies on the RANS CFD simulation tool SimericsMP, makes use of multiple types of discrete mesh geometry in order to perform a flow simulation. The term "mesh" is highly overloaded and can mean different things depending on the context it is being used. In the context of Rhino and Orca3D Marine CFD, we are referring to two specific types of mesh, a "surface mesh" to represent the shape of the boundary of the CAD geometry (the vessel) and a "volume mesh" used to represent the fluid volume that is used to compute the numerical solution in SimericsMP.


Rhino recognizes several different geometric entities including points, curves (NURBS, polylines, etc.), surfaces/polysurfaces, meshes, subD, extrusions, and other analytically defined things like spheres. In Rhino, a "mesh" refers to a polygon mesh composed of vertices, edges, and faces as described in https://en.wikipedia.org/wiki/Polygon_mesh. The faces are usually triangles or quadrilaterals but can technically be any dimension polygon. Polygon meshes have discrete locations for the vertices and faces, and therefore are frequently used to represent the shape of geometry for analysis programs that need to generate numerical solutions based on discretized geometry (like potential flow and CFD, and Orca3D's hydrostatics). This faceted polygon mesh is the geometry entity of choice used to represent the shape of the model in SimericsMP (furthermore, it must be a closed mesh to use it in SimericsMP). In the context of an analysis tool like SimericsMP, we refer to these polygon meshes as "surface meshes" in that the mesh elements, the faces/facets, are essentially 2 dimensional having length and width but no height and represent the outer boundary/surface of the geometry. This is in contrast to a "volume" mesh where each mesh element, a polyhedral, is itself a closed volume with length, width, and height. 


When setting up a CFD simulation within Orca3D Marine CFD, the input geometry can include closed Rhino polygon mesh geometry and/or closed Rhino surface geometry. For the latter, the selected Rhino surface geometry must be converted to polygon mesh geometry in order to transfer the surface shape to SimericsMP, via an STL file. Rhino has an internal "mesher" that can create faceted mesh representations from other geometry entities like surfaces. The Rhino "Mesh" command allows the user to select a surface/polysurface and create a polygon mesh that approximates the surface based on various mesh input parameters. This same internal Rhino meshing algorithm is used to create representations for display (rendering mesh), certain analyses like curvature analysis (analysis mesh), and is used by Orca3D for hydrostatics calculations (hydrostatics mesh) and by Orca3D Marine CFD to create mesh representations that are exported to STL files for consumption by SimericsMP. Orca3D generates mesh representations from the surfaces automatically (and with user-controlled settings) when a CFD simulation is generated. The conversion from Rhino surfaces to Rhino meshes can be controlled by the user when creating the simulation. As shown below, the user can select the "Options..." button in the main Orca3D Marine CFD form and then click "Adjust Surface Mesh..." in the Simerics CFD Options form.


This opens the Rhino Mesh Settings form with the current settings and draws the current mesh in the display. In the example below, we've toggled to the Detailed Controls to be able to see all of the settings. The Perspective view is zoomed into the rudder to show the somewhat coarse tessellation around the rudder leading edge. In a simple resistance run like this where the foil is at zero deflection not providing any significant lift, this might suffice. However, for foils that do provide significant lift as well as other appendages with detailed features that are important to resolve at a small scale, it would be desirable to increase the mesh density in order to more accurately define the shape that will be transferred to SimericsMP. Since SimericsMP uses this mesh (in an STL file) to generate the volume mesh for the simulation, it follows that the CFD model can only be as good a representation of the surface(s) as the Rhino mesh that is exported in the STL files.



In the image below, we've changed some of the mesh settings and clicked Preview to show the proposed mesh. Note that these settings do a much better job of resolving the geometry details. It is worth noting that increasing the density of the mesh, as shown here, does not necessarily cause a significant increase in the size of the "CFD mesh" (to be discussed later) and therefore does not generally cause a significant increase in CFD computation time. Sometimes it can actually even shorten the time to solve the simulation. Also worth mentioning is that Orca3D Marine CFD allows the user to use Rhino mesh geometry as the input to the analysis instead of or along with surface geometry. For input mesh geometry, the Rhino mesh is converted directly to an equivalent mesh in SimericsMP, and no adjustment of the mesh as described here is available since the mesh is already defined.



While the surface mesh geometry described above is suitable to describe the shape of the model to be used for the simulation in SimericsMP, it is not suitable for the CFD simulation calculation itself. SimericsMP uses a finite volume discretization of the flow field in order to solve the RANS equations numerically. This CFD mesh is a "volume mesh" composed of many polyhedral (mostly hexahedral) cells that is automatically created by a binary-tree mesh generation process built into SimericsMP. The marine mesher in SimericsMP is very fast, robust, and flexible and is one of the hallmarks of Orca3D Marine CFD that allows fast, consistent, and accurate CFD simulations to be performed by engineers who are not necessarily CFD experts. This mesher uses the surface mesh geometry obtained from Rhino and Orca3D together with additional information about the model to create a CFD volume mesh that contains the appropriate features to give consistent CFD solutions. An example of the CFD mesh for this model is shown below. For clarity this image shows the CFD mesh edges on the domain boundaries, including a symmetry plane on the vessel's centerline.



In addition to the control over the surface mesh described earlier, the Orca3D Marine CFD user can also control the resolution of the CFD volume mesh in several different ways. The first (and simplest) is via the Simerics CFD Options form as shown below. The "CFD Grid Size" provides several different mesh density options varying from Coarse up to Extra_Fine. Each of these choices corresponds to specific settings for the marine mesher. The finer the choice of grid size, the smaller the physical size and larger the number of polyhedral cells in the CFD mesh. This has the effect of improving the numerical convergence of the solution, but also increasing the time to achieve the solution. In general, one can think of the choice of grid size as a tradeoff between accuracy and solution time. As the cell size reduces, SimericsMP is able to more accurately resolve specific flow details and flow phenomena. The "Normal" grid size corresponds to marine mesher settings that in our experience have resulted in a good balance between convergence and solution time. We generally do not recommend using any setting less fine than "Normal" for anything other than learning to use the software or some other very specific scenarios. The recommended way to determine an appropriate grid size for your simulation is to conduct a grid convergence study in which you run the same simulation with varying grid size (say "Normal", "Medium_Fine", and "Fine" and examine the change in results (e.g., pitch, heave, and resistance) with grid size to determine if the numerical solution is sufficiently converged.



This example shows the results of a resistance simulation Grid Convergence Study on a 32' (10m) planing hull. In this case, beyond Medium Fine, the results change very little. But this will vary with different hulls, so it is important to do a similar study at the start of each project.




In addition to the "global" control of CFD mesh via the grid size control, the Orca3D Marine CFD user can also add "local" refinement to the mesh in areas deemed to require greater resolution of the flow. This is accomplished by adding one or more refinement zones to the simulation. Refinement zones are user-defined axis-aligned box and/or cylindrical volumes  in the fluid domain within which a cell size can be specified that is smaller than the cell size of the surrounding volume. To define a refinement zone in Orca3D Marine CFD, first select the option to "Use Grid Refinement Zones" as shown below.


After closing the options form the user will see a new tab called "Refinement Zones" as shown below. Clicking on the "+" icon allows the user to add a new refinement zone.



The location of the box is defined by selecting the opposite corners after clicking "Define..." as shown below, and specifying a cell size. The cell size specified here is a non-dimensional size where the normalization is the longest dimension of the model, usually the length for most ships/boats. The initial cell size of 0.002 is just a guess (that can be adjusted later within SimericsMP as needed) but often results in a reasonable starting point.

In the example below we've defined a refinement zone surround the rudder assuming we would like to better resolve the flow there.


When the marine mesher creates the CFD mesh for this model with these settings, you can clearly see the extra level of refinement in the mesh as shown below.


The third and final way for the Orca3D Marine CFD user to control the resolution of the CFD mesh is by direct input of the settings to the marine mesher. As shown below, once inside the SimericsMP project, the user can select "Built Meshes" from the Geometric Entities tree in order to see the current settings for the marine mesher in the Properties pane. In the example below, we've changed the "Mesh Size" from its default value of "Normal" to "User Defined" in order to expose all of the detailed mesh settings. The definitions for these settings are included in the Orca3D Marine CFD help topic in the Orca help file. Once the user selects the desired settings, clicking the "Build Marine Mesh" button will rebuild the CFD mesh.


This image shows the default mesh on the free surface with a Normal grid setting, for a 10m planing hull at 30 knots:



Then the Wave Zone angle was increased to 45 degrees (for example, to deal with shallow water effects although this is not meant to imply that 45 degrees is the correct value for a given shallow water simulation). Note that the domain was automatically widened as well:


In this example, again we start with a Normal grid setting for the 10m planing hull at 30 knots, showing the symmetry plane:


Now, we increase the Wave Zone Height from 0.25 * Max Dimension to 0.4 * Max Dimension, perhaps to capture an unusually large wake: