diff --git a/drmsimulationmodel.cpp b/drmsimulationmodel.cpp index 0c41318..4e682d1 100755 --- a/drmsimulationmodel.cpp +++ b/drmsimulationmodel.cpp @@ -805,9 +805,9 @@ void DRMSimulationModel::updateResidualForcesOnTheFly( pMesh->EN(), std::vector>(4, {-1, Vector6d()})); // omp_lock_t writelock; // omp_init_lock(&writelock); -#ifdef ENABLE_OPENMP -#pragma omp parallel for schedule(static) num_threads(5) -#endif + //#ifdef ENABLE_OPENMP + //#pragma omp parallel for schedule(static) num_threads(5) + //#endif for (int ei = 0; ei < pMesh->EN(); ei++) { const EdgeType &e = pMesh->edge[ei]; const SimulationMesh::VertexType &ev_j = *e.cV(0); @@ -1005,8 +1005,8 @@ void DRMSimulationModel::updateResidualForcesOnTheFly( Node::Forces &force = pMesh->nodes[vi].force; const Vector6d &nodeResidualForce = force.residual; sumOfResidualForces = sumOfResidualForces + nodeResidualForce; - const double residualForceNorm = nodeResidualForce.norm(); - // const double residualForceNorm = nodeResidualForce.getTranslation().norm(); + // const double residualForceNorm = nodeResidualForce.norm(); + const double residualForceNorm = nodeResidualForce.getTranslation().norm(); const bool shouldTrigger = std::isnan(residualForceNorm); totalResidualForcesNorm += residualForceNorm; #ifdef POLYSCOPE_DEFINED @@ -1192,10 +1192,10 @@ void DRMSimulationModel::updateNodalMasses() if (shouldTemporarilyDampForces && mCurrentSimulationStep < untilStep) { gamma *= 1e6 * (1 - static_cast(mCurrentSimulationStep) / untilStep); } - if (mCurrentSimulationStep == static_cast(1.2 * untilStep) - && shouldTemporarilyDampForces) { - Dt = mSettings.Dtini; - } + // if (mCurrentSimulationStep == static_cast(1.4 * untilStep) + // && shouldTemporarilyDampForces) { + // Dt = mSettings.Dtini; + // } for (VertexType &v : pMesh->vert) { const size_t vi = pMesh->getIndex(v); double translationalSumSk = 0; @@ -2354,7 +2354,7 @@ mesh->currentTotalPotentialEnergykN*/ // || fullfillsMovingAverageDerivativeNormTerminationCriterion || fullfillsAverageResidualForcesNormTerminationCriterion || fullfillsResidualForcesNormTerminationCriterion; - if (shouldTerminate) { + if (shouldTerminate && mCurrentSimulationStep > 100) { if (mSettings.beVerbose /*&& !mSettings.isDebugMode*/) { std::cout << "Simulation converged." << std::endl; printCurrentState();