Skip to content

Issues with Newmark and Crank-Nicolson schemes for sixDoFRigidBody

Summary

Current implementations of Newmark and Crank-Nicolson schemes are incorrect. They are unstable, meaning that the solution keeps growing.

Steps to reproduce

Can be reproduced by running the case files shared at https://github.com/chennachaos/OpenFOAMsixDOFtest/tree/main

Example case

Example case files are available at https://github.com/chennachaos/OpenFOAMsixDOFtest/tree/main Additional information about the cases and the displacement response is also provided.

What is the current bug behaviour?

The current implementations are unstable, producing a solution that is constantly increasing.

What is the expected correct behavior?

The solution should be a periodic response for a spring-mass system with non-zero initial displacement and/or velocity. It should be easy to test using an analytical solution.

Relevant logs and/or images

Environment information

  • OpenFOAM version : 2312
  • Operating system : Ubuntu 24.04 LTS
  • Hardware info : Dell XPS laptop with Intel i7 processor.
  • Compiler : gcc

Possible fixes

The correct implementation is shown in the script Newmark-beta-explicit.py available in the repository https://github.com/chennachaos/OpenFOAMsixDOFtest/tree/main