code clean up and optimization

This commit is contained in:
Xuchen Han
2019-09-15 12:06:28 -07:00
parent cd27ffd8b0
commit a0acfd5195
2 changed files with 3 additions and 4 deletions

View File

@@ -22,7 +22,7 @@
btDeformableBodySolver::btDeformableBodySolver() btDeformableBodySolver::btDeformableBodySolver()
: m_numNodes(0) : m_numNodes(0)
, m_cg(20) , m_cg(20)
, m_maxNewtonIterations(5) , m_maxNewtonIterations(10)
, m_newtonTolerance(1e-4) , m_newtonTolerance(1e-4)
, m_lineSearch(true) , m_lineSearch(true)
{ {
@@ -86,7 +86,7 @@ void btDeformableBodySolver::solveDeformableConstraints(btScalar solverdt)
updateEnergy(scale); updateEnergy(scale);
f1 = m_objective->totalEnergy(solverdt)+kineticEnergy(); f1 = m_objective->totalEnergy(solverdt)+kineticEnergy();
f2 = f0 - alpha * scale * inner_product; f2 = f0 - alpha * scale * inner_product;
} while (!(f1 < f2)); // if anything here is nan then the search continues } while (!(f1 < f2+SIMD_EPSILON)); // if anything here is nan then the search continues
revertDv(); revertDv();
updateDv(scale); updateDv(scale);
} }
@@ -155,7 +155,6 @@ btScalar btDeformableBodySolver::computeDescentStep(TVStack& ddv, const TVStack&
btScalar inner_product = m_cg.dot(residual, m_ddv); btScalar inner_product = m_cg.dot(residual, m_ddv);
btScalar res_norm = m_objective->computeNorm(residual); btScalar res_norm = m_objective->computeNorm(residual);
btScalar tol = 1e-5 * res_norm * m_objective->computeNorm(m_ddv); btScalar tol = 1e-5 * res_norm * m_objective->computeNorm(m_ddv);
if (inner_product < -tol) if (inner_product < -tol)
{ {
std::cout << "Looking backwards!" << std::endl; std::cout << "Looking backwards!" << std::endl;

View File

@@ -32,7 +32,7 @@ public:
m_lambda_damp = damping * m_lambda; m_lambda_damp = damping * m_lambda;
} }
btDeformableNeoHookeanForce(btScalar mu, btScalar lambda, btScalar damping = 0.05): m_mu(mu), m_lambda(lambda) btDeformableNeoHookeanForce(btScalar mu, btScalar lambda, btScalar damping = 0): m_mu(mu), m_lambda(lambda)
{ {
m_mu_damp = damping * m_mu; m_mu_damp = damping * m_mu;
m_lambda_damp = damping * m_lambda; m_lambda_damp = damping * m_lambda;