File elasticBendingForce.h

class elasticBendingForce : public baseForce

Public Functions

elasticBendingForce(const shared_ptr<softRobots> &m_soft_robots)
~elasticBendingForce() override
virtual void computeForce(double dt) override
virtual void computeForceAndJacobian(double dt) override

Private Functions

void JacobianComputation()
void crossMat(const Vector3d &a, Matrix3d &b)

Private Members

int ci
double chi
double len
double kappa1
double kappa2
double norm_e
double norm_f
double norm2_e
double norm2_f
double D2kappa1Dthetae2
double D2kappa1Dthetaf2
double D2kappa2Dthetae2
double D2kappa2Dthetaf2
Vector3d t0
Vector3d t1
Vector3d te
Vector3d tf
Vector3d d1e
Vector3d d1f
Vector3d d2e
Vector3d d2f
Vector3d tilde_t
Vector3d tilde_d1
Vector3d tilde_d2
Vector3d Dkappa1De
Vector3d Dkappa1Df
Vector3d Dkappa2De
Vector3d Dkappa2Df
Vector3d kbLocal
Vector2d kappaL
Vector3d tmp
Vector3d D2kappa1DeDthetae
Vector3d D2kappa1DeDthetaf
Vector3d D2kappa1DfDthetae
Vector3d D2kappa1DfDthetaf
Vector3d D2kappa2DeDthetae
Vector3d D2kappa2DeDthetaf
Vector3d D2kappa2DfDthetae
Vector3d D2kappa2DfDthetaf
Vector2d temp
Vector3d m1e
Vector3d m2e
Vector3d m1f
Vector3d m2f
VectorXd kappa11
VectorXd kappa22
VectorXd f
vector<shared_ptr<MatrixXd>> gradKappa1s
vector<shared_ptr<MatrixXd>> gradKappa2s
shared_ptr<MatrixXd> gradKappa1
shared_ptr<MatrixXd> gradKappa2
MatrixXd relevantPart
MatrixXd kappa
MatrixXd DDkappa1
MatrixXd DDkappa2
MatrixXd Jbb
vector<Matrix2d> EIMatrices
Matrix3d Id3
Matrix3d tt_o_tt
Matrix3d tilde_d1_3d
Matrix3d tilde_d2_3d
Matrix3d tf_c_d2t_o_tt
Matrix3d tt_o_tf_c_d2t
Matrix3d kb_o_d2e
Matrix3d d2e_o_kb
Matrix3d D2kappa1De2
Matrix3d te_c_d2t_o_tt
Matrix3d tt_o_te_c_d2t
Matrix3d kb_o_d2f
Matrix3d d2f_o_kb
Matrix3d D2kappa1Df2
Matrix3d D2kappa1DeDf
Matrix3d D2kappa1DfDe
Matrix3d tf_c_d1t_o_tt
Matrix3d tt_o_tf_c_d1t
Matrix3d kb_o_d1e
Matrix3d d1e_o_kb
Matrix3d D2kappa2De2
Matrix3d te_c_d1t_o_tt
Matrix3d tt_o_te_c_d1t
Matrix3d kb_o_d1f
Matrix3d d1f_o_kb
Matrix3d D2kappa2Df2
Matrix3d D2kappa2DeDf
Matrix3d D2kappa2DfDe