9 #include "imstkInternalForceModel.h" 11 #include <StVKStiffnessMatrix.h> 15 class StvkInternalForces;
30 const bool withGravity =
true,
const double gravity = 10.0);
38 double* data =
const_cast<double*
>(u.data());
39 m_stVKInternalForces->ComputeForces(data, internalForce.data());
47 m_vegaStVKStiffnessMatrix->GetStiffnessMatrixTopology(tangentStiffnessMatrix);
55 double* data =
const_cast<double*
>(u.data());
56 m_vegaStVKStiffnessMatrix->ComputeStiffnessMatrix(data, m_vegaTangentStiffnessMatrix.get());
57 InternalForceModel::updateValuesFromMatrix(m_vegaTangentStiffnessMatrix, tangentStiffnessMatrix.valuePtr());
65 m_vegaTangentStiffnessMatrix = K;
69 std::shared_ptr<vega::StVKInternalForces> m_stVKInternalForces;
70 std::shared_ptr<vega::SparseMatrix> m_vegaTangentStiffnessMatrix;
71 std::shared_ptr<vega::StVKStiffnessMatrix> m_vegaStVKStiffnessMatrix;
72 bool ownStiffnessMatrix;
void getInternalForce(const Vectord &u, Vectord &internalForce) override
Get the internal force.
void getTangentStiffnessMatrix(const Vectord &u, SparseMatrixd &tangentStiffnessMatrix) override
Set the tangent stiffness matrix.
Base class for internal force model within the following context.
void setTangentStiffness(std::shared_ptr< vega::SparseMatrix > K) override
Speficy tangent stiffness matrix.
void getTangentStiffnessMatrixTopology(vega::SparseMatrix **tangentStiffnessMatrix) override
Get the tangent stiffness matrix topology.