add relative tolerance for linear solver and newton with line search

This commit is contained in:
Xuchen Han
2019-09-09 16:35:37 -07:00
committed by Xuchen Han
parent 36278edc00
commit 1bc75cc833
6 changed files with 167 additions and 15 deletions

View File

@@ -34,6 +34,7 @@ class btDeformableBodySolver : public btSoftBodySolver
protected:
int m_numNodes;
TVStack m_dv;
TVStack m_backup_dv;
TVStack m_ddv;
TVStack m_residual;
btAlignedObjectArray<btSoftBody *> m_softBodySet;
@@ -45,6 +46,7 @@ protected:
bool m_implicit;
int m_maxNewtonIterations;
btScalar m_newtonTolerance;
bool m_lineSearch;
public:
btDeformableBackwardEulerObjective* m_objective;
@@ -82,6 +84,7 @@ public:
bool updateNodes();
void computeStep(TVStack& dv, const TVStack& residual);
btScalar computeDescentStep(TVStack& ddv, const TVStack& residual);
virtual void predictMotion(btScalar solverdt);
@@ -103,9 +106,13 @@ public:
void updateState();
void updateDv();
void updateDv(btScalar scale = 1);
void updateTempPosition();
void backupDv();
void revertDv();
void updateEnergy(btScalar scale);
btScalar kineticEnergy();
};
#endif /* btDeformableBodySolver_h */