What is ONSAS.m?

ONSAS.m is an Open Nonlinear Structural Analysis Solver for GNU-Octave/Matlab. It consists in a set of implementations of numerical methods for static/dynamic and linear/non-linear analysis of structures. The first version was developed for educational purposes and published in a Structural Analysis handbook.

What can ONSAS.m be used for?

The current version allows to perform dynamic/static nonlinear analyses of beam/truss/solid 3D structures. A reduced list of features is listed at next:

  • Elements 2-node truss, 2-node Bernoulli co-rotational frame, 4-node tetrahedron, 3-node triangle.
  • Static analysis methods Newton-Raphson Method and Cylindrical Arc-Length Method.
  • Dynamic analysis methods Newmark Method and $\alpha$-HHT.

Some examples

A simple wind turbine model

wind turbine animation

wind turbine animation

A tower model

tower animation


A uniaxial extension test

uniaxial animation

uniaxial animation

A beam/truss pendulum

beam truss pendulum

A chain model

chain animation


A transmission line tower model

transmission line


You can send an e-mail to jorgepz[AT] or @raw html <a href=""><img src="" alt="Join the chat at"> </a> .

Contributors and License

The code is distributed under a GNU-GPL 3.0 license.


The following authors collaborated in various tasks including: design, development and testing of the code.

  • Jorge M. Pérez Zerpa (1), leaded and managed the design and development of the code, developed the assembly functions, nonlinear truss element formulation, nonlinear static analysis function, designed and co-authored Newmark's method function, input and output functions, leaded the generation of the documentation.

  • J. Bruno Bazzano (1,2), leaded the development of the nonlinear/linear buckling analysis modules, co-designed the code, developed and implemented validation examples, validated the HHT implementation.

  • Joaquín Viera (1), leaded the development of the Linear Analysis module and input files, collaborated in the design and development of the input reading and output generation modules, leaded the development of GUI.

  • Mauricio Vanzulli (3) co-developed the Newmark's method functions and scripts, developed input files for the dynamic analysis examples.

  • Marcelo Forets (4) developed the Neo-Hookean solid model.

The following authors contributed specific relevant functions:

  • Jean-Marc Battini (5), contributed functions associated with the computation of static internal forces of the nonlinear frame element.

  • Sebastian Toro (6), provided the functions: fLectDxf.m, fValGrCode.m and f_XData.m, used in the dxf import function.


  1. Instituto de Estructuras y Transporte, Facultad de Ingeniería, Universidad de la República, Montevideo, Uruguay
  2. Bazzano & Scelza Ingenieros, Montevideo, Uruguay
  3. Instituto de Ingeniería Mecánica y Producción Industrial, Facultad de Ingeniería, Universidad de la República, Montevideo, Uruguay.
  4. Centro Universitario Regional Este, Universidad de la República, Maldonado, Uruguay
  5. Department of Civil and Architectural Engineering, KTH Royal Institute of Technology, Stockholm, Sweden
  6. CIMEC Santa Fe, Argentina

Contributions and Acknowledgments

The functions in linearStiffMatPlate3D.m and assemblyUniform.m use part of the femplateexample.m code developed by Jorge Pérez Zerpa and Pablo Castrillo.

J. M. Pérez Zerpa would like to thank: Pablo Blanco, Gonzalo Ares and Gonzalo Maso Talou for their numerous and valuable comments and suggestions during early stages of the design of the code.

The development of ONSAS has been partially supported by funds provided by the following agencies/projects:

  • Comisión de Investigación Científica (CSIC) (project: Definición de estrategias para la aplicación de métodos de identificación de material al diagnóstico no invasivo de Cáncer de mama, manager, Prof. Pérez Zerpa),
  • Comisión Sectorial de Enseñanza (project: Rediseño de prácticas de enseñanza y evaluación en Resistencia de Materiales, manager, Prof. Pérez Zerpa),
  • Agencia Nacional de Investigación e Innovación (project VIOLETA, code FSE_1_2016_1_131837, manager, Prof. Gabriel Usera).