Let us worry about your assignment instead!

We Helped With This Mechanical Engineering Homework: Have A Similar One?

SubjectMechanical Engineering
More InfoMechanical Engineering Assignment Help

Short Assignment Requirements

You need to write a Finite Element Code for 2D trussstructures using 1D Two-Noded Bar Elements.

Assignment Description

DEN331/DENM331 – Coursework on Solids

Ettore Barbieri


       You need to write a Finite Element Code for 2D truss structures using 1D Two-Noded Bar Elements.

       Your submission will have a Main.m file and 5 other .m files, each one containing a function. Put the files in the same folder and compress the whole folder. Submit a .zip file.

       The structure of these 6 files is given to you: you need to write the content of each file.

       You are given some verification examples. You need to write the input to your code and test it.


It’s a group project

    Same groups as the Fluids Coursework.

    Choose a spokesperson, who will submit on behalf of the group.

    All members must contribute (see FAQ).

Electronic submission

– You need to submit your Matlab files (.m) compressed in a .zip file.


– Your Matlab files will need to contain a “Contributions” section (as a comment): your grade will depend on your contribution.

This is what you need to produce

1 of 6 – Main.m

% Call to function to import nodes, elements, Young’s moduli and cross section areas

[Nodes,Elements, E, A] = ReadFiles(‘elements.txt’,’nodes.txt’,’youngs.txt’,’areas.txt’);

% Plot undeformed configuration PlotMesh(Nodes,Elements);

% Define here the boundary conditions

% Your code here: arrays F, Ux, Uy must contain your BCs in this way:

                                                % F =  [NodeID        Fx         Fy]

% Ux = [NodeID value: 0 if fixed, any number otherwise] & Uy = [NodeID value]   see Verification Example 1.

% Call to StiffnessMatrix function

K = StiffnessMatrix(Nodes,Elements,E,A);

% Call to Solve function

[d,R] = Solve(K,F,Ux,Uy);

% Post-processing – Plot Deformed configuration and compute stresses in each bar Stress = PlotDeformed(Nodes,Elements,E,A,d);

% Contributions



                %  STUDENT ID                   NAME SURNAME          CONTRIBUTION

2 of 6 – PlotMesh.m

function PlotMesh(Nodes,Elements)

% Your code here


% Contributions



                                                                                 %  STUDENT ID          NAME SURNAME CONTRIBUTION

3 of 6 – ReadFiles.m

function [Nodes,Elements, E, A] = ReadFiles(el_name,nodes_name,youngs_name,areas_name)

% Your code here


% Contributions




4 of 6 – StiffnessMatrix.m

function K = StiffnessMatrix(X,el,E,A)

% Your code here


% Contributions



                                                                                 %  STUDENT ID          NAME SURNAME CONTRIBUTION

5 of 6 – Solve.m

function [d,R] = Solve(K,F,Ux,Uy)

% Your code here


% Contributions



                                                                                %  STUDENT ID           NAME SURNAME CONTRIBUTION

6 of 6 – PlotDeformed.m

function Stress = PlotDeformed(Nodes,Elements,E,A,d)

% Your code here


% Contributions



                                                               %  STUDENT ID NAME SURNAME CONTRIBUTION


         Your functions need to be written in a general manner, and need to work for an arbitrary number of elements and nodes and for general boundary conditions.

         Your code will be tested against a structure with a large number of elements (around 10,000).

         CODE VERIFICATION: you are given 3 examples with solutions to test the correctness of your code, but the competition will be on a different structure and boundary conditions, unknown to you at the moment.

         The code that produces the exact results in the least time will win!

         All the qualified submissions will be ranked, and marks assigned according to a statistical distribution centred on the median. The fastest code will receive 80/100.



        There are some bonus tasks that are not strictly necessary to pass the coursework, but if your group writes the fastest code and accomplishes all of them, you will receive 100/100.

        You will get extra marks if:

    Your code produces graphs that are aesthetically pleasant.

    Your code is well commented and easy to read and follow to someone external to your group.

    PlotDeformed.m also colors the bars according to the value of stress.

    In addition to the Bar element, your code also uses Beam elements, even in 2D.

    Your code also works in 3D, at least for the Bar elements.

Example 1


reactions ans =

1.0e+03 *

0.0030 0.0040 0.0050



7.9289 2.0711


stresses ans =

1.0e+03 *


1.4645 -1.0355

Example 2

                                                                                                                                                                                                                  Displacements                                                                                                                                                                                                                           reactions                                                                                                                                                                                                                              stresses

                                                                                                                                                                                                                                      ans =                                                                                                                                                                                                                                      ans =                                                                                                                                                                                                                                ans =

                                                                                                                                                                                                                               1.0000                                                                                                                                                                                                                                          0                                                                                                                                                                                                                             1.0e+05 *                                                                                                                                                                                                                       -210.9015

                                                                                                                                                                                                                               2.0000                                                                                                                                                                                                                                          0                                                                                                                                                                                                                           122.4318

                                                                                                                                                                                                                               3.0000                                                                                                                                                                                                                               7.1429                                                                                                                                                                                                                               0.0000                                                                                                                                                                                                                               0.0000                                                                                                                                                                                                                             62.5575

                                                                                                                                                                                                                               4.0000                                                                                                                                                                                                                                           -9.0386                                                                                                                                                                                                                               0.0000                                                                                                                                                                                                                               1.0000                                                                                                                                                                                                                            -44.2349

                                                                                                                                                                                                                               5.0000                                                                                                                                                                                                                               5.2471                                                                                                                                                                                                                               0.0001                                                                                                                                                                                                                               1.0000                                                                                                                                                                                                                         -173.1447

                                                                                                                                                                                                                               6.0000 -16.2965                                                                                                                                                                                                            -88.4697

                                                                                                                                                                                                                               7.0000                                                                                                                                                                                                                               5.2471                                                                                                                                                                                                                             62.5575

8.0000 -20.0881  -173.1447 9.0000 10.4942 -44.2349

                                                                                                                                                                                                                             10.0000                                                                                                                                                                                                                                          0                                                                                                                                                                                                                           122.4318

                                                                                                                                                                                                                             11.0000                                                                                                                                                                                                                               3.3513                                                                                                                                                                                                                         -210.9015

                                                                                                                                                                                                                             12.0000                                                                                                                                                                                                                              -9.0386



                                                                                                                                                                                                                                          0                                                                                                                                1000 2000 3000 4000 5000 6000

Example 3

       Check that in the previous examples:

       det𝐊 = 0

       𝐊; = 𝐊

       More verification examples are in the textbook.

“The deformed configuration seems to be the same as the undeformed configuration…”

– RE: It could be that displacements are really small, hence the deformed configuration is barely visible. Try adding a scaling factor (10, 100, 1000 or more) to your displacements.

Matlab says “Undefined function or variable ...”

– RE: All the files need to be in the same working folder.

“Does each file need to contain a “Contributions” section?”

– RE: Yes. Main.m must contain all the group members with their contribution. Each function also needs to have the same section, but not necessarily contain all the group members, hence I expect that you divide the work equally.

“I did all the work and some of my group mates did not do anything.

Do we get the same grade?”

– RE: No. Let me know promptly of group members who sat back and did nothing, and I will not award them the same mark. If they did absolutely nothing, they will get zero marks.

“I found this book/code on the internet. Can I use it?”

– RE: No. Plagiarism applies to software as well. We have our ways to find out if you take your code is not genuine.

“Nobody in my group is good at programming.”

– RE: Everything you need to know will explained to you in the IT Classes, so do attend.

“How will you time the codes?”

– RE: Using the commands “tic” and “toc” and “timeit”. The measure will be based on the execution of the file “Main.m”.

“What happens if we cannot replicate the verification examples? Will we fail the coursework?”

– RE: No. You will not qualify for the competition, hence will not achieve higher marks. It is unlikely that you will fail the coursework, but it is still possible. I will check the submission and see what went wrong. Sometimes, even simple distraction mistakes will stop your code to run properly. You will also receive a feedback on the errors in your code.

“Will the marks be based only on the speed of the code?”

– RE: Not entirely. I will check the actual code and see what went wrong. Each group will receive a feedback on what could have been done to speed up their code.

       “In Example 1, you gave us the Boundary Conditions, but you didn’t specify them for Example 2”. – RE: You need to write the Boundary Conditions for example 2.

       ”How can I improve the performances of my code?”

– RE:


Frequently Asked Questions

Is it free to get my assignment evaluated?

Yes. No hidden fees. You pay for the solution only, and all the explanations about how to run it are included in the price. It takes up to 24 hours to get a quote from an expert. In some cases, we can help you faster if an expert is available, but you should always order in advance to avoid the risks. You can place a new order here.

How much does it cost?

The cost depends on many factors: how far away the deadline is, how hard/big the task is, if it is code only or a report, etc. We try to give rough estimates here, but it is just for orientation (in USD):

Regular homework$20 - $150
Advanced homework$100 - $300
Group project or a report$200 - $500
Mid-term or final project$200 - $800
Live exam help$100 - $300
Full thesis$1000 - $3000

How do I pay?

Credit card or PayPal. You don't need to create/have a Payal account in order to pay by a credit card. Paypal offers you "buyer's protection" in case of any issues.

Why do I need to pay in advance?

We have no way to request money after we send you the solution. PayPal works as a middleman, which protects you in case of any disputes, so you should feel safe paying using PayPal.

Do you do essays?

No, unless it is a data analysis essay or report. This is because essays are very personal and it is easy to see when they are written by another person. This is not the case with math and programming.

Why there are no discounts?

It is because we don't want to lie - in such services no discount can be set in advance because we set the price knowing that there is a discount. For example, if we wanted to ask for $100, we could tell that the price is $200 and because you are special, we can do a 50% discount. It is the way all scam websites operate. We set honest prices instead, so there is no need for fake discounts.

Do you do live tutoring?

No, it is simply not how we operate. How often do you meet a great programmer who is also a great speaker? Rarely. It is why we encourage our experts to write down explanations instead of having a live call. It is often enough to get you started - analyzing and running the solutions is a big part of learning.

What happens if I am not satisfied with the solution?

Another expert will review the task, and if your claim is reasonable - we refund the payment and often block the freelancer from our platform. Because we are so harsh with our experts - the ones working with us are very trustworthy to deliver high-quality assignment solutions on time.

Customer Feedback

"Thanks for explanations after the assignment was already completed... Emily is such a nice tutor! "

Order #13073

Find Us On

soc fb soc insta

Paypal supported