Overview of Meshing Process

AcuMeshSim is a standalone C++ program. It can be run from the command line, but is more often run directly from AcuConsole.

AcuMeshSim requires three types of input:
  • CAD model
  • .ams file containing the mesh attributes
  • Command line options, typically specified in the Acusim.cnf file

AcuMeshSim operates directly on the underlying CAD model.

  • When it performs surface meshing, it actually queries the underlying CAD kernel to determine where the node should fall in parametric space on the CAD face. This ensures precise representation of the CAD.
  • The input CAD model must be a "non-manifold" model. The non-manifold model is created automatically when you import a CAD model into AcuConsole. The process used to create the non-manifold representation of the geometry resolves overlapping volumes, eliminates duplicate faces, knits surfaces to form solids, if directed to, and performs unioning between adjacent components.
  • CAD model can be discrete. However, working with this format eliminates many of the benefits of AcuMeshSim.
  • In all cases, AcuMeshSim requires a clean CAD. This means that the geometry may not have unjoined edges, unattached surfaces, gaps between common edges of surfaces, invalid spline representations of faces, and so on.

AcuMeshSim uses a hybrid meshing approach

  • It uses a combination of octree, advancing front and delaunay meshing to produce the final mesh.
  • The dominant approach for most cases is octree. This has some important implications.
  • Octree meshing relies on the following relationship to determine the size of the volume elements: size = globalSize*2^n where: n=integer value, positive or negative, and globalSize = the global length scale of the model.
  • This means that volume element sizes in large open regions are restricted to a power of 2 of the global mesh size, that is, you may not get the size you requested.
The following process is used for meshing the geometry:
  • Evaluate all sizes set by you. The smallest size always wins.
  • Mesh the surfaces using a delaunay triangulation approach
  • The surface mesh sizes will be met exactly
  • Grow any boundary layer mesh into the volume by extruding the surface faces
  • Fill the volume with elements using the octree approach and mesh the interface regions between boundary layer/surface meshes using various techniques
  • Delaunay, advancing front, decimation, and so on
  • Smooth the mesh, perform and improvements that are possible, then write the data to disk