diff options
author | over0219 <over0219@umn.edu> | 2020-06-26 04:44:31 +0300 |
---|---|---|
committer | over0219 <over0219@umn.edu> | 2020-06-26 04:44:31 +0300 |
commit | fd7bcb209aa7e888a32f980a01d17f79c59b0c51 (patch) | |
tree | 00fbe05ea6a523932d14a88f42bc32a613b2ddf2 /extern/softbody/src/admmpd_solver.cpp | |
parent | 77ca7ab9b3bee0a2dc1ea0fecaafabc2d2c506ac (diff) |
ope forgot some files
Diffstat (limited to 'extern/softbody/src/admmpd_solver.cpp')
-rw-r--r-- | extern/softbody/src/admmpd_solver.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/extern/softbody/src/admmpd_solver.cpp b/extern/softbody/src/admmpd_solver.cpp index 7e0c177ea18..ef1c1b50ca4 100644 --- a/extern/softbody/src/admmpd_solver.cpp +++ b/extern/softbody/src/admmpd_solver.cpp @@ -46,6 +46,8 @@ bool Solver::init( if (!compute_matrices(options,data)) return false; + printf("Solver::init:\n\tNum tets: %d\n\tNum verts: %d\n",T.rows(),V.rows()); + return true; } // end init @@ -304,21 +306,21 @@ void Solver::solve_conjugate_gradients( for (int iter=0; iter<options->max_cg_iters; ++iter) { - for( int i=0; i<3; ++i ) + for (int i=0; i<3; ++i) cgdata->Ap.col(i).noalias() = cgdata->A[i]*cgdata->p.col(i); double p_dot_Ap = mat_inner(cgdata->p,cgdata->Ap); - if( p_dot_Ap==0.0 ) + if (p_dot_Ap==0.0) break; double zk_dot_rk = mat_inner(cgdata->z,cgdata->r); - if( zk_dot_rk==0.0 ) + if (zk_dot_rk==0.0) break; double alpha = zk_dot_rk / p_dot_Ap; data->x.noalias() += alpha * cgdata->p; cgdata->r.noalias() -= alpha * cgdata->Ap; - if( cgdata->r.lpNorm<Infinity>() < eps ) + if (cgdata->r.lpNorm<Infinity>() < eps) break; solve_Ax_b(data,&cgdata->z,&cgdata->r); |