Вы находитесь на странице: 1из 4

CONCORDIA UNIVERSITY

Department of Mechanical, Industrial and Aerospace Engineering


Mechanical forming of metals – MECH 6511 – Winter 2018
Project with Programming

Introduction
The Finite Element Method (FEM) has developed into a key and indispensable technology in the
modeling and simulation of advanced engineering systems in various fields, e.g., housing,
transportation, and communications. In building such advanced engineering systems, engineers and
designers go through a sophisticated process of modeling, simulation, visualization, analysis,
designing, prototyping, testing, and lastly fabrication. There are many works involved before the
fabrication of the final product or system. This is to ensure the workability of the finished product,
as well as for cost effectiveness.
There are numerous physical engineering problems in a particular system, many of them have been
formulated for the many physical phenomena in engineering systems, including mechanics for
solids and structures, heat transfer, acoustic, fluid mechanics, and others. The FEM is a numerical
method seeking an approximated solution of field variables in the problem domain that is difficult
to be obtained analytically, e.g., the problems of stress analysis, thermal analysis, fluid flow
analysis, piezoelectric analysis. The analyst can determine the distribution of some field variables
like the displacement in stress analysis, the temperature or heat flux, and the electrical change.
This project aims to help you understanding how and why FEM is applied to material and
manufacturing studies by implementing it yourself. We will focus on the FEM for the stress analysis
within the mechanical shaping. You will have to derive the mathematics formulations, do the
coding, and apply with applications. You must choose a product or component with a
manufacturing history, and you need to write about the material selection and the manufacturing
technique explaining why they have been used. FEM can be applied for the manufacturing process,
the usage or the inspection.

The Finite Element Method


Generally, the FEM has seven steps:
1. Idealization
The "real" problem is idealized by making assumptions to simplify the problem:
• by reducing the dimensions (all real problems are 3D, but may be idealized with 1D,
2D or 3D models),
• by idealizing the support conditions,
• by suppressing details, such as small holes and fillets, that are insignificant from the
analysis point of view, but which complicate matters during mesh generation.
This step can be dramatically important if the assumptions are not correct!

2. Discretization
The problem domain is discretized into a collection of simple shapes, or elements.

3. Choice of the type of element and compute the local stiffness matrices
1D: Truss, beam, frame, and in their higher orders;
2D: Triangular or quadrilateral (or other) elements and in their higher orders
3D: Tetrahedral or hexahedral (or other) elements and in their higher orders
The results can be very different from one type to another. This is due to the theory hidden
behind those elements. After that, compute all stiffness matrices for the discrete elements
(with isoparametric mapping).
4. Assembly of the discrete elements
The element equations for each element in the FEM mesh are assembled into a set of global
equations that model the properties of the entire system.

5. Application of boundary conditions


Solution cannot be obtained unless boundary conditions are applied. They reflect the known
values for certain primary unknowns. Imposing the boundary conditions modifies the global
equations.

6. Solve for primary unknowns


The modified global equations are solved for the primary unknowns at the nodes.

7. Calculate derived variables


Calculated using the nodal values of the primary variables.

Deadline
Due date: Apr 16th

Programming Language
C++ is suggested and a basic MFC platform will be provided for Visual Studio Community 2017.
You can download VS2017 for free as a student through https://www.visualstudio.com/downloads/
Remember to pick C++ before the installation. You have to do it by choosing the type of installation
as “Custom”, and then select “Visual C++” under Programming Languages.

You can use other programming languages, e.g. Matlab, for the implementation, but you will have
to take care all the implementations including the graphical user interface (GUI) for visualizing the
analysis results. The grading method will also be slightly different for other programming languages
based on the complexity of the languages.
Report
A report describing all the implementation details should be submitted with the program. It should
contain all the steps listed above and refer to the corresponding portions/codes in your program if
necessary.
Remark: You may be able to find a lot of resources for implementing the FEM online. It is not
prohibited to use them as reference, but you cannot directly use them in your code. If you do, it will
be treated as plagiarism and you will get a 0 mark for this project as a penalty (no exception).

Grading
The grading is based on the completeness and the complexity that you have achieved.
Completeness refers to the development of the finite element method (FEM) into window-based
programs solving the real-world problems in mechanical shaping manufacturing. You can think of
you are implementing a commercial FEA software, including the graphical user interface (GUI) and
visualizing the analysis results. Besides, you should also refer to the seven steps listed in the
implementation details, starting from a proper problem identification to the validation. Remember
that finishing the programming doesn't mean the project is complete, as there are a number of steps
not really point to programming. The more complete of your story, program, and the report, the
higher marks you can get. Don't forget to make a good presentation and organization of your report,
and give conclusions and recommendations at the end. Marks are evenly distributed to all the
mentioned components. This portion determines if you will pass the project.
Complexity refers to the implementation of your program and functionality. In the course outline
and implementation detail, you can find the information, e.g., triangular v.s. quadrilateral elements,
2D v.s. 3D FEA (i.e., tetrahedral/hexahedral elements), first v.s. second order elements,
isoparametric mapping. For instance, solving everything in 1D (1D elements, 1D case) could be
enough for the completeness, but definitely not complex. You can treat this is the bonus part. If you
pay more efforts making the program more general that can handle more complex requirements,
then you will be awarded more marks and standing out from other students. This portion determines
your grade of the project.
It seems some of you are using Matlab or other languages, so I would like to remind that your
program must also need to have a proper GUI and visualization, as well as all the functionalities
such as mesh import/generation. The completeness and complexity should be comparable with
those results implemented with MeshWorks.

Submission
For the submission, you will at least submit two files: 1) Report, 2) Archived Program Code (*.zip,
*.rar, etc.). It is also highly recommended to submit 3) Executable Program.
1) In the report, you should give your story, results, the details of your implementation, and the user
guide for your program (your code and the executable program), as complete as possible.
2) The program code is just similar to the MeshWork.rar you downloaded from Moodle. You
archive all the files into one, and submit it to Moodle. For those using MeshWork, you may want to
clean your solution first, which can be done by "Build->Clean Solution" for both Release and
Debug modes if you have used both of them. When you compile your code by "Build->Build
Solution", there are number of libraries and executable files generated which are normally large, so
your submission may exceed the size limit. Cleaning is an inverse process that removes those
generated files. You may also want to delete the MeshWorks.VC.db (or something similar) and ipch
folder (or .vc folder, if any) located just in the root MeshWork folder, which is very large but not
necessary. You final archived file should be having similar size of MeshWork.rar in Moodle:
~6MB.
3) The executable program is one of the generated files mentioned just now, which is an exe file
located in MeshWork\release\MeshWorks.exe. You can copy this and all the *.dll files in the folder
out before cleaning (once you clean, the exe file is removed). Other files (e.g., *.lib, *.pdb) in the
same folder are not needed and they are the generated files, so they will be gone too after cleaning.
This exe and dll files together can be run by themselves without using Visual Studio. Actually, they
are the software you developed. You should also archive them into one and submit to Moodle.

For those using Matlab or other languages, you may not have the executable program, so you just
need to archive all your codes for the submission.

Вам также может понравиться