tests License

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 for a graduate course taught at the School of Engineering of Universidad de la República. The current version allows to perform a diverse set of simulations and it has been used in specific research applications.

Publications using ONSAS

Journal articles using ONSAS:

  • 2022, M. Vanzulli, J. M. Pérez Zerpa, A consistent co-rotational formulation for aerodynamic nonlinear analysis of flexible frame structures, arXiv article under-review (
  • 2022, M. Forets, D. Freire, J. M. Pérez Zerpa, Combining set propagation with finite element methods for time integration in transient solid mechanics problems, Computers & Structures url

Theses using ONSAS:

  • 2021, M. Vanzulli, Implementación de una formulación corrotacional en dinámica no lineal y aplicación al modelado de líneas de transmisión eléctrica url
  • 2021, A. Teliz, Optimización de torres de alta tensión y su análisis frente a vientos de alta intensidad url

Some example applications

A deployable ring


A simple propeller model

propeller animation

propeller animation

A tower model

tower animation


A uniaxial extension test

uniaxial animation

uniaxial animation

A beam/truss pendulum

beam truss pendulum


Open discussions chat

If you have a question of want to discuss any topic you can write in the ONSAS.m github's dicussions tab.

Direct contact

You can also send an e-mail to jorgepz [AT] .

Zoom meetings

Weekly zoom meetings are also open for anyone to join via this zoom room

Contributors and License


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


The authorship of each version is (or tends to be) based on the criteria defined by the JOSS journal. The co-authors have collaborated in tasks such as: design, development or extensive documentation contributions.

  • 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.

  • Mauricio Vanzulli (2) co-developed the Newmark's method functions and scripts, developed input files for the dynamic analysis examples. Developed the nonlinear dynamic co-rotational frame element function, its validation and integration with the VIV function.

  • Alexandre Villié (3) developed the current Vortex-Induced-Vibrations Wake Oscillator model. Also contributed in the validation of this function in the integration with the co-rotational frame element.

  • 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 a GUI.

  • J. Bruno Bazzano (1), contributed to the design/development of the buckling analysis modules, co-designed the initial version of the code, developed and implemented validation examples, validated the HHT implementation.

  • Marcelo Forets (4) made relevant contributions to application of software technology tools, in particular, the documentation generation workflow. Contributed also to the implementation of the Neo-Hookean solid model.

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


  1. Instituto de Estructuras y Transporte, Facultad de Ingeniería, Universidad de la República, Montevideo, Uruguay
  2. Instituto de Ingeniería Mecánica y Producción Industrial, Facultad de Ingeniería, Universidad de la República, Montevideo, Uruguay.
  3. Department of Mechanical Engineering, Polytechnique Montréal, Montréal, Canada.
  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

Contributions and Acknowledgments

Santiago Correa made contributions to examples, currently available at the documentation site.

The functions in linearStiffMatPlate3D.m and assemblyUniform.m use part of the femplateexample.m code developed by Jorge Pérez Zerpa and Pablo Castrillo. Professor Sebastian Toro, provided functions for reading dxf files, which were part of ONSAS until version 0.2.6.

Prof. Pérez Zerpa would like to thank: Prof. Frédérick Gosselin for his support during the initial contributions of Alexandre Villié, Prof. Eduardo de Souza Neto for his comments on the arc-length norm computation, and Pablo Blanco, Gonzalo Ares and Gonzalo Maso Talou for so many discussions 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).