Refactoring. Fixed bug
This commit is contained in:
parent
4988a78b94
commit
846289448b
|
@ -692,8 +692,8 @@ double DRMSimulationModel::computeDerivativeTheta3(const EdgeType &e,
|
|||
derivativeF1 = derivativeT1_k - (n * (derivativeT1_k * n));
|
||||
|
||||
const double f1Norm = f1.Norm();
|
||||
const VectorType derivativeF1Normalized = -f1 * (f1 * derivativeF1)
|
||||
/ (f1Norm * f1Norm * f1Norm)
|
||||
const double derivativeF1Norm = f1 * derivativeF1 / f1Norm;
|
||||
const VectorType derivativeF1Normalized = -f1 * derivativeF1Norm / (f1Norm * f1Norm)
|
||||
+ derivativeF1 / f1Norm;
|
||||
|
||||
derivativeF2 = derivativeF1Normalized * cosRotationAngle
|
||||
|
@ -713,8 +713,8 @@ double DRMSimulationModel::computeDerivativeTheta3(const EdgeType &e,
|
|||
const VectorType &derivativeOfNormal = node.derivativeOfNormal[dofi];
|
||||
derivativeF1 = -(n * (t1_k * derivativeOfNormal) + derivativeOfNormal * (t1_k * n));
|
||||
const double f1Norm = f1.Norm();
|
||||
const VectorType derivativeF1Normalized = -f1 * (f1 * derivativeF1)
|
||||
/ (f1Norm * f1Norm * f1Norm)
|
||||
const double derivativeF1Norm = f1 * derivativeF1 / f1Norm;
|
||||
const VectorType derivativeF1Normalized = -f1 * derivativeF1Norm / (f1Norm * f1Norm)
|
||||
+ derivativeF1 / f1Norm;
|
||||
|
||||
derivativeF2 = derivativeF1Normalized * cosRotationAngle +
|
||||
|
@ -1005,9 +1005,9 @@ 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 bool shouldTrigger = std::isnan(residualForceNorm);
|
||||
const double residualForceNorm = nodeResidualForce.norm();
|
||||
// const double residualForceNorm = nodeResidualForce.getTranslation().norm();
|
||||
const bool shouldTrigger = mCurrentSimulationStep == 500;
|
||||
totalResidualForcesNorm += residualForceNorm;
|
||||
#ifdef POLYSCOPE_DEFINED
|
||||
if (std::isnan(force.residual.norm())) {
|
||||
|
@ -1751,7 +1751,7 @@ void DRMSimulationModel::draw(const std::string &screenshotsFolder)
|
|||
accelerationX[pMesh->getIndex(v)] = pMesh->nodes[v].acceleration[0];
|
||||
}
|
||||
meshPolyscopeHandle->addNodeScalarQuantity("Kinetic Energy", kineticEnergies)->setEnabled(false);
|
||||
meshPolyscopeHandle->addNodeVectorQuantity("Node normals", nodeNormals)->setEnabled(false);
|
||||
meshPolyscopeHandle->addNodeVectorQuantity("Node normals", nodeNormals)->setEnabled(true);
|
||||
meshPolyscopeHandle->addNodeVectorQuantity("Internal force", internalForces)->setEnabled(false);
|
||||
meshPolyscopeHandle->addNodeVectorQuantity("External force", externalForces)->setEnabled(false);
|
||||
meshPolyscopeHandle->addNodeVectorQuantity("External Moments", externalMoments)->setEnabled(true);
|
||||
|
@ -2063,7 +2063,7 @@ SimulationResults DRMSimulationModel::executeSimulation(const std::shared_ptr<Si
|
|||
vcg::tri::UpdateBounding<SimulationMesh>::Box(*pMesh);
|
||||
computeRigidSupports();
|
||||
isVertexConstrained.resize(pMesh->VN(), false);
|
||||
for (auto fixedVertex : pJob->constrainedVertices) {
|
||||
for (auto fixedVertex : constrainedVertices) {
|
||||
isVertexConstrained[fixedVertex.first] = true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue