Welcome to our Meshing in FEA blog series which will cover the basics of meshing in FEA, specifically in OnScale.
What is meshing?
In Finite Element Analysis (FEA) the goal is to simulate some physical phenomena using a numerical technique called the Finite Element Method (FEM). To quantify physical phenomena such as wave propagation or fluid flow we must use mathematical equations. Most physical phenomena can be solved using Partial Differential Equations (PDEs) but this is very difficult for most real-world problems. Any continuous object has infinite degrees of freedom (DOF) which makes it impossible to solve using hand calculations. So in FEM, we create a mesh which splits the domain into a discrete number of elements for which the solution can be calculated. The data is then interpolated across the whole domain.
Why is meshing important?
Meshing is one of the key components to obtaining accurate results from an FEA model. The elements in the mesh must take many aspects into account to be able to discretize stress gradients accurately. Typically, the smaller the mesh size, the more accurate the solution as the designs are better sampled across the physical domains. The trade-off is that the higher the accuracy, the larger the simulations become and thus solve times are extended. There is no point in spending extra hours running a simulation with a dense mesh if a coarser mesh will give you the results you need! Engineers often perform convergence studies to obtain the optimal balance between accuracy and solve time.
Types of element
It is not just mesh size that matters. Another important meshing consideration is element type. Elements can be 1D, 2D, or 3D with varying aspect ratios. The list below identifies the element type and its use:
|Continuum or solid element||The fundamental element type used for constructing meshes. Can be 2D (quads and tris) or 3D (hexahedral and tetrahedral)|
|Shell Element||For structures that have a dimension (e.g. thickness) that is significantly smaller than the other dimensions|
|Beam Element||For slender structures that resist twisting and bending at the node connections|
|Rigid Element||For constraining parts of the structure|
|Membrane Element||For thin fabric-like surfaces|
|Truss Element||For modeling line-like structures that support loading along the axis of the element|
|Connector Element||For applying a behavior between two nodes, e.g. spring|
|Infinte Element||For unbounded domains|
Meshing in OnScale
Meshing in OnScale is not automatic: OnScale gives users full control over the mesh, and a mesh must be created before allocating materials. Generally, this is very straightforward as most geometries can be very well represented by a fine structured mesh.
The element size, which we typically refer to as box, is one of the key components to obtaining accurate results.
In order to determine the size of box, the smallest wavelength must be calculated by dividing the lowest wave velocity (typically a shear wave velocity) in the model by the highest frequency of interest (? = v / f).
In some cases, the lowest material velocity doesn’t have to be used if you are not concerned with resolving particular wave modes in certain materials. However, when wave modes are not discretized properly by the mesh, results can exhibit additional noise or ringing.
The following is a code snippet of how a mesh would be defined in OnScale’s Analyst mode:
With the smallest wavelength calculated, more elements per wavelength (nepw) can be used to increase accuracy; however, this will increase model size. For example, in 3D models, doubling the number of elements per wavelength will multiply the model size by a factor of eight as there are double the number of elements along all three axes of the structured grid.
Accuracy is subjective and it is up to the user to determine what is required to obtain the best solution. At a minimum, we recommend starting at 15 elements per wavelength, but all users should perform mesh convergence studies to understand how meshing affects their results.