updateResultingTorqueOnLocal (C++)

Hi,
I’m updating an old constitutive model of mine on PFC7, based on the parallel bond model (Linear Parallel Bond Model Implementation — PFC 7.0 documentation) and I noticed that the actual torque applied on a given particle seems mostly indepenent on the actual moment stored in the bond.

            DAVect pbMomentInc = ang * pbProps_->pbAngStiff_ *(-1.0);
            pbProps_->pb_M_ += pbMomentInc;

How is the applied torque calculated?
If I calculate it as 0.5 * shear force * contact branch, I get a result that is very close to the one provided by PFC but slightly underestimates it (<1% difference).
I see that updateResultingTorqueOnLocal takes in both the shear forces and the bending moment, but I can only trace that method up until the header for IContactMechanical.

If I want to modify the code or to obtain a non-linear bending moment, should I directly act to modify the shear force instead of the bending moment? Again, I am using a parallel bond contact model with gap > 0.

Best regards,
Marco

After a lot of trial and error. It appears that the problem I had (wildly inaccurate bending moment values) was caused by the forceDisplacementLaw method. I had modified the code to assign a specific value instead of adding an increment and for some reason the shear force was not being updated correctly.

RIGHT:
pbProps_->pb_F_ += myForceIncVec;
WRONG:
pbProps_->pb_F_ = myForceVec;

I would assume both of these would result in the same overall force. While this apepars to be the case within the method itself, the latter results in half the shear force being applied in the next step.

Hope this is helpful to someone else

Marco