From 0d342f526ebe28ad2ad7558611f2cb55135f21e6 Mon Sep 17 00:00:00 2001 From: Bertrand Coconnier Date: Sat, 11 Mar 2017 14:00:20 +0100 Subject: [PATCH] Exports the parameters of JSBSim ground reactions friction resolver to the property tree for debugging. --- src/FDM/JSBSim/models/FGAccelerations.cpp | 9 ++++++++- src/FDM/JSBSim/models/FGAccelerations.h | 2 ++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/FDM/JSBSim/models/FGAccelerations.cpp b/src/FDM/JSBSim/models/FGAccelerations.cpp index 62fc0e977..048db3d9a 100644 --- a/src/FDM/JSBSim/models/FGAccelerations.cpp +++ b/src/FDM/JSBSim/models/FGAccelerations.cpp @@ -104,6 +104,8 @@ bool FGAccelerations::InitModel(void) vGravAccel.InitMatrix(); vBodyAccel.InitMatrix(); + maxiter = 50; + matrixSize = iter = 0; return true; } @@ -255,6 +257,7 @@ void FGAccelerations::ResolveFrictionForces(double dt) FGColumnVector3 vdot, wdot; vector& multipliers = *in.MultipliersList; size_t n = multipliers.size(); + matrixSize = n; vFrictionForces.InitMatrix(); vFrictionMoments.InitMatrix(); @@ -303,7 +306,7 @@ void FGAccelerations::ResolveFrictionForces(double dt) } // Resolve the Lagrange multipliers with the projected Gauss-Seidel method - for (int iter=0; iter < 50; iter++) { + for (iter=0; iter < maxiter; iter = iter+1) { double norm = 0.; for (unsigned int i=0; i < n; i++) { @@ -384,6 +387,10 @@ void FGAccelerations::bind(void) PropertyManager->Tie("forces/fbx-gear-lbs", this, eX, (PMF)&FGAccelerations::GetGroundForces); PropertyManager->Tie("forces/fby-gear-lbs", this, eY, (PMF)&FGAccelerations::GetGroundForces); PropertyManager->Tie("forces/fbz-gear-lbs", this, eZ, (PMF)&FGAccelerations::GetGroundForces); + + iter = PropertyManager->CreatePropertyObject("numerical/friction-resolver/iterations"); + maxiter = PropertyManager->CreatePropertyObject("numerical/friction-resolver/max-iterations"); + matrixSize = PropertyManager->CreatePropertyObject("numerical/friction-resolver/matrix-size"); } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% diff --git a/src/FDM/JSBSim/models/FGAccelerations.h b/src/FDM/JSBSim/models/FGAccelerations.h index 85dda88bb..b80456cd2 100644 --- a/src/FDM/JSBSim/models/FGAccelerations.h +++ b/src/FDM/JSBSim/models/FGAccelerations.h @@ -40,6 +40,7 @@ INCLUDES #include +#include "simgear/props/propertyObject.hxx" #include "models/FGModel.h" #include "math/FGColumnVector3.h" #include "math/LagrangeMultiplier.h" @@ -391,6 +392,7 @@ private: FGColumnVector3 vGravAccel; FGColumnVector3 vFrictionForces; FGColumnVector3 vFrictionMoments; + simgear::PropertyObject iter, maxiter, matrixSize; int gravType; bool gravTorque;