Source code for skydy.rigidbody.BodyForce

#!/usr/bin/python3


from ..configuration import ForceSymbols, TorqueSymbols


[docs]class BodyForce(ForceSymbols):
[docs] def __init__(self, name, x_dir=False, y_dir=False, z_dir=False): """Define a force that acts on a Body. The direction of the force is defined the the relevant body's coordinate frame. By default, a force is assgined a default value of 1, if the force is defined in that direction, or 0 otherwise. Args: name (int or str): the name for the force. x_dir (bool): if the defined force acts in the body x-direction y_dir (bool): if the defined force acts in the body y-direction z_dir (bool): if the defined force acts in the body z-direction Returns: None Example: >>> from skydy.rigidbody import BodyForce >>> # Instantiate a force in the body x-direction >>> f_1 = BodyForce("1", x_dir=True) >>> # Instantiate another force in the body y-direction >>> f_2 = BodyForce("2", y_dir=True) >>> # Instantiate another force in all directions >>> f_3 = BodyForce("3", True, True, True) """ super().__init__(name) self.__x_dir = x_dir self.__y_dir = y_dir self.__z_dir = z_dir self.assign_values(int(x_dir), 0) self.assign_values(int(y_dir), 1) self.assign_values(int(z_dir), 2)
[docs]class BodyTorque(TorqueSymbols):
[docs] def __init__(self, name, x_dir=False, y_dir=False, z_dir=False): """Define a torque that acts on a Body. The direction of the torque is defined the the relevant body's coordinate frame, and a rotation ABOUT that coordinate direction (as per the right hand rule). By default, a torque is assgined a default value of 1, if the torque is defined in that direction, or 0 otherwise. Args: name (int or str): the name for the torque. x_dir (bool): if the defined torque acts around the body x-direction y_dir (bool): if the defined torque acts around the body y-direction z_dir (bool): if the defined torque acts around the body z-direction Returns: None Example: >>> from skydy.rigidbody import BodyTorque >>> # Instantiate a torque about the body x-direction >>> t_1 = BodyTorque("1", x_dir=True) >>> # Instantiate another torque about the body y-direction >>> t_2 = BodyTorque("2", y_dir=True) >>> # Instantiate another torque about all directions >>> t_3 = BodyTorque("3", True, True, True) """ super().__init__(name) self.__x_dir = x_dir self.__y_dir = y_dir self.__z_dir = z_dir self.assign_values(int(x_dir), 0) self.assign_values(int(y_dir), 1) self.assign_values(int(z_dir), 2)