Erivelton's GSoC 2019

Code Begins - week 1

May 31, 2019 — under ,

This post describes the activities I have been working on this first week of coding period. For the Community Bounding Period I had the chance to work during the first half of the period which resulted in this post: First 10 days in Community Bounding. Check it out in case you haven't had the chance to read yet. For this current post Code Begins - week 1, you will find some introductions of MBDyn tool, Debugging, Beam Theory and Scripts.

MBDyn Tutorial

A Multibody Dynamic (MBD) is the study of rigid or flexible body dynamics interconnected by joints and actuators. The governing equations are described by their kinematic and dynamic behavior. Due to the derivation complexity of equations of motion, Multibody Dynamic software came to mitigate this issue. It has presented several areas of study, such as: Biomechanics, Aerospace engineering, robotics, dynamic simulation and others. A simple example of Multibody system is the following crank-slider mechanism. The governing of equations can be derived by Newton’s second law for instance; however, this task can be easily done using MBD tools. Therefore, for more complex systems, it is inherent the use of MBD software.

Another example which also can be studied by multibody dynamics and is also the focus of this summer code period is to study beam elements system, as the following:

(Example extracted from Sky Engineering Lab)

Studying of MBDyn Syntax

In this meantime, I studied MBDyn Syntax. You might find these tutorials at MBDyn page or Sky Engineering Lab Tutorial.

Here, I briefly summarized some information which can be found in detail on the sources which I already provided. The goal is just to concentrate some meaningful information on this blog for my future references and for others who is looking for a different source to study MBDyn.

The basic structure of the code can be divided in blocks: data, problem, control data, nodes and elements. Additionally, there are two additional blocks, which are optional, drivers and parallel.

Here is a good example about the basic structure:

Debugging Code

In order to get familiar with the code, I felt the need to explore a better debugging tool. I spent quite some time during the Community Bounding Period to figured out tools such as Visual Studio Code, Qt Creator and Eclipse. I have no problem to create a program from scratch and compile using this tool; however, it seems challenging to import an existing project and use all the features.

Saying that, I opened an issue asking for the community. Marco Morandini were really helpful and introduced me gbd. I went over in the following tutorials as suggested by Marco (issue thread):

These sources present meaningful examples for better understanding of gbd. The example found on “gbdtutorial” were really helpful.

Therefore, in order to debug Mbdyn, I can run the following line of code for instance:

export PATH=${PATH}:/usr/local/mbdyn/bin/
gdb mbdyn

This was helpful because I could get a better glance about the structure of the code and how it is the code workflow, such as, passing input, some math operation and others.

As a side studying, I created some code examples for debugging, which can be found here.

Beam Element

Beams are compliance elements which presents a length greater than the dimensions perpendicular to the bar axis. L >> (w, t). When subject to external forces and moments, the beam elements may have axial deformation, shear deformation, curvature and torsion.

For example, for an analysis of pure bending, Normal Strain is proportional to the distance from the neutral surface and inversely proportional to the radius of curvature. Those analysis are inspired by Bernoulli theory, which has it owns assumptions. Euler beams are characterized by considering null shear deformation . In order to mitigate this assumption, Finite Volume C^0 beams allows deformation analysis with high level of flexibility (Ghiringhelli, Masarati, & Mantegazza, 2000). Additionally, the Finite Volume approach also mitigates the shear locking effect which is found when low-order shape functions are used to interpolate nodal displacements and rotations.

As stated in the previous post (https://eriveltongualter.github.io/GSoC2019-MBDyn/bounding-I.html), an additional paper was tasked for reading:

This first week, I continued the reading of these papers and I still have some lack of some concepts which seems required for further understand. Since, I haven’t taken a Finite Elements course, in order to mitigate the lack in this area, I am using an extra reference source, which is the book called: A first course in Finite Elements by Jacob Fish (Fish & Belytschko, 2012).

Beam Element Scripts

I gathered all the existent beam script examples I could find in other to study. I added those to the following repository folder (https://github.com/EriveltonGualter/GSoC-MBDyn):


Theme created by Jim Crist. Licensed under Creative Commons.

Find me on Twitter, GitHub, old personal webpage, or shoot me an email.