lesm—an object-oriented matlab program for structural...

19
Received: 25 July 2018 | Accepted: 18 November 2018 DOI: 10.1002/cae.22097 RESEARCH ARTICLE LESMAn object-oriented MATLAB program for structural analysis of linear element models Rafael Lopez Rangel | Luiz Fernando Martha Department of Civil and Environmental Engineering, Pontifical Catholic University of Rio de Janeiro, Rio de Janeiro, Brazil Correspondence Luiz Fernando Martha, Department of Civil and Environmental Engineering, Pontifical Catholic University of Rio de Janeiro, Rua Marquês de São Vicente 225Gávea, Rio de Janeiro, RJ, 22451-900, Brazil. Email: [email protected] Funding information National Council for Scientific and Technological Development (CNPq); the Pontifical Catholic University of Rio de Janeiro (PUC-Rio); the PUC-Rio Technical- Scientific Software Development Institute (Tecgraf/PUC-Rio) Abstract This paper describes the implementation of a MATLAB program based on the Object Oriented Programming paradigm for linear-elastic analysis of one-dimensional element models using a conventional displacement-based procedure. The main objective is the development of an educational tool on matrix structural analysis with a didactic and well-documented open source code, which allows any user to implement new procedures with relative simplicity. The LESM (Linear Elements Structure Model) program can handle different types of analysis models, such as 2D/ 3D frames and trusses, and grillages. In addition, both Euler-Bernoulli and Timoshenko theories for bending behavior of beam elements are considered. The OOP class architecture was devised for generically handling these different types of analyses models and element types. The MATLAB script codes of all classes and methods of LESM, including its documentation, are available in its site (www. tecgraf.puc-rio.br/lesm). KEYWORDS educational software, MATLAB program, matrix structural analysis, object-oriented-programming 1 | INTRODUCTION One of the most important fields of study that must be mastered by every civil engineering student is the structural analysis. It consists of modeling a structure, evaluating its behavior and interpreting the analysis results. The advances in computer science turned structural analysis into a process of computational simulation of structures behavior. There are many available structural analysis programs, some of them are intended for commercial use, while others have educational or scientific purposes, such as [1,3,16,17,19,21,29,30,33]. It is noticed that most commercial software works like a black-box,where all the process of computing the results is hidden from users. Usage of closed structural analysis programs is very important in the design of structures and is also beneficial in the educational process of engineering, since students can improve their design skills and their sensibility to the response of structures [3]. However, practicing with closed programs, without understanding how they are implemented, deprives students of the implementation phase. This intermediate stage, between theory and the blind use of a program, is very important for the assimilation of a computer-based method. Therefore, tools where students can work at the source code level, or allow students to be a part of the process of creating the apps that will be used to solve their problems [5], are necessary to complement theoretical aspects. Even though there are a number of educational programs that share the approach of providing open source code, very few of them have adequate and didactic documentation. This paper presents an educational tool with transparent imple- mentation in order to meet this lack of appropriate tools for teaching matrix structural analysis. The LESM (Linear Elements Structure Model) program was developed at the Department of Civil and Environmental Engineering of Pontifical Catholic University of Rio de Comput Appl Eng Educ. 2019;119. wileyonlinelibrary.com/cae © 2019 Wiley Periodicals, Inc. | 1

Upload: others

Post on 24-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

Received: 25 July 2018 | Accepted: 18 November 2018

DOI: 10.1002/cae.22097

RESEARCH ARTICLE

LESM—An object-oriented MATLAB program for structuralanalysis of linear element models

Rafael Lopez Rangel | Luiz Fernando Martha

Department of Civil and EnvironmentalEngineering, Pontifical Catholic Universityof Rio de Janeiro, Rio de Janeiro, Brazil

CorrespondenceLuiz Fernando Martha, Department of Civiland Environmental Engineering, PontificalCatholic University of Rio de Janeiro, RuaMarquês de São Vicente 225–Gávea, Riode Janeiro, RJ, 22451-900, Brazil.Email: [email protected]

Funding informationNational Council for Scientific andTechnological Development (CNPq); thePontifical Catholic University of Rio deJaneiro (PUC-Rio); the PUC-Rio Technical-Scientific Software Development Institute(Tecgraf/PUC-Rio)

Abstract

This paper describes the implementation of aMATLABprogram based on theObject

Oriented Programming paradigm for linear-elastic analysis of one-dimensional

element models using a conventional displacement-based procedure. The main

objective is the development of an educational tool on matrix structural analysis with

a didactic and well-documented open source code, which allows any user to

implement new procedures with relative simplicity. The LESM (Linear Elements

Structure Model) program can handle different types of analysis models, such as 2D/

3D frames and trusses, and grillages. In addition, both Euler-Bernoulli and

Timoshenko theories for bending behavior of beam elements are considered. The

OOP class architecture was devised for generically handling these different types of

analyses models and element types. The MATLAB script codes of all classes and

methods of LESM, including its documentation, are available in its site (www.

tecgraf.puc-rio.br/lesm).

KEYWORDS

educational software, MATLAB program, matrix structural analysis, object-oriented-programming

1 | INTRODUCTION

One of the most important fields of study that must bemastered by every civil engineering student is the structuralanalysis. It consists of modeling a structure, evaluating itsbehavior and interpreting the analysis results. The advances incomputer science turned structural analysis into a process ofcomputational simulation of structures behavior. There aremany available structural analysis programs, some of themare intended for commercial use, while othershave educational or scientific purposes, suchas [1,3,16,17,19,21,29,30,33]. It is noticed that mostcommercial software works like a “black-box,” where allthe process of computing the results is hidden from users.

Usage of closed structural analysis programs is veryimportant in the design of structures and is also beneficial inthe educational process of engineering, since students canimprove their design skills and their sensibility to the response

of structures [3]. However, practicing with closed programs,without understanding how they are implemented, deprivesstudents of the implementation phase. This intermediatestage, between theory and the blind use of a program, is veryimportant for the assimilation of a computer-based method.Therefore, tools where students can work at the source codelevel, or allow students to be a part of the process of creatingthe apps that will be used to solve their problems [5], arenecessary to complement theoretical aspects.

Even though there are a number of educational programsthat share the approach of providing open source code, veryfew of them have adequate and didactic documentation. Thispaper presents an educational tool with transparent imple-mentation in order to meet this lack of appropriate tools forteaching matrix structural analysis.

The LESM (Linear Elements Structure Model) programwas developed at the Department of Civil and EnvironmentalEngineering of Pontifical Catholic University of Rio de

Comput Appl Eng Educ. 2019;1–19. wileyonlinelibrary.com/cae © 2019 Wiley Periodicals, Inc. | 1

Page 2: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

Janeiro (PUC-Rio) and at the Institute of Technical-Scientific Software Development of PUC-Rio (Tecgraf/PUC-Rio). It performs linear-elastic analysis of two andthree-dimensional linear element models, such as frames,trusses, and grillages, using the direct stiffness method. Thetwo most common theories for the idealization of bendingbehavior of beam elements are considered: Euler-Bernoulliand Timoshenko. The program was designed as acomplementary tool for undergraduate and graduatestructural analysis courses at PUC-Rio, focusing on thedevelopment of simple and didactic algorithms to performeach step of the analysis.

Some features of the LESMprogram that provide studentsan efficient way to learn and practice aspects of computationalimplementation on structural analysis are:

� MATLAB programming language: The development ofprograms in MATLAB is done in a high-level program-ming language with an extensive library of predefinedfunctions, making it easy to understand even for those whoare not familiar with any programming language. Oper-ations and manipulation of matrices and vectors, which isvery frequent in a structural analysis programs, can beexecuted with simple commands [8].

� Object-Oriented Programming (OOP): This programmingparadigm is based on the idea of classes, data abstraction,encapsulation, polymorphism, and inheritance [6,9,24].These features are great facilitators for understandingthe code structure and has proven to be very beneficialto the development and maintenance of flexibleand extendable engineering programs as shownby [2,11,12,18,20,23,25,26,34].

� Documentation: Awell-documented code is the key tomakeit easier to understand, maintain, modify, and extend. Thesource code of LESM is fully commented with detailedexplanations of each file and function. In addition, it isrepresented by the UML pattern, whose diagrams graphi-cally show different aspects of the program design [7].

� Available source code and documentation: The MATLABscript codes of all classes and methods of LESM,including its documentation, are available in its site1;see Published Files2 and Methods Diagram3. Inaddition, a link to the URL address of each methodis provided.

The second section of this paper describes the consider-ations of the different analysis models supported by theLESM program. The third section aims to present the

organization and relationships of the OOP classes of LESM,and justify the advantages of the OOP approach in a structuralanalysis program. The fourth section brings themain conceptsinvolved in the idealization of linear elements behavior. Thefifth section shows how objects relate to perform thestructural analysis according to the steps of the directstiffness method. The sixth section demonstrates the use ofthe program and the benefits of adopting the OOP paradigm.The seventh section describes the educational methodologyadopted in relation to working in the source code level andgives some feedback from student experience. Finally, the lastsection gives some concluding remarks and points to futuredevelopments.

2 | ANALYSIS MODELS

This section describes the types of analysis models handled byLESM. These analysis models are frequently adopted asanalytical abstractions of the behavior of structural systems.In this work, members of any type of analysis model aregenerically referred to as elements.

Two coordinate systems are used to locate points anddefine directions in space. Both of them are Cartesian,orthogonal, and right-handed systems. Every structuralmodel is disposed in an absolute coordinate system calledglobal system (XYZ), and each of its elements has its owncoordinate system called local system (xyz). Two-dimensional models are always considered laid in theglobal XY-plane.

2.1 | Truss analysis model

� Truss elements are bars connected by frictionless pins(hinges), as shown in Figure 1. Therefore, a truss elementdoes not present any bending or torsionmoment induced byrotation continuity at nodes.

� A truss model is loaded only at nodes. Any load actionalong an element is statically transferred as concentratedforces to the element ends.

� There is only one type of internal force in a truss element:axial force.

� Each node of a truss model has only translational degrees-of-freedom (DOF): displacements in X and Y-axisdirections for 2D models and X, Y, and Z-axis directionsfor 3D models.

2.2 | Frame analysis model

� Frame elements may be rigidly connected at nodes, or havea hinge at one or both ends (see Figure 2).

� It is assumed that a hinge in a 2D frame element releasesrotation continuity about Z-axis direction, while a hinge in

1https://web.tecgraf.puc-rio.br/lesm2https://web.tecgraf.puc-rio.br/lesm/v1/publish/main.html3https://web.tecgraf.puc-rio.br/lesm/v1/methods/MethodsDiagram.pdf

2 | RANGEL AND MARTHA

Page 3: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

a 3D frame element releases rotation continuity in alldirections.

� Internal forces of a 2D frame element are axial force (in x-axis direction), shear force (in y-axis direction), andbending moment (about z-axis direction).

� Internal forces of a 3D frame element are axial force (in x-axis direction), shear forces (in y-axis and z-axisdirections), bending moments (about y-axis and z-axisdirections), and torsion moment (about x-axis direction).

� Each node of a 2D frame model has three DOF:displacements in X and Y-axis directions, and rotationabout Z-axis direction.

� Each node of a 3D frame model has six DOF: displace-ments in X, Y, and Z-axis directions, and rotations about X,Y, and Z-axis directions.

2.3 | Grillage analysis model

� Beam elements are laid out in a grid pattern in theXY-plane,rigidly connected at nodes, or with a hinge at one or bothends (see Figure 3).

� It is assumed that a hinge in a grillage element releasescontinuity of both flexural and torsion rotations.

FIGURE 1 Positive directions of the degrees-of-freedom of truss elements

FIGURE 2 Positive directions of the degrees-of-freedom of frame elements

FIGURE 3 Positive directions of the degrees-of-freedom of a grillage element

RANGEL AND MARTHA | 3

Page 4: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

� By assumption, there is only out-of-plane behavior, whichincludes displacements transversal to the grillage plane,and rotations about in-plane axes.

� Internal forces of a grillage element are shear force (in z-axis direction), bending moment (about y-axis direction)and torsion moment (about x-axis direction).

� Each node of a grillagemodel has three DOF: displacementin Z-axis direction, and rotations about X and Y-axisdirections.

3 | OBJECT ORIENTEDPROGRAMMING CLASSES

The development of computer programs with the OOPapproach consists in the construction of independentmodules, called objects, which can be easily reused, modified

and replaced. In this case, the program is a collection ofdistinct objects that relate to perform some type of activity.For further insight on the OOP paradigm concepts, the readeris referred to Refs. [6,9,24], and Refs. [7,15] for informationabout the UML pattern, which is used to graphically illustratethe structure of an object-oriented code.

3.1 | The OOP classes of the LESM program

The classes adopted in a program of linear-elastic analysis oflinear elements structures arise naturally. It is intuitive that theproblem demands the definition of classes associated withlinear elements, nodes, materials, cross-sections, etc. How-ever, the definition of some classes is not so obvious, such as aclass for handling specific aspects of different analysismodels. The classes implemented in the LESM program toperform the structural analysis (not including subclasses) are

FIGURE 4 UML class definitions of the LESM program

4 | RANGEL AND MARTHA

Page 5: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

described below and illustrated in Figure 4, following theUML standard of software modeling.

� Drv4 (Driver): This class defines an object that drives thestructural analysis. The main global variables of a typicalstructural analysis program are properties of the Drv class.Its methods consist of general analysis steps that do notdepend on the analysis model or element type.

� Anm5 (Analysis Model): This is an abstract superclass thatdeclares abstract methods that define the generic behaviorof all types of analysis models. These methods areimplemented in the subclasses that deal with specifictypes of analysis: Anm_Truss2D6, Anm_Truss3D7, Anm_-Grillage8, Anm_Frame2D9, and Anm_Frame3D10.

� Elem11 (Element): This is an abstract superclass thatgenerically specifies a three-dimensional linear elementobject. This superclass implements methods related to thegeneric mechanical behavior of linear elements (methods foraxial and torsional behavior), anddeclares abstractmethods todeal with specific flexural behaviors, which are implementedin the subclasses Elem_Navier12 and Elem_Timoshenko13.

� Lelem14 (Load Element): This is an abstract superclass thatgenerically specifies an object that represents elementinternal loads (distributed loads and temperature varia-tions). Load values and directions are properties of thisclass, while activities related to the element behaviorsubjected to load actions are methods of this class. Thissuperclass implements methods related to the generic axialbehavior, and declares abstract methods related toparticular flexural behaviors of elements subjected tointernal loads, which are implemented in the subclassesLelem_Navier15 and Lelem_Timoshenko16.

� Node17: This class defines node objects. A node is a jointbetween two or more elements, or any element end, used todiscretize the model. It is always considered as a three-dimensional entity.

� Material18: This class defines material objects. Allmaterials are considered to have linear-elastic behavior,with homogeneous and isotropic properties.

� Section19 (Cross-Section): This class defines cross-sectionobjects of a generic type, which means that particularshapes are not specified; only their geometric properties areprovided.

As amatter of didactics, it was opted for a relaxation in thefidelity to data encapsulation in the implementation of LESM.Accessing the properties of an object through formal methodsmakes the code a little less clear and succinct than when directaccess is allowed. Because of that, all properties are public.

In the sequel of this work, a method of the LESM programis generally referenced by a tag name of the type Superclass.method.

3.2 | The relationships between classes

During the analysis process, only one object of the Drv andAnm classes is created. Meanwhile, multiple objects of theElem, Lelem, Node, Material, and Section classes can becreated depending on the number of entities related to theseclasses the model has.

The object of the Drv class can be interpreted as an objectthat represents the structural model as a whole. Therefore, thisobject needs to store all model information in its properties. Itmust have a handle to the object of the Anm class as well asvectors of handles to the objects of all elements, nodes,materials, and cross-sections.

An element in turn needs to have access to the material andcross-section that composes it, and to the two nodes that defineits beginning and its end. It is also necessary for an element tocheck which analysis model it belongs. In addition, there is amutual relationbetweenanobject of theElem class and anobjectof theLelem class, since each element has its own loadpropertiesand each load object must be associated to an element.

A graphicalway of representing these relationships betweenclasses is through the class diagram of the UML modelinglanguage, presented in Figure 5 for the LESM program.

4 | IDEALIZATION OF LINEARELEMENTS BEHAVIOR

In the current work, linear-elastic analysis of prismatic elements(constant cross-section) is assumed. As a consequence, axial,flexural, and torsional behaviors of elements are uncoupled, so

4https://web.tecgraf.puc-rio.br/lesm/v1/publish/drv.html5https://web.tecgraf.puc-rio.br/lesm/v1/publish/anm.html6https://web.tecgraf.puc-rio.br/lesm/v1/publish/anm_truss2d.html7https://web.tecgraf.puc-rio.br/lesm/v1/publish/anm_truss3d.html8https://web.tecgraf.puc-rio.br/lesm/v1/publish/anm_grillage.html9https://web.tecgraf.puc-rio.br/lesm/v1/publish/anm_frame2d.html10https://web.tecgraf.puc-rio.br/lesm/v1/publish/anm_frame3d.html11https://web.tecgraf.puc-rio.br/lesm/v1/publish/elem.html12https://web.tecgraf.puc-rio.br/lesm/v1/publish/elem_navier.html13https://web.tecgraf.puc-rio.br/lesm/v1/publish/elem_timoshenko.html14https://web.tecgraf.puc-rio.br/lesm/v1/publish/lelem.html15https://web.tecgraf.puc-rio.br/lesm/v1/publish/lelem_navier.html16https://web.tecgraf.puc-rio.br/lesm/v1/publish/lelem_timoshenko.html17https://web.tecgraf.puc-rio.br/lesm/v1/publish/node.html

18https://web.tecgraf.puc-rio.br/lesm/v1/publish/material.html19https://web.tecgraf.puc-rio.br/lesm/v1/publish/section.html

RANGEL AND MARTHA | 5

Page 6: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

they can be considered separately and overlapping, resulting inthe same responses as when acting together.

For frame and grillage models, two bending behaviortheories are considered: Euler-Bernoulli theory (also knownas Navier beam) [4,13] and Timoshenko's theory [27,28,31].These theories are equivalent for the axial and torsionalbehaviors. Therefore, in truss models, these two theories maybe used indistinguishably, since there is only axial behavior ina truss element. Figure 6 summarizes the formulations of bothflexural behavior theories.

The mathematical expressions necessary for the implemen-tation of a matrix analysis program of linear element models,considering the uncoupled deformation behavior of elements,are shape functions, fixed-end-forces, and stiffness coefficients.All of these expressions related to axial and torsional behaviorsare independent of the flexural behavior theory adopted. For theflexural behavior, generic expressions are derived by introduc-ing auxiliary parameters, following the developments ofRef. [27], that unifies the two bending theories. Theseparameters are based on the Timoshenko's dimensionlessparameter that relates bending rigidity with shear rigidity,presented in Figure 6 and reproduced in Equation 1.

Ω ¼ EIGAS

⋅1l2

ð1Þ

This parameter multiplies exclusive expression terms ofTimoshenko's theory. When Euler-Bernoulli theory isadopted, shear deformation is neglected and the shear rigidityis assumed infinity. This assumption leads to a null value ofthe Timoshenko's parameter [31] and unitary values of theauxiliary parameters. The results are the classical expressionsof Euler-Bernoulli beam theory. Therefore, the sameexpressions could be used for both bending theories. In spiteof this, distinct classes were adopted to emphasize symmetrybetween the expressions from both theories.

The aforementioned mathematical expressions will bebriefly discussed in the following subsections, and theirexpressions are given in the LESM source code, as well as theauxiliary parameters for bending behavior.

4.1 | Shape functions

Shape functions are used in a displacement-based matrixanalysis of linear elements to interpolate the solution of acontinuous field along an element between the discrete values

FIGURE 5 UML class diagram of the LESM program

6 | RANGEL AND MARTHA

Page 7: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

at its nodes. These functions are the analytical homogeneoussolution of the differential equations that governs theuncoupled behaviors of an element when unitary field valuesare assumed as essential boundary conditions. The shapefunctions with suitable boundary conditions for axialdisplacement and transversal displacement in xy-plane aregraphically illustrated in Figures 7 and 8, respectively.

The expressions for axial displacement shape functions areimplemented in method Elem.axialDisplShapeFcnVector20. Theimplementation of transversal displacement shape functions forboth xy and xz planes are given in methods Elem.

FIGURE 6 Idealization of flexural behavior of beam elements

20https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Elem/axialDisplShapeFcnVector.html

RANGEL AND MARTHA | 7

Page 8: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

flexuralDisplShapeFcnVector_XY21 and Elem.flexuralDisplSha-peFcnVector_XZ22 of subclasses Elem_Navier andElem_Timoshenko.

4.2 | Fixed-end-forces

The external solicitations distributed over an element aretransferred to its ends as equivalent nodal loads (ENL), whichmust be energetically consistent to produce the samevirtualworkover node displacements as the external solicitation producesover the element displacement field. In the case of linear elementswith uniform cross-section, ENL have the connotation of fixed-end-force (FEF) support reactions with opposite directions [10].

The determination of the FEF of a prismatic element withboth ends rigidly connected, subjected to a generic trapezoi-dal load covering its entire length, is based on the Betti'stheorem [32], following a procedure described by Ref. [10].The result of this procedure is a generic integral expression tocalculate all components of FEF caused by distributed loads.Based on the principle of virtual displacements (PVD), asimilar generic expression is obtained to calculate the FEFresulting from the effects of temperature variations onelements [22]. To consider an element with a rotation releaseat one or both ends (hinged connections), straightforwardstatic condensation procedures should be used [22].

The physical interpretation of FEF for axial and flexuralbehaviors are illustrated in Figures 9 and 10, respectively.There is no torsional FEF because distributed torsionalmoment is not a load type considered by the LESM program.

The axial FEF expressions are implemented in methodLelem.axialDistribLoadFEF23, considering only the effect of alinearly distributed load, and method Lelem.axialThermal-LoadFEF24 considering only the effect of temperaturevariation. The flexural FEF expressions considering only theeffect of a linearly distributed load are implemented inmethodsLelem.flexuralDistribLoadFEF_XY25 and Lelem.flexuralDis-tribLoadFEF_XZ26 of subclasses Lelem_Navier and Lelem_-Timoshenko. The flexural FEF expressions considering onlythe effect of temperature variation are implemented inmethodsLelem.flexuralThermalLoadFEF_XY27 and Lelem.flexuralTh-ermalLoadFEF_XZ28 of the same subclasses.

FIGURE 8 Transversal displacement shape functions in xy-plane

FIGURE 7 Axial displacement shape functions

21https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Elem/flexuralDisplShapeFcnVector_XY.html22https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Elem/flexuralDisplShapeFcnVector_XZ.html

23https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Lelem/axialDistribLoadFEF.html24https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Lelem/axialThermalLoadFEF.html25https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Lelem/flexuralDistribLoadFEF_XY.html26https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Lelem/flexuralDistribLoadFEF_XZ.html27https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Lelem/flexuralThermalLoadFEF_XY.html28https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Lelem/flexuralThermalLoadFEF_XZ.html

8 | RANGEL AND MARTHA

Page 9: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

4.3 | Stiffness coefficients

The linear relationship between the forces and momentsacting on the element ends with its nodal displacements androtations is expressed by a stiffness matrix, which isassembled by stiffness coefficients formally defined as:

kij →Force or moment in the direction of DOF i necessaryto maintain an isolated element in equilibrium when a unitarydisplacement or rotation is imposed in the direction of DOF j.

The physical interpretation of axial and flexural (in local xy-plane) stiffness coefficients are illustrated in Figures 11 and 12,respectively, where a unitary displacement or rotation is imposed

FIGURE 9 Fixed-end-forces for linearly distributed axial load and uniform temperature variation

FIGURE 10 Fixed-end-forces for linearly distributed transversal load and uniform transversal temperature gradient

FIGURE 11 Physical interpretation of axial stiffness coefficients

FIGURE 12 Physical interpretation of flexural stiffness coefficients in local xy-plane

RANGEL AND MARTHA | 9

Page 10: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

at each element end. An analogous interpretation might be givenfor flexural stiffness coefficients in xz-plane. Similarly, torsionalstiffness coefficients correspond to the resulting moments from aunitary torsional rotation imposed at each element end.

The implementation of axial and torsional stiffnesscoefficients matrices is given respectively in methods Elem.axialStiffCoeff29 and Elem.torsionStiffCoeff30. The flexuralstiffness coefficients are implemented in methods Elem.flexuralStiffCoeff_XY31 and Elem.flexuralStiffCoeff_XZ32 ofsubclasses Elem_Navier and Elem_Timoshenko.

3.4 | Element behavior for specific analysis models

All elements are treated as three-dimensional entities, and theflexural behavior is always specified in the two principalplanes of inertia of the element cross-section. It is up to the

analysis model of each element to assemble its shape functionmatrix, FEF vector in local system, and stiffness matrix inlocal system. These assemblies are made using specific termshandled by the current analysis model.

In the LESM program, these steps are performed by themethods Anm.displShapeFcnMtx33 (assembly of shapefunction matrix), Anm.elemLocDistribLoadFEF34, andAnm.elemLocThermalLoadFEF35 (assembly of FEF vectorfor distributed load and temperature variation), and Anm.elemLocStiffMtx36 (assembly of stiffness matrix), of thecorresponding analysis model subclass.

Equations 2, 3, and 4 exemplifies the assembly of thementioned arrays for a generic 3D frame element. Theanalysis model of a 3D frame element is the most generalcase because it makes use of all behavior types (axial,torsional, and flexural effects in two planes).

½N� ¼Nu

1 xð Þ 0 0 0 0 0 Nu2 xð Þ 0 0 0 0 0

0 Nv1 xð Þ 0 0 0 Nv

2 xð Þ 0 Nv3 xð Þ 0 0 0 Nv

4 xð Þ0 0 Nw

1 xð Þ 0 Nw2 xð Þ 0 0 0 Nw

3 xð Þ 0 Nw4 xð Þ 0

264

375 ð2Þ

ff elg ¼ f ea1 f ef xy1 f ef xz1 0 f ef xz2 f ef xy2 f ea2 f ef xy3 f ef xz3 0 f ef xz4 f ef xy4� �T ð3Þ

kel½ � ¼

kea11 0 0 0 0 0 kea12 0 0 0 0 0

0 kef xy11 0 0 0 kef xy12 0 kef xy13 0 0 0 kef xy140 0 kef xz11 0 kef xz12 0 0 0 kef xz31 0 kef xz14 0

0 0 0 ket11 0 0 0 0 0 ket12 0 0

0 0 kef xz21 0 kef xz22 0 0 0 kef xz23 0 kef xz24 0

0 kef xy21 0 0 0 kef xy22 0 kef xy23 0 0 0 kef xy24kea21 0 0 0 0 0 kea22 0 0 0 0 0

0 kef xy31 0 0 0 kef xy32 0 kef xy33 0 0 0 kef xy340 0 kef xz31 0 kef xz32 0 0 0 kef xz33 0 kef xz34 0

0 0 0 ket21 0 0 0 0 0 ket22 0 0

0 0 kef xz41 0 kef xz42 0 0 0 kef xz43 0 kef xz44 0

0 kef xy41 0 0 0 kef xy42 0 kef xy43 0 0 0 kef xy44

266666666666666666666666664

377777777777777777777777775

ð4Þ

29https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Elem/axialStiffCoeff.html30https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Elem/torsionStiffCoeff.html31https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Elem/flexur-alStiffCoeff_XY.html32https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Elem/flexuralStiffCoeff_XZ.html

33https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/displShapeFcnMtx.html34https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/elemLocDistribLoadFEF.html35https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/elemLocThermalLoadFEF.html36https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/elemLocStiffMtx.html

10 | RANGEL AND MARTHA

Page 11: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

5 | THE STRUCTURAL ANALYSISPROCESS BASED ON THE OOPCLASS ORGANIZATION

The main goal of the direct stiffness method is to computedisplacements and rotations, support reactions, and internalforces of linear element models. This is done by solving thefollowing system of nodal equilibrium equations:

K½ � Df g ¼ Ff g→ Kf f� �

Kfs� �

Ksf� �

Kss½ �

" #Df

� �Dsf g

( )¼ Ff

� �Fsf g

( )

ð5Þ

in which, K½ � is the global stiffness matrix, Df g is the globaldisplacement vector, and Ff g is the global forcing vector.This system of equations is partitioned in two parts, one forthe free DOF (subscript f ) and the other for the constrainedDOF (subscript s). The unknowns of this system are thefree nodal displacements and rotations, Df

� �, and the force

or moment components in the directions of fixed DOF,Fsf g. The system partitioning is done by numbering freeDOF before fixed ones.

5.1 | Initial steps

The Drv.process37 method is responsible for calling all othermethods. Figure 13 shows the UML sequence diagram for theinitial steps: dimensioning the stiffness, displacement, andforcing arrays (method Drv.dimKFD38); numbering theglobal DOF as described above (methods Anm.setupDOF-Num39 and Drv.assembleDOFNum40); assembling the gathervectors that store the global DOF numbers of each element(method Drv.assembleGle41); inserting the prescribed dis-placements in the global displacement vector (method Anm.setupPrescDispl42).

The setupDOFNum and setupPrescDispl methods belongto the Anm class because they need to access the specific DOFnumbers used by the elements of that analysismodel. The othermethods have a generic implementation for any model type.

5.2 | Assembly of the global stiffness matrix

The Drv.gblMtx43 method is responsible for assembling theglobal stiffness matrix by running a loop over all elements(see diagram of Figure 14). In each interaction, the Elem.gblStiffMtx44 and the Drv.assembleElemMtx45 methods areinvoked. The first returns the element stiffness matrix inglobal system and the second inserts its coefficients in thecorrect positions of the global matrix.

The Elem.gblStiffMtxmethod returns an element stiffnessmatrix in global system by calling the Anm.elemLocStiffMtx46

method, which provides the element matrix in local system,and then applies a rotation transformation from local systemto global system. To assemble the element matrix in localsystem, the Anm.elemLocStiffMtx method calls specificmethods of the Elem class, mentioned in the end of subsection4.4, that return the stiffness coefficients for each elementbehavior handled by its analysis model.

5.3 | Assembly of the global forcing vector

Each position of the global forcing vector, including thoseconstrained by supports, stores combined nodal loads. Theseare the combination of applied nodal loads (concentrated

FIGURE 13 UML sequence diagram of the initial steps of theanalysis process

37https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Drv/process.html38https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Drv/dimKFD.html39https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/setupDOFNum.html40https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Drv/assembleDOFNum.html41https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Drv/assembleGle.html42https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/setupPrescDispl.html

43https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Drv/gblMtx.html44https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Elem/gblStiffMtx.html45https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Drv/assembleElemMtx.html46https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/elemLocStiffMtx.html

RANGEL AND MARTHA | 11

Page 12: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

forces or moments) with ENL (element FEF with oppositedirections) resulting from distributed loads or temperaturevariations on elements. The applied nodal loads are directlyinserted into the corresponding position of the global forcingvector in the Anm.nodalLoad47 method.

For each element, the Drv.elemLoads48 method calls theLelem.gblDistribLoadENL49 and the Lelem.gblThermalLoa-dENL50 methods (see diagram of Figure 15). These methodsreturn the element ENL vectors in global system fordistributed load and temperature variation, respectively.This is done by calling the Anm.elemLocDistribLoadFEF51

method and/or the Anm.elemLocThermalLoadFEF52 method,which provide the FEF vector in local system according to thecurrent analysis model, and then applying a rotationtransformation and inverting its direction. The coefficientsof the ENL vectors are inserted to the correct positions of theglobal forcing vector in the Drv.assembleENL53 method.

5.4 | Solving the system of equations

The system of equilibrium equations is solved in the Drv.solveEqnSystem54 method (indicated in Figure 15). The freenodal displacements and rotations are obtained by the solutionof the first row of Equation 5, as follows:

Df� � ¼ Kf f

� ��1 Ff� �� Kfs

� �Dsf g� � ð6Þ

Considering that vector Fsf g previously stores combinednodal loads applied directly to constrained DOF, tocompute the support reactions, it is necessary to superim-pose � Fsf g to the solution of the second row of Equation 5:

Fsf g ¼ � Fsf g þ Ksf� �

Df� �þ Kss½ � Dsf g ð7Þ

5.5 | Computation of internal forces

Internal forces of elements are computed at its endsconsidering the effects of global and local analysis. Theeffects of global analysis come from the results of nodaldisplacements and rotations of the system of equilibriumequations while the local fixed-end effects come fromdistributed loads or temperature variations on elements.

The internal forces from local analysis are the FEF. Tocompute element internal forces from global analysis, its nodaldisplacements, degf g, is extracted from the global displace-ment vector and rotated to the local system, delf g. Thedisplacement vector in the local system is then multipliedby the element stiffness matrix, kel½ �, resulting in internalforces acting in the directions of the element local DOF:

f elf g ¼ kel½ � R½ � degf g ¼ kel½ � delf g ð8ÞThe computation of internal forces is performed by the

Drv.elemIntForce55 method, as shown in the sequencediagram of Figure 16. In each iteration of a loop over allelements, the Anm.initIntForce56 method is called to initializethe vectors of internal forces with null values. The resultsfrom global analysis is returned from the Elem.gblAnlInt-Force57 method. This method computes the internal forces atthe ends of each element based on its nodal displacements androtations. The results from local analysis are previously storedwhen local FEF are calculated. The combination of the resultsfrom global and local analyses are then added to the internalforces vector in the Anm.assembleIntForce58 method.

6 | EXAMPLE

A simple 2D framemodel is adopted to demonstrate the use ofthe LESM program and the OOP approach. Figure 17 shows aframe in the XY-plane with three nodes and two elements,both Navier beams. Node 1 is restricted in the Y-axisdirection, node 3 is restricted in the X and Y-axis directions,and element 2 has a uniform distributed load of 5 kN/m. Theinput data file read by the program is also presented. It is a textfile, with .lsm extension, that stores all the information neededfor the analysis following the neutral file format described inRef. [14].

The developed OOP class organization allows a generictreatment of the model attributes. All node, element, load, and

47https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/nodalLoads.html48https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Drv/elemLoads.html49https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Lelem/gblDistribLoadENL.html50https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Lelem/gblThermalLoadENL.html51https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/elemLocDistribLoadFEF.html52https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/elemLocThermalLoadFEF.html53https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Drv/assembleENL.html54https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Drv/solveEqnSystem.html

55https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Drv/elemIntForce.html56https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/initIntForce.html57https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Elem/gblAnlIntForce.html58https://web.tecgraf.puc-rio.br/lesm/v1/methods/Methods%20Anm/assembleIntForce.html

12 | RANGEL AND MARTHA

Page 13: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

cross-section objects are three-dimensional entities, whichmeans that their properties store the values read from all threedimensions. It is up to an object of the Anm class (in fact, anobject of a subclass of the Anm superclass) to identify whichuncoupled behaviors and DOF must be used for the assemblyof the system of equilibrium equations.

For example, the method Anm.elemLocStiffMtx, toassemble the stiffness matrix of an element in local system,needs to access stiffness coefficients associated with differentbehaviors of the element in different planes, depending on theanalysis model. The assembly of this matrix for a 3D framewas presented in Equation 4. For the given 2D frame, it isnecessary to obtain the axial stiffness coefficients and theNavier formulation of flexural stiffness coefficients in the xy-plane, using the Elem.axialStiffCoeff and Elem.flexuralStiff-Coeff_XY methods, according to the scripts shown in thesequel:

Thus, the element does not need to adapt to the analysismodel,having its behavior available to anymodel that requests it. TheAnm object is the one that adapts the element to the targetanalysis. Notice that in method Anm.elemLocStiffMtx the callto method Elem.flexuralStiffCoeff_XY is generic, working forNavier or Timoshenko elements. This is an example ofpolymorphism in the current OOP implementation.

Another example of polymorphism is in the method Elem.gblStiffMtx. This method is used to rotate an element stiffnessmatrix from its local system to the global system, as indicatedbelow. The call to method Anm.elemLocStiffMtx is alsogeneric, and the actual method that is called is the oneassociated to the target analysis model.

The output of the analysis results provided by the programfor the example of Figure 17 is given below.

The class organization also makes the code become wellmodulated, allowing its easy modification and expansion. Forexample, to create a new analysis model, or a new elementtype, it is just needed to inherit a subclass from the Anm class,or from the Elem and Lelem classes. These new subclassesmust implement the abstract methods to deal with the specificbehavior of the analysis model or element created.

7 | EDUCATIONAL METHODOLOGY

This article describes the organization of classes andmethods,in the context of OOP, of a program developed in theMATLAB environment for linear-elastic analysis of linearelements structures. Although the program has a guided andactive user interface, the objective of this work is to describeonly the analysis module of the program. Another article isbeing prepared by the authors to describe the use of theprogram as a complete educational graphics tool. In this

RANGEL AND MARTHA | 13

Page 14: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

sense, the educational tool described in this article serves touncover the steps of an analysis of structures by the directstiffness method in an organized and well documented way.The main point here is that working in the source code levelallows students to really assimilate a computer-basedmethod.

With this objective in mind, the program was used fortwo semesters in the discipline of analysis of staticallyindeterminate structures of the Civil Engineering course ofPontifical Catholic University of Rio de Janeiro(PUC-Rio). The educational methodology adopted wasto provide the complete structure of the classes of theprogram's source code, but incompletely presenting thecontents of the methods, so that the students could fill inthe gaps, as individual works. For example, the sourcecode shown in the previous section of the methods Elem.axialStiffCoeff, Elem_Navier.flexuralStiffCoeff_XY, andAnm_Frame2D.elemLocStiffMtx would be provided tothe students as follows:

A typical assignment to the students would be to ask them tostudy the theory related to the creation and assemblage of the

FIGURE 14 UML sequence diagram of the assembly of the global stiffness matrix

14 | RANGEL AND MARTHA

Page 15: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

stiffnessmatrix of a two-dimensional framemember in its localsystem and to complete the source code of these methods.

Several assignments of these types were proposed duringa course semester, covering the entire analysis module ofLESM program. Written exams would also cross-evaluateaspects of the direct stiffness method and its implementation.

In PUC-Rio all disciplines are evaluated by the students atthe end of each semester. The feedback provided by thestudents of the two semesters of the present structural analysis

class was very positive. A student made a report thatsummarizes the success of the adopted methodology: “Iappreciated the methodology used in the structural analysiscourse. Through the computational implementation it waspossible to really understand the method of structure analysisemployed. If it had been asked to implement the programfrom a blank page it would have been almost impossible for anormal civil engineering student to complete it. On the otherhand, the organization of the code provided by the

FIGURE 15 UML sequence diagram of the assembly of the global forcing vector

RANGEL AND MARTHA | 15

Page 16: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

object-oriented programming, coupled with high-level pro-gramming in MATLAB, greatly aided the learning process.”

8 | CONCLUSIONS

A common scenario in practice is analyzing a structure usingclosed commercial programs. These programs generally offera variety of element formulations and analysis models, suchas bars, beams, plates, shells, axisymmetric solids, general 3Dsolids, and so on. When a user chooses an element type andanalysis model, he or she is automatically accepting theirmathematical formulation and their simplifying assumptions.In an ideal scenario, users should formulate the problem andwrite a program. However, this approach requires hightechnical knowledge, and programming experience.

The purpose of this work, is to have an open, well-documented, and easily extended program available. A typicaluser is an engineering student, or a professional who has little

knowledge of computer implementation. The ease of extend-ing the LESM code allows a normal user to, not only use theprogram, but also to implement new procedures or other typesof elements and analysis models with relative simplicity.

To achieve this goal, the MATLAB platform with theOOP paradigm proved to be an appropriate approach. TheOOP paradigm provides an intrinsic incremental nature of thedevelopment of a structural analysis system, as new featurescan be easily incorporated in the system. Moreover, the use ofOOP leads to a more close integration between the matrixstructural analysis theory and the computer implementation,improving the program understandability and easing thesystem documentation.

One contribution of this paper is the proposed OOP classorganization. Some classes may be obvious in the context ofmatrix structural analysis (i.e., classes for material, element,cross-section, or node). However, dealingwith different types ofstructure models in a generic fashion led to the definition of animportant class of the LESM program: the Analysis Model(Anm) class.This class is responsible for generically handling thedifferent aspects of 2D and 3D trusses, 2D and 3D frames, andgrillagemodels,which are treated by each subclass of classAnm.

Flexural behavior of beam elements was also treatedgenericallywith the introduction of some auxiliary parameters,in the LESMsource code, that unifies the expressions for shapefunctions, stiffness coefficients, and fixed-end-forces of Euler-Bernoulli and Timoshenko theories. Although, with thisunification, there is no need to separate mechanical andloading behaviors for the two bending theories, in LESMdistinct classes were adopted for the sake of emphasizing thesymmetry between the expressions from both theories.

Another important component is the source codedocumentation of LESM, which is based on formal softwareengineering design: the UML pattern. This is complementedwith the documentation files generated by command Publishof MATLAB, which is available in the LESM website.

FIGURE 16 UML sequence diagram of the computation of internal forces

FIGURE 17 2D frame model and its input data file

16 | RANGEL AND MARTHA

Page 17: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

Possible future developments include the extension of theanalysis options, such as the consideration of physical and/orgeometric nonlinearity. When dealing with second-orderanalyzes, it is necessary to solve numerically a system ofnon-linear equations by an appropriate method. In this case, aclass responsible for the implementation of the numericalsolution algorithms of the systemmust be included. Therefore,the class that drives the structural analysis (currently the Drvclass) would be split into an algorithm class and a classresponsible for the data and general behavior of the model.

ACKNOWLEDGMENTS

The authors would like to thank the National Council forScientific and Technological Development (CNPq), thePontifical Catholic University of Rio de Janeiro (PUC-Rio), and the PUC-Rio Technical-Scientific SoftwareDevelopment Institute (Tecgraf/PUC-Rio) for the financialsupport and for providing the necessary space andresources used during the development of this work. Theauthors are also grateful to former undergraduate studentand intern of Tecgraf/PUC-Rio, Murilo Felix Filho, whocontributed to the development of the program sourcecode.

NOMENCLATURE

l→ element lengthE→ material elasticity modulusG→ material shear modulusα→ material thermal expansion coefficientA→ cross-section area (Ax)As → cross-section effective shear area (Ay or Az)I→ cross-section moment of inertia (Iz or Iy)Jt → cross-section torsional moment of inertia (Ix)Ω→ Timoshenko's basic parameterqx → axially distributed load on elementqx0→ uniform component of axially distributed loadqx1→ linear component of axially distributed loadqy → distributed load transverse to the element y-

axisqy0→ uniform component of distributed load trans-

verse to the element y-axisqy1→ linear component of distributed load transverse

to the element y-axisqz → distributed load transverse to the element z-

axisqz0 → uniform component of distributed load trans-

verse to the element z-axisqz1 → linear component of distributed load transverse

to the element z-axis

ΔTx → uniform temperature variation in the center ofgravity of the element cross-section

ΔTy → transversal temperature gradient along theelement y-axis (ΔTbottom � ΔTtop)

ΔTz → transversal temperature gradient along theelement z-axis (ΔTbottom � ΔTtop)

V→ shear forceM→ bending momentf elf g→ element fixed-end-force vector in local systemf eai → element axial fixed-end-force componentf ef xyi → element flexural fixed-end-force component in

xy-planef ef xzi → element flexural fixed-end-force component in

xz-planekel½ �→ element stiffness matrix in local systemkeaij → element axial stiffness coefficientketij→ element torsional stiffness coefficientkef xyij → element flexural stiffness coefficient in xy-

planekef xzij → element flexural stiffness coefficient in xz-

planeu0 → axial displacement of an element pointv0 → displacement transverse to the element y-axisw0 → displacement transverse to the element z-axisθ→ cross-section rotation about element z-axis

from bending effectϕ→ cross-section rotation about element y-axis

from bending effectN½ �→ shape function matrixNu

i → axial displacement shape functionNv

i → transversal displacement shape function inlocal y-axis (xy-plane)

Nwi → transversal displacement shape function in

local z-axis (xz-plane)εfx → normal deformation in axial direction from

bending effectγs → distortion from shear effectσfx → normal stress in axial direction from bending

effectτxy → tangential stress from shear effectc0,c1,c2,c3 → integration constants

ORCID

Luiz Fernando Martha http://orcid.org/0000-0002-5783-5151

REFERENCES

1. U. Ahmad (2013) Development of a structural analysis program(SABSM) using MATLAB featuring graphical user interface.Dissertation, City University of London

RANGEL AND MARTHA | 17

Page 18: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

2. G. Archer, G. Fenves, and C. Thewalt, A new object oriented finiteelement analysis program architecture. Comput. Struct. 70 (1999),63–75

3. S. Barreto, R. Piazzalunga, and V. Ribeiro, A web-based 2Dstructural analysis educational software. Comput. Appl. Eng.Educ. 11 (2003), 83–92. https://doi.org/10.1002/cae.10040

4. F. P. Beer et al.,Mechanics of Materials. McGraw-Hill Education,New York, 2014.

5. P. L. Bishay, “FEApps”: Boosting students’ enthusiasm for codingand App designing, with a deeper learning experience inengineering fundamentals. Comput. Appl. Eng. Educ. 24 (2016),456–463. https://doi.org/10.1002/cae.21723

6. G. Booch et al., Object-oriented analysis and design withapplications. Addison-Wesley, Upper Saddle River, NJ, 2007.

7. G. Booch, J. Rumbaugh, and I. Jacobson, The unified modelinglanguage user guide. Addison-Wesley, Upper Saddle River, NJ, 2005.

8. S. Chapman, MATLAB programming for engineers. CengageLearning, Boston, 2015.

9. B. Cox and A. Novobilski, Object-oriented programming: anevolutionary approach. Addison-Wesley, Upper Saddle River, NJ,1991.

10. L. P. Felton and R. B. Nelson, Matrix Structural Analysis, JohnWiley & Sons, New York, 1996

11. G. Fenves, Object-oriented programming for engineering softwaredevelopment. Eng. Comput. 6 (1990), 1–15

12. B. W. R. Forde, R. O. Foschi, and S. F. Stiemer, Object-orientedfinite element analysis. Comput. Struct. 34 (1990), 355–374

13. B. J. Goodno and J. M. Gere, Mechanics of Materials. CLEngineering, Boston, 2017.

14. https://web.tecgraf.puc-rio.br/neutralfile/15. http://www.uml.org/

16. P. Krysl and A. Trivedi, Instructional use of MATLAB softwarecomponents for computational structural engineering applications.Int. J. Engng. Ed. 21 (2005), 778–783

17. J. Lee and S. Ahn, Finite element implementation for computer-aided education of structural mechanics: frame analysis. Comput.Appl. Eng. Educ. 22 (2011), 387–409. https://doi.org/10.1002/cae.20563

18. R. I. Mackie, Object-oriented programming of the finite elementmethod. Int. J. Numer. Meth. Eng. 35 (1992), 425–436

19. L. F. Martha, (1999) Ftool: A structural analysis educationalinteractive tool. Proceedings of Workshop in MultimediaComputer Techniques in Engineering Education, Institute forStructural Analysis, Technical University of Graz, Austria, pp.51–65.

20. L. F. Martha and E. Parente, An object-oriented framework forfinite element programming. Proceedings of the Fifth WorldCongress on Computational Mechanics, IACM, Vienna, Austria,2002. on-line publication (ISBN 3-9501554-0-6), Paper-ID:80480, p. 10

21. MASTAN2 (http://www.mastan2.com)22. W. McGuire, R. Gallaguer, and R. Ziemian, Matrix Structural

Analysis. John Wiley & Sons, New York, 2000.23. G. R. Miller, An object-oriented approach to structural analysis

and design. Comput. Struct. 40 (1991), 75–82.24. M. O'Docherty, Object-oriented analysis and design: understand-

ing system development with UML 2.0. John Wiley & Sons,Chichester, West Sussex, England, 2005.

25. R. M. V. Pidaparti and A. V. Hudli, Dynamic analysis of structuresusing object-oriented techniques. Comput. Struct. 49 (1993),149–156

26. B. Raphael and C. S. Krishnamoorthy, Automating finite elementdevelopment using object-oriented techniques. Eng. Computation10 (1993), 267–278.

27. J. N. Reddy, On locking-free shear deformable beam finiteelements. Comput. Methods Appl. Mech. Eng. 149 (1997),113–132

28. J. N. Reddy, C. M. Wang, and K. H. Lee, Relationships betweenbending solutions of classical and shear deformation beamtheories. Int. J. Solids Struct. 34 (1997), 3373–3384

29. SALT. (http://saltserver.org)30. Y. Suh, Development of educational software for beam loading

analysis using pen-based user interfaces. J. Comput. Des. Eng. 1(2014), 67–77. https://doi.org/10.7315/JCDE. 2014.007

31. S. P. Timoshenko and J. M. Gere, Theory of elastic stability. DoverPublications, New York, 2012.

32. R. N. White, P. Gergely, and R. G. Sexsmith, StructuralEngineering − Combined Edition − Vol. 1: Introduction to DesignConcepts and Analysis − Vol. 2: Indeterminate Structures. JohnWiley & Sons, New York, 1976.

33. X. F. Yuan and J. G. Teng, Interactive web-based package forcomputer-aided learning of structural behavior. Comput. Appl.Eng. Educ. 10 (2002), 121–136. https://doi.org/10.1002/cae.10020

34. T. Zimmermann et al., Object-oriented finite element program-ming: I. Governing principles. Comput. Methods Appl. Mech. Eng.98 (1992), 291–303.

R. L. RANGEL is a master's student inthe Civil Engineering program of thePontifical Catholic University of Riode Janeiro (PUC-Rio), Brazil. In histhesis, he carries a research on theimplementation of geometricallynonlinear structural analysis of fram-ed models. He received his under-

graduate degree in Civil Engineering from PUC-Rio in2016, when he developed the LESM program for struct-ural analysis of linear elements. He is also member of theModeling and Visualization in Engineering and Geology(MVGEO) group of the Tecgraf Institute of Technical-Scientific Software Development of PUC-Rio (Tecgraf/PUC-Rio).

L. F. MARTHA is an associate profes-sor in Civil Engineering at PontificalCatholic University of Rio de Janeiro(PUC-Rio), Brazil, and member of theTecgraf Institute of Technical-Scien-tific Software Development of PUC-Rio (Tecgraf/PUC-Rio). He got hisPhD degree in Structural Engineering

in 1989 from Cornell University, working in the CornellFracture Group and in the Cornell Program of Computer

18 | RANGEL AND MARTHA

Page 19: LESM—An object-oriented MATLAB program for structural …webserver2.tecgraf.puc-rio.br/~lfm/papers/Rangel_Martha... · 2020. 1. 6. · OOP class architecture was devised for generically

Graphics. His research interests include structural analy-sis, computational mechanics, educational software, meshgeneration, geometric modeling, and computer graphics.He is author of two text books related to structural analysisand has published several articles in congresses and peerreview journals.

How to cite this article: Rangel RL, Martha LF.LESM—An object-oriented MATLAB program forstructural analysis of linear element models. ComputAppl Eng Educ. 2019;1–19.https://doi.org/10.1002/cae.22097

RANGEL AND MARTHA | 19