[MBDyn-users] Exact MBCNodal calling sequence

Richard Crozier r.crozier at ed.ac.uk
Mon Mar 13 18:20:52 CET 2017

I'm hoping I can get some help understanding the exact sequence of 
events when using the MBCNodal C++ class to use libmbc to communicate 
with mbdyn as I can't quite figure it out from the manual or code 
comments. I'm interested in both the loose and tight options, but 
starting with loose.

In the case of loose coupling the manual states the following:

1. MBDyn sends a set of kinematic parameters related to step k after 

2. MBDyn receives a set of forces sent by the external peer the first 
time the residual is assembled within time step k; the external peer 
generated that set of forces based on the predicted kinematics
at step k;

In this case how exactly would I actually implement this sequence in 
terms of calls to MBCNodal.GetMotion(), MBCNodal.F(), MBCNodal.M() and 
MBCNodal.PutForces(), and what is the exact time step at each point in 
the sequence for which forces are being applied, or motion received?

I have tried to look carefully at the documentation, and at the comments 
in libmbc, but I just can't figure it out. I've experimented with 
various sequences, but I would really rather be confident in what I am 

Finally, in general, what should data_and_next be set to? What does it 
mean exactly? Should this change during the simulation process?

Best regards,


The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.

More information about the MBDyn-users mailing list