Open aronnoordam opened 5 months ago
Rotaton dofs were added here: https://github.com/KratosMultiphysics/Kratos/pull/5627 never merged
Rotaton dofs were added here: #5627 never merged
doesnt this add extra stiffness on top of the already existing stiffness from the beam? What I want is to set a rotational stiffness which is lower than the rotational stiffness following the beam elements
Rotaton dofs were added here: #5627 never merged
doesnt this add extra stiffness on top of the already existing stiffness from the beam? What I want is to set a rotational stiffness which is lower than the rotational stiffness following the beam elements
Yes, in that case the rotation will be added. If you want to consider a hinge with rotation stiffness I think we could create a rotation free hinge only @KratosMultiphysics/structural-mechanics
that sounds nice
Another way to achieve this should be with a Multi-point constraint with just the required rotational stiffness.
there is also a variable in the beam to remove the dof with static condensation
Thanks for the suggestions! I guess with a combination of static condensation and the multi point constraint I can simulate a hinge. However maybe I can also add a rigid correction matrix to the existing consistent beam elements as shown in [simões 1996] https://www.sciencedirect.com/science/article/abs/pii/0045794995004270,
this makes sure, the complete stiffness matrix of the beam stays correct when adding rigidity to the end of a beam element. Below an example for a 2 noded beam written in python. If you agree, I can start this implementation
`
l = self.length_element
EI = self.material.youngs_modulus * self.section.sec_moment_of_inertia
s1 = self.spring_stiffness1
s2 = self.spring_stiffness2
# set fixity factor
alpha1 = 1 / (1 + 3 * EI / (s1 * l)) if s1 > 0 else 0
alpha2 = 1 / (1 + 3 * EI / (s2 * l)) if s2 > 0 else 0
rigid_mat = np.zeros((6, 6))
rigid_mat[[0, 3], [0, 3]] = 1
rigid_mat[[3, 0], [0, 3]] = 1
rigid_mat[[1, 4, 1, 4], [1, 4, 4, 1]] = (alpha1 + alpha2 + alpha1 * alpha2)/(4-alpha1*alpha2)
rigid_mat[[1, 2, 2, 4], [2, 1, 4, 2]] = (2 * alpha1 + alpha1 * alpha2)/(4-alpha1*alpha2)
rigid_mat[[1, 5, 4, 5], [5, 1, 5, 4]] = (2 * alpha2 + alpha1 * alpha2) / (4 - alpha1 * alpha2)
rigid_mat[2, 2] = 3 * alpha1 / (4 - alpha1*alpha2)
rigid_mat[5, 5] = 3 * alpha2 / (4 - alpha1 * alpha2)
rigid_mat[[2, 5], [5, 2]] = 3*alpha1*alpha2/(4-alpha1*alpha2)
existing_stiffness_matrix = existing_stiffness_matrix * rigid_mat
`
Is it possible to add a hinge with a custom (small) rotational stiffness between beam elements? If so, how can I do that?
Below an illustration of what I want.