@@ -67,7 +67,7 @@ MovDirichletSimulator<T, dim>::Impl::Impl(T rho, T side_len, T initial_stretch,
6767 DBC_limit.push_back (0 );
6868 DBC_limit.push_back (-0.6 );
6969 DBC_v.push_back (0 );
70- DBC_v.push_back (-0.5 );
70+ DBC_v.push_back (-1 );
7171 DBC_stiff = 10 ;
7272 x.push_back (0 );
7373 x.push_back (side_len * 0.6 );
@@ -256,7 +256,7 @@ void MovDirichletSimulator<T, dim>::Impl::draw()
256256 }
257257
258258 // Draw masses as circles
259- for (int i = 0 ; i < (x.size () - 1 ) / dim; ++i)
259+ for (int i = 0 ; i < (x.size ()) / dim; ++i)
260260 {
261261 sf::CircleShape circle (radius); // Set a fixed radius for each mass
262262 circle.setFillColor (sf::Color::Red);
@@ -276,7 +276,17 @@ T MovDirichletSimulator<T, dim>::Impl::IP_val()
276276template <typename T, int dim>
277277DeviceBuffer<T> MovDirichletSimulator<T, dim>::Impl::IP_grad()
278278{
279- return add_vector<T>(add_vector<T>(add_vector<T>(add_vector<T>(add_vector<T>(inertialenergy.grad (), massspringenergy.grad (), 1.0 , h * h), gravityenergy.grad (), 1.0 , h * h), barrierenergy.grad (), 1.0 , h * h), frictionenergy.grad (), 1.0 , h * h), springenergy.grad (), 1.0 , 1.0 );
279+ return add_vector<T>(add_vector<T>(add_vector<T>(add_vector<T>(add_vector<T>(inertialenergy.grad (),
280+ massspringenergy.grad (), 1.0 , h * h),
281+ gravityenergy.grad (), 1.0 , h * h),
282+ barrierenergy.grad (), 1.0 , h * h),
283+ frictionenergy.grad (), 1.0 , h * h),
284+ springenergy.grad (), 1.0 , 1.0 );
285+ // return add_vector<T>(add_vector<T>(add_vector<T>(add_vector<T>(inertialenergy.grad(),
286+ // massspringenergy.grad(), 1.0, h * h),
287+ // gravityenergy.grad(), 1.0, h * h),
288+ // barrierenergy.grad(), 1.0, h * h),
289+ // frictionenergy.grad(), 1.0, h * h);
280290}
281291
282292template <typename T, int dim>
0 commit comments