8

Development of a Mesh Generator for

Finite Element Simulations

Final Year Project

Andrew Beaumont 0209708

Mechanical Engineering with Aeronautics H3H4

Abstract

Creating a mesh is the first step in simulating the forming of textile composite materials FE analysis. MeshGen is a simple and easy to use MATLAB program used to create numerical models of textile composite materials. The generator is split into three sections; Rectangle Mesh, Circle Mesh and Polygon Mesh. Various problems and complications were encountered throughout the project that took away a lot of development time. The Rectangle Mesh is the only generator out of the three that works correctly. Further development is needed on the Circle and Polygon mesh generators. A problem with the Truss element construction in the Circle mesh generator stops it from working correctly during simulations and requires a solution to remove the set of repeated truss elements created during the mesh generation. Only the initial steps, up to the Node positioning, work in the Polygon generator.

Project Objectives

The primary objective for this project was:

1. Create and develop a mesh generator using Matlab. [1]

Additional objectives:

2. Variability function.

This function allows the user to specify different element shapes to replicate a more realistic material.

3. Rotational facility.

This is to allow the user to try different orientations by rotating the mesh by an arbitrary angle.

4. Adding Layers.

- This would allow the user to test multiple layers of composite material at once.

The mesh generator algorithm was divided into three sections. A rectangle mesh generator, circle mesh generator and finally a polygon mesh generator. This would give the user the option of creating a mesh for any shape required.

The rectangle mesh was completed after some minor difficulties. The circle mesh proved to be somewhat more difficult to get working correctly. A solution was found but nearing the end of the project another, quite serious problem was discovered which means, in its current state; the circle mesh generator doesn’t perform correctly. With the polygon section, a complication arose quite early on in its development and with the other problems encountered in the other sections; little progress was made. A lot of time was lost finding solutions and correcting these problems.

Only one of the additional objectives was attempted due to time constraints and that was the Rotational facility. This was implemented into the rectangle mesh generator. Again, further detail can be obtained in the appropriate section.

Although the main objective wasn’t completed, what has been done has potential to be developed further to meet the requirements.

Contents

Abstract 2

Project Objectives 3

Contents 4

Introduction 5

7

MeshGen -

Rectangle Mesh - 8

Circle Mesh - 16

Polygon Mesh - 21

Rotation Function - 24

Results -

Abaqus Simulations - 25

Discussion –

Further Development - 26

References – 27

Appendix 1 –

Circle Mesh imported into Abaqus - 28

Appendix 2 –

Circle Mesh deformed within Blank Holder - 29

Appendix 3 –

Blank Holder and Hemispherical Punch - 30

Appendix 4 –

Circle Mesh showing Shear Angle - 31

Appendix 5 –

Circle Mesh inside Blank Holder - 32

Appendix 6 –

Deformed Circle Mesh showing Shear Angle - 33

Appendix 7 –

Full Code Listing – MeshGen 34

Introduction

A Composite material is one that is made up of two or more distinct elements. The fibre-reinforced composite material is probably the most common composite used today. The fibres themselves come under two categories: Continuous Fibre and Chopped Fibre, with the Continuous Fibre being the stronger of the two. Wide varieties of materials are used to create the fibres, for example: Carbon, Boron, Glass and Aramid (Kevlar). These materials bring different properties to the composite and vary in cost considerably.

Composite materials have been around for decades. First developed by military/defence agencies and others such as NASA for use within their space programs, the new advances in manufacturing the material is becoming much more wide spread. Early applications were the use of carbon and boron fibres within Military aircraft. The advantages of composite materials compared to traditional materials such as metal and plastic, are that composite materials have a much higher stiffness/strength to weight ratio. They can be designed as well as the structure it’s being used to create. The material offers significant increases in fatigue life, corrosion resistance and life cycle cost savings.

Carbon and Aramid fibres were used extensively in solid rocket cases due to the high strength to weight ratio properties. In addition, because of the thermal expansion properties they became much more wide spread on space structures due to the extreme temperature changes that these structures encounter.

Recent examples of composite materials in military applications:

- The United States Commanche Helicopter program, which was recently dropped by the US government due to mounting costs, used a carbon fibre prepreg system with toughened epoxies for 73% of the airframe. The blade spars were also made of a mix of carbon fibre and epoxy material and glass fibre material was used to create the blade skins. [2]

- Boeing’s V-22 Osprey Tilt-rotor aircraft uses carbon fibre material for 42% of its primary structure with an additional 8% of its structure made up of glass fibre/epoxy. [2]

The commercial aviation industry has been much slower to use composite materials in their designs. Airbus was the first of the major commercial aircraft manufacturer’s to introduce a major composite structure in their aircraft back in 1985 when they introduced a carbon fibre/epoxy vertical stabiliser. All models of aircraft following have had this composite structure incorporated within their design. The A340 model uses a carbon fibre horizontal rear stabiliser and the majority of the control surfaces are carbon fibre.

Boeing soon followed suit with composite structures made for their 777 models during the 90’s. More recently though, Boeing’s newest aircraft design, the 787 or “Dream Liner,” will have a much larger percentage of its structure made up of composite materials, nearly 50%. [3]

Other applications range from the automotive industry to sporting goods to pipelines. The majority of products made from composite material are usually high-tech in nature. Formula One racing cars for example, use carbon fibre for their entire body shell. In addition, the chassis and suspension components are constructed from carbon fibre composites.

In recent years, a lot of research has been centred on the manufacturing process of composite materials and finding ways of predicting deformation patterns during material forming. There is now a heavy use of computer modelling and experimental methods to create characterisation methods. Two tests have seen widespread application, namely the picture frame test and the bias extension test. As industry makes greater use of manufacturing design tools such as finite element simulations, the need to standardise these test procedures is urgent. However, there have been many recent developments in these testing procedures. [4]

Computer modelling has become of great interest with the increase of processing power. Many models have been developed [2-10] incorporating a range of material property modelling. [4] Mesh generation is a key part in the modelling process and there are different codes already available. They vary widely and carry certain restrictions for the user. [6,9]

The aim of this project is to develop a simple and easy to use mesh generator that will be able to model a textile composite material accurately enough to predict deformation patterns during material forming. A finite element package will be used to simulate this material forming.

MeshGen

1.0 – Sample of Glass fibre/polypropylene composite

Figure 1.0 above shows a sample of a glass fibre/polypropylene composite. The approach in this code is to model this type of structure using a series of truss and membrane elements. The fibre tows are represented by truss elements while the tow crossover is represented by shell or membrane elements. MeshGen’s primary function is produce an accurate representation of a textile composite which will be used in Finite Element software to simulate the forming of composite materials for use in the aerospace industry.

The structure of this report is to give the reader, who will want to develop the algorithm further, the understanding of the approach and methods used to construct the algorithm.

Rectangle Mesh

The simplest blank shape that can be meshed by square elements is the rectangle. The geometry of the blank is required to build a perimeter. The user is prompted for the Length and Height of the blank and an origin point. The origin point will be the bottom left corner of the rectangle. The perimeter is constructed from this bottom left corner. The Length, Height and origin information is requested by using Matlab's “input” function. Fig 1.00 belwo below shows the user menu that is displayed on the workspace window in Matlab when the Mesh Generator is loaded. The user inputs the information, via the keyboard, when prompted.

1.00 – Rectangle User menu

The four corner points of the rectangle are, (Ox, Oy), (MaxXpos, Oy) (MaxXpos, MaxYpos) and (Ox, MaxYpos) and are calculated by the following functions shown below in Fig 1.01.

%The max x coordinate

MaxXpos = Length + Ox;

%The max y coordinate

MaxYpos = Height + Oy;

%Rectangle Boundary: X and Y co-ordinate’s are put into matrix form

x = [Ox MaxXpos MaxXpos Ox Ox];

y = [Oy Oy MaxYpos MaxYpos Oy];

1.01 – Perimeter position is calculated and placed into matrix form to be plotted

The perimeter is now plotted using the information provided. Fig 1.02 shows a rectangle blank of 5mm x 5mm with an origin of (0,0). The perimeter is highlighted in blue, and as stated, assembled from the origin point.

1.02 – Perimeter of a Rectangle Blank

The next stage is calculating the node positions within the perimeter. These nodes will be used to construct the truss and shell elements. The user is prompted for the element length at the same time as the geometry data. The shell elements are square therefore only the length of one side of the element is needed. Simply dividing the rectangle length and height by the element length produces the node spacing that is required. Fig 1.03a/b illustrates the nodes plotted inside the perimeter, the nodes are shown in red.

(a) – Nodes 1mm apart (b) – Nodes 0.5mm apart

1.03 – Rectangle Blank plotted with Nodes

The first stage of the mesh is nearly completed. The nodes need to be numbered and their positions collated in matrix form. This new matrix will make part of the external file that will hold all the mesh data. For completeness, the row and column position for each node is calculated so that any node can be located easily. This is done by the following function:

%Row and Column positions calculated

row = ((Y - Oy + Element)/Element);

column = ((X - Ox + Element)/Element);

1.04 – Row and Column function

A sample of the Node Matrix from our example is shown in the figure below.

%Node Matrix -> Node Number; X-position; Y-position; Z-position; Row Number; Column Number

1.05 – Part of the Matlab output of Node Matrix

With the nodes in place, the membrane (shell) elements can be constructed using the data from the Node Matrix. This is where the matrix properties of Matlab are used to great effect. The Node Numbers are rearranged as follows:

1.06 – Node Layout

However, because of the way the mesh is calculated from the bottom left corner, the Node Layout matrix shown above needs to be rotated. The correct Node Layout is shown below in Fig 1.07. By using the “flipud” function the Node Layout matrix is corrected. This is only done for clarification and the Node Layout matrix output shown above in Fig 1.06, is the matrix that is used for further manipulation.

1.07 – Node Layout

The Node Layout matrix allows the user to check that all the nodes are numbered and positioned correctly. This feature becomes more important with blank shapes like the circle and the polygon, which are more complex and where the nodes are not necessarily, where you might expect. This will become more apparent later.

By looking again at Node Layout matrix, the elements can be visualised quite easily. For example, the first membrane element would consist of Node Numbers 1,2 8 and 7 and the next would be 2, 3, 9 and 8 etc. To be able to plot the Membrane elements, Matlab requires all the points in the format shown in fig 1.08. This is so that all sides of the element are drawn properly.

Membrane = [NodeLayout (1,1) NodeLayout (1,2) NodeLayout (2,2) NodeLayout (2,1) NodeLayout (1,1)];

1.08 – Membrane Element 1

The Nodes that are used to create Membrane element 1 are found using the Node Layout matrix. To plot each element onto the blank, the X and Y co-ordinates of each node within each element need to be found using the NodeMatrix, see Fig 1.09 . Boundary conditions are calculated and matrix m contains the steps needed to fill the perimeter with membrane elements. See Fig 1.10.

for k= 1:size(NodeLayout,1)-1;

for l= 1:size(NodeLayout,2)-1;

m= [m [NodeLayout(k,l)]];

end

end

for n = m-1;

Xe = [Xe [NodeMatrix((MEle+n),2)]];

Ye = [Ye [NodeMatrix((MEle+n),3)]];

end