103 {
104 constexpr int dim_vec = 3;
105 double contact_force[dim_vec]{};
107
108
109
110 ContactEntity tmp_face;
111 tmp_face.entity_type_ = face.entity_type_;
112 tmp_face.node_id_for_node_1_ = face.node_id_for_node_1_;
113 tmp_face.node_id_for_node_2_ = face.node_id_for_node_2_;
114 tmp_face.node_id_1_for_fictitious_node_ = face.node_id_1_for_fictitious_node_;
115 tmp_face.node_id_2_for_fictitious_node_ = face.node_id_2_for_fictitious_node_;
116 tmp_face.node_id_3_for_fictitious_node_ = face.node_id_3_for_fictitious_node_;
117 tmp_face.node_id_4_for_fictitious_node_ = face.node_id_4_for_fictitious_node_;
118 tmp_face.SetNodalContactForces(contact_force, barycentric_coordinates);
119 tmp_face.ScatterForceToContactManagerForceVector<VecType>(full_contact_force);
120
121
122
123 ContactEntity tmp_node;
125 tmp_node.node_id_for_node_1_ = node.node_id_for_node_1_;
126 tmp_node.SetNodalContactForces(contact_force);
127 tmp_node.ScatterForceToContactManagerForceVector<VecType>(full_contact_force);
128 }
void getContactForce(const double penalty, const double gap, const double normal[3], double contact_force[3])
Definition nimble_contact_manager.h:82