Repository: ross-rotordynamics/ross
Pull request #756 (2021-02-15 18:49:25)

Check_units on defects' class
As @raphaeltimbo requested in another PR, we (@bela-bs and I) created this one to apply the `check_units` decorator. If you guys have any comments of what more we can improve, we'll be delighted to hear.


Patch:
diff --git a/ross/defects/crack.py b/ross/defects/crack.py
index 85816902..b6bed8a7 100644
--- a/ross/defects/crack.py
+++ b/ross/defects/crack.py
@@ -1,18 +1,13 @@
-import pathlib
 import time
-from abc import ABC, abstractmethod
 from pathlib import Path
 
 import numpy as np
 import pandas as pd
-import plotly.graph_objects as go
-import scipy as sp
 import scipy.integrate
 import scipy.linalg
 
 import ross
-from ross.results import TimeResponseResults
-from ross.units import Q_
+from ross.units import Q_, check_units
 
 from .abs_defect import Defect
 from .integrate_solver import Integrator
@@ -35,15 +30,15 @@ class Crack(Defect):
         Initial time
     tF : float
         Final time
-    cd : float
-        Crack depth
+    depth_ratio : float
+        Crack depth ratio related to the diameter of the crack container element. A depth value of 0.1 is equal to 10%, 0.2 equal to 20%, and so on.
     n_crack : float
         Element where the crack is located
-    speed : float
-        Operational speed of the machine
-    massunb : array
+    speed : float, pint.Quantity
+        Operational speed of the machine. Default unit is rad/s.
+    unbalance_magnitude : array
         Array with the unbalance magnitude. The unit is kg.m.
-    phaseunb : array
+    unbalance_phase : array
         Array with the unbalance phase. The unit is rad.
     crack_type : string
         String containing type of crack model chosed. The avaible types are: Mayes and Gasch.
@@ -74,16 +69,17 @@ class Crack(Defect):
     >>> # fig.show()
     """
 
+    @check_units
     def __init__(
         self,
         dt,
         tI,
         tF,
-        cd,
+        depth_ratio,
         n_crack,
         speed,
-        massunb,
-        phaseunb,
+        unbalance_magnitude,
+        unbalance_phase,
         crack_type="Mayes",
         print_progress=False,
     ):
@@ -91,13 +87,13 @@ class Crack(Defect):
         self.dt = dt
         self.tI = tI
         self.tF = tF
-        self.cd = cd
+        self.depth_ratio = depth_ratio
         self.n_crack = n_crack
         self.speed = speed
         self.speedI = speed
         self.speedF = speed
-        self.MassUnb = massunb
-        self.PhaseUnb = phaseunb
+        self.unbalance_magnitude = unbalance_magnitude
+        self.unbalance_phase = unbalance_phase
         self.print_progress = print_progress
 
         if crack_type is None or crack_type == "Mayes":
@@ -107,7 +103,7 @@ class Crack(Defect):
         else:
             raise Exception("Check the crack model!")
 
-        if len(self.MassUnb) != len(self.PhaseUnb):
+        if len(self.unbalance_magnitude) != len(self.unbalance_phase):
             raise Exception(
                 "The unbalance magnitude vector and phase must have the same size!"
             )
@@ -127,7 +123,7 @@ class Crack(Defect):
 
         self.rotor = rotor
         self.n_disk = len(self.rotor.disk_elements)
-        if self.n_disk != len(self.MassUnb):
+        if self.n_disk != len(self.unbalance_magnitude):
             raise Exception("The number of discs and unbalances must agree!")
 
         self.ndof = rotor.ndof
@@ -202,7 +198,7 @@ class Crack(Defect):
         c55 = self._get_coefs("c55")
         c45 = self._get_coefs("c45")
 
-        if self.cd == 0:
+        if self.depth_ratio == 0:
             Cc = Co
         else:
             Cc = Co + np.array(
@@ -219,9 +215,6 @@ class Crack(Defect):
 
         self.iteration = 0
 
-        warI = self.speedI * np.pi / 30
-        warF = self.speedF * np.pi / 30
-
         # parameters for the time integration
         self.lambdat = 0.00001
         Faxial = 0
@@ -230,10 +223,10 @@ class Crack(Defect):
 
         # pre-processing of auxilary variuables for the time integration
         self.sA = (
-            warI * np.exp(-self.lambdat * self.tF)
-            - warF * np.exp(-self.lambdat * self.tI)
+            self.speedI * np.exp(-self.lambdat * self.tF)
+            - self.speedF * np.exp(-self.lambdat * self.tI)
         ) / (np.exp(-self.lambdat * self.tF) - np.exp(-self.lambdat * self.tI))
-        self.sB = (warF - warI) / (
+        self.sB = (self.speedF - self.speedI) / (
             np.exp(-self.lambdat * self.tF) - np.exp(-self.lambdat * self.tI)
         )
 
@@ -249,8 +242,8 @@ class Crack(Defect):
         # AccelV = -lambdat * sB * np.exp(-lambdat * self.t)
 
         # Determining the modal matrix
-        self.K = self.rotor.K(self.speedI * np.pi / 30)
-        self.C = self.rotor.C(self.speedI * np.pi / 30)
+        self.K = self.rotor.K(self.speed)
+        self.C = self.rotor.C(self.speed)
         self.G = self.rotor.G()
         self.M = self.rotor.M()
         self.Kst = self.rotor.Kst()
@@ -285,7 +278,7 @@ class Crack(Defect):
         self.Omega = self.sA + self.sB * np.exp(-self.lambdat * T)
         self.AccelV = -self.lambdat * self.sB * np.exp(-self.lambdat * T)
 
-        self.tetaUNB = np.zeros((len(self.PhaseUnb), len(self.angular_position)))
+        self.tetaUNB = np.zeros((len(self.unbalance_phase), len(self.angular_position)))
         unbx = np.zeros(len(self.angular_position))
         unby = np.zeros(len(self.angular_position))
 
@@ -293,15 +286,21 @@ class Crack(Defect):
         self.forces_crack = np.zeros((self.ndof, len(t_eval)))
 
         for ii in range(self.n_disk):
-            self.tetaUNB[ii, :] = self.angular_position + self.PhaseUnb[ii] + np.pi / 2
+            self.tetaUNB[ii, :] = (
+                self.angular_position + self.unbalance_phase[ii] + np.pi / 2
+            )
 
-            unbx = self.MassUnb[ii] * (self.AccelV) * (
+            unbx = self.unbalance_magnitude[ii] * (self.AccelV) * (
                 np.cos(self.tetaUNB[ii, :])
-            ) - self.MassUnb[ii] * ((self.Omega ** 2)) * (np.sin(self.tetaUNB[ii, :]))
+            ) - self.unbalance_magnitude[ii] * ((self.Omega ** 2)) * (
+                np.sin(self.tetaUNB[ii, :])
+            )
 
-            unby = -self.MassUnb[ii] * (self.AccelV) * (
+            unby = -self.unbalance_magnitude[ii] * (self.AccelV) * (
                 np.sin(self.tetaUNB[ii, :])
-            ) - self.MassUnb[ii] * (self.Omega ** 2) * (np.cos(self.tetaUNB[ii, :]))
+            ) - self.unbalance_magnitude[ii] * (self.Omega ** 2) * (
+                np.cos(self.tetaUNB[ii, :])
+            )
 
             FFunb[int(self.ndofd[ii]), :] += unbx
             FFunb[int(self.ndofd[ii] + 1), :] += unby
@@ -513,7 +512,7 @@ class Crack(Defect):
         """
 
         c = np.array(pd.eval(self.data_coefs[coef]))
-        aux = np.where(c[:, 1] >= self.cd * 2)[0]
+        aux = np.where(c[:, 1] >= self.depth_ratio * 2)[0]
         c = c[aux[0], 0] * (1 - self.Poisson ** 2) / (self.E * (self.radius ** 3))
 
         return c
@@ -617,7 +616,7 @@ def crack_example():
     --------
     >>> crack = crack_example()
     >>> crack.speed
-    1200
+    125.66370614359172
     """
 
     rotor = base_rotor_example()
@@ -626,11 +625,11 @@ def crack_example():
         dt=0.0001,
         tI=0,
         tF=0.5,
-        cd=0.2,
+        depth_ratio=0.2,
         n_crack=18,
-        speed=1200,
-        massunb=np.array([5e-4, 0]),
-        phaseunb=np.array([-np.pi / 2, 0]),
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=np.array([5e-4, 0]),
+        unbalance_phase=np.array([-np.pi / 2, 0]),
         crack_type="Mayes",
         print_progress=False,
     )
diff --git a/ross/defects/misalignment.py b/ross/defects/misalignment.py
index 00c6dcd9..73f49970 100644
--- a/ross/defects/misalignment.py
+++ b/ross/defects/misalignment.py
@@ -4,17 +4,14 @@ This module defines misalignments of various types on the shaft coupling. There
 a number of options, for the formulation of 6 DoFs (degrees of freedom).
 """
 import time
-from abc import ABC, abstractmethod
 
 import numpy as np
-import plotly.graph_objects as go
 import scipy as sp
 import scipy.integrate
 import scipy.linalg
 
 import ross
-from ross.results import TimeResponseResults
-from ross.units import Q_
+from ross.units import Q_, check_units
 
 from .abs_defect import Defect
 from .integrate_solver import Integrator
@@ -52,11 +49,11 @@ class MisalignmentFlex(Defect):
         Driven torque.
     n1 : float
         Node where the misalignment is ocurring.
-    speed : float
-        Operational speed of the machine.
-    massunb : array
+    speed : float, pint.Quantity
+        Operational speed of the machine. Default unit is rad/s.
+    unbalance_magnitude : array
         Array with the unbalance magnitude. The unit is kg.m.
-    phaseunb : array
+    unbalance_phase : array
         Array with the unbalance phase. The unit is rad.
     mis_type: string
         String containing the misalignment type choosed. The avaible types are: parallel, by default; angular; combined.
@@ -85,6 +82,7 @@ class MisalignmentFlex(Defect):
     >>> # fig.show()
     """
 
+    @check_units
     def __init__(
         self,
         dt,
@@ -99,8 +97,8 @@ class MisalignmentFlex(Defect):
         TL,
         n1,
         speed,
-        massunb,
-        phaseunb,
+        unbalance_magnitude,
+        unbalance_phase,
         mis_type,
         print_progress=False,
     ):
@@ -117,8 +115,8 @@ class MisalignmentFlex(Defect):
         self.n1 = n1
         self.n2 = n1 + 1
         self.speed = speed
-        self.MassUnb = massunb
-        self.PhaseUnb = phaseunb
+        self.unbalance_magnitude = unbalance_magnitude
+        self.unbalance_phase = unbalance_phase
 
         self.speedI = speed
         self.speedF = speed
@@ -135,7 +133,7 @@ class MisalignmentFlex(Defect):
         else:
             raise Exception("Check the misalignment type!")
 
-        if len(self.MassUnb) != len(self.PhaseUnb):
+        if len(self.unbalance_magnitude) != len(self.unbalance_phase):
             raise Exception(
                 "The unbalance magnitude vector and phase must have the same size!"
             )
@@ -151,7 +149,7 @@ class MisalignmentFlex(Defect):
         """
         self.rotor = rotor
         self.n_disk = len(self.rotor.disk_elements)
-        if self.n_disk != len(self.MassUnb):
+        if self.n_disk != len(self.unbalance_magnitude):
             raise Exception("The number of discs and unbalances must agree!")
 
         self.radius = rotor.elements[self.n1].odl / 2
@@ -165,9 +163,6 @@ class MisalignmentFlex(Defect):
             self.ks * self.radius * np.sqrt(2 - 2 * np.cos(self.misalignment_angle))
         )
 
-        warI = self.speedI * np.pi / 30
-        warF = self.speedF * np.pi / 30
-
         # parameters for the time integration
         self.lambdat = 0.00001
         Faxial = 0
@@ -176,10 +171,10 @@ class MisalignmentFlex(Defect):
 
         # pre-processing of auxilary variuables for the time integration
         self.sA = (
-            warI * np.exp(-self.lambdat * self.tF)
-            - warF * np.exp(-self.lambdat * self.tI)
+            self.speedI * np.exp(-self.lambdat * self.tF)
+            - self.speedF * np.exp(-self.lambdat * self.tI)
         ) / (np.exp(-self.lambdat * self.tF) - np.exp(-self.lambdat * self.tI))
-        self.sB = (warF - warI) / (
+        self.sB = (self.speedF - self.speedI) / (
             np.exp(-self.lambdat * self.tF) - np.exp(-self.lambdat * self.tI)
         )
 
@@ -199,8 +194,8 @@ class MisalignmentFlex(Defect):
         # AccelV = -lambdat * sB * np.exp(-lambdat * self.t)
 
         # Determining the modal matrix
-        self.K = self.rotor.K(self.speedI * np.pi / 30)
-        self.C = self.rotor.C(self.speedI * np.pi / 30)
+        self.K = self.rotor.K(self.speed)
+        self.C = self.rotor.C(self.speed)
         self.G = self.rotor.G()
         self.M = self.rotor.M()
         self.Kst = self.rotor.Kst()
@@ -231,22 +226,28 @@ class MisalignmentFlex(Defect):
         self.Omega = self.sA + self.sB * np.exp(-self.lambdat * T)
         self.AccelV = -self.lambdat * self.sB * np.exp(-self.lambdat * T)
 
-        self.tetaUNB = np.zeros((len(self.PhaseUnb), len(self.angular_position)))
+        self.tetaUNB = np.zeros((len(self.unbalance_phase), len(self.angular_position)))
         unbx = np.zeros(len(self.angular_position))
         unby = np.zeros(len(self.angular_position))
 
         FFunb = np.zeros((self.ndof, len(t_eval)))
 
         for ii in range(self.n_disk):
-            self.tetaUNB[ii, :] = self.angular_position + self.PhaseUnb[ii] + np.pi / 2
+            self.tetaUNB[ii, :] = (
+                self.angular_position + self.unbalance_phase[ii] + np.pi / 2
+            )
 
-            unbx = self.MassUnb[ii] * (self.AccelV) * (
+            unbx = self.unbalance_magnitude[ii] * (self.AccelV) * (
                 np.cos(self.tetaUNB[ii, :])
-            ) - self.MassUnb[ii] * ((self.Omega ** 2)) * (np.sin(self.tetaUNB[ii, :]))
+            ) - self.unbalance_magnitude[ii] * ((self.Omega ** 2)) * (
+                np.sin(self.tetaUNB[ii, :])
+            )
 
-            unby = -self.MassUnb[ii] * (self.AccelV) * (
+            unby = -self.unbalance_magnitude[ii] * (self.AccelV) * (
                 np.sin(self.tetaUNB[ii, :])
-            ) - self.MassUnb[ii] * (self.Omega ** 2) * (np.cos(self.tetaUNB[ii, :]))
+            ) - self.unbalance_magnitude[ii] * (self.Omega ** 2) * (
+                np.cos(self.tetaUNB[ii, :])
+            )
 
             FFunb[int(self.ndofd[ii]), :] += unbx
             FFunb[int(self.ndofd[ii] + 1), :] += unby
@@ -526,11 +527,11 @@ class MisalignmentRigid(Defect):
         Driven torque.
     n1 : float
         Node where the misalignment is ocurring.
-    speed : float
-        Operational speed of the machine.
-    massunb : array
+    speed : float, pint.Quantity
+        Operational speed of the machine. Default unit is rad/s.
+    unbalance_magnitude : array
         Array with the unbalance magnitude. The unit is kg.m.
-    phaseunb : array
+    unbalance_phase : array
         Array with the unbalance phase. The unit is rad.
     print_progress : bool
         Set it True, to print the time iterations and the total time spent.
@@ -556,6 +557,7 @@ class MisalignmentRigid(Defect):
     >>> # fig.show
     """
 
+    @check_units
     def __init__(
         self,
         dt,
@@ -566,8 +568,8 @@ class MisalignmentRigid(Defect):
         TL,
         n1,
         speed,
-        massunb,
-        phaseunb,
+        unbalance_magnitude,
+        unbalance_phase,
         print_progress=False,
     ):
         self.dt = dt
@@ -581,12 +583,12 @@ class MisalignmentRigid(Defect):
         self.speed = speed
         self.speedI = speed
         self.speedF = speed
-        self.MassUnb = massunb
-        self.PhaseUnb = phaseunb
+        self.unbalance_magnitude = unbalance_magnitude
+        self.unbalance_phase = unbalance_phase
         self.DoF = np.arange((self.n1 * 6), (self.n2 * 6 + 6))
         self.print_progress = print_progress
 
-        if len(self.MassUnb) != len(self.PhaseUnb):
+        if len(self.unbalance_magnitude) != len(self.unbalance_phase):
             raise Exception(
                 "The unbalance magnitude vector and phase must have the same size!"
             )
@@ -602,7 +604,7 @@ class MisalignmentRigid(Defect):
         """
         self.rotor = rotor
         self.n_disk = len(self.rotor.disk_elements)
-        if self.n_disk != len(self.MassUnb):
+        if self.n_disk != len(self.unbalance_magnitude):
             raise Exception("The number of discs and unbalances must agree!")
 
         self.ndof = rotor.ndof
@@ -611,9 +613,6 @@ class MisalignmentRigid(Defect):
         for ii in range(self.n_disk):
             self.ndofd[ii] = (self.rotor.disk_elements[ii].n) * 6
 
-        warI = self.speedI * np.pi / 30
-        warF = self.speedF * np.pi / 30
-
         self.lambdat = 0.00001
         # Faxial = 0
         # TorqueI = 0
@@ -621,10 +620,10 @@ class MisalignmentRigid(Defect):
 
         # pre-processing of auxilary variuables for the time integration
         self.sA = (
-            warI * np.exp(-self.lambdat * self.tF)
-            - warF * np.exp(-self.lambdat * self.tI)
+            self.speedI * np.exp(-self.lambdat * self.tF)
+            - self.speedF * np.exp(-self.lambdat * self.tI)
         ) / (np.exp(-self.lambdat * self.tF) - np.exp(-self.lambdat * self.tI))
-        self.sB = (warF - warI) / (
+        self.sB = (self.speedF - self.speedI) / (
             np.exp(-self.lambdat * self.tF) - np.exp(-self.lambdat * self.tI)
         )
 
@@ -644,8 +643,8 @@ class MisalignmentRigid(Defect):
         # self.AccelV = -lambdat * sB * np.exp(-lambdat * t)
 
         # Determining the modal matrix
-        self.K = self.rotor.K(self.speedI * np.pi / 30)
-        self.C = self.rotor.C(self.speedI * np.pi / 30)
+        self.K = self.rotor.K(self.speed)
+        self.C = self.rotor.C(self.speed)
         self.G = self.rotor.G()
         self.M = self.rotor.M()
         self.Kst = self.rotor.Kst()
@@ -699,22 +698,28 @@ class MisalignmentRigid(Defect):
         self.Omega = self.sA + self.sB * np.exp(-self.lambdat * T)
         self.AccelV = -self.lambdat * self.sB * np.exp(-self.lambdat * T)
 
-        self.tetaUNB = np.zeros((len(self.PhaseUnb), len(self.angular_position)))
+        self.tetaUNB = np.zeros((len(self.unbalance_phase), len(self.angular_position)))
         unbx = np.zeros(len(self.angular_position))
         unby = np.zeros(len(self.angular_position))
 
         FFunb = np.zeros((self.ndof, len(t_eval)))
 
         for ii in range(self.n_disk):
-            self.tetaUNB[ii, :] = self.angular_position + self.PhaseUnb[ii] + np.pi / 2
+            self.tetaUNB[ii, :] = (
+                self.angular_position + self.unbalance_phase[ii] + np.pi / 2
+            )
 
-            unbx = self.MassUnb[ii] * (self.AccelV) * (
+            unbx = self.unbalance_magnitude[ii] * (self.AccelV) * (
                 np.cos(self.tetaUNB[ii, :])
-            ) - self.MassUnb[ii] * ((self.Omega ** 2)) * (np.sin(self.tetaUNB[ii, :]))
+            ) - self.unbalance_magnitude[ii] * ((self.Omega ** 2)) * (
+                np.sin(self.tetaUNB[ii, :])
+            )
 
-            unby = -self.MassUnb[ii] * (self.AccelV) * (
+            unby = -self.unbalance_magnitude[ii] * (self.AccelV) * (
                 np.sin(self.tetaUNB[ii, :])
-            ) - self.MassUnb[ii] * (self.Omega ** 2) * (np.cos(self.tetaUNB[ii, :]))
+            ) - self.unbalance_magnitude[ii] * (self.Omega ** 2) * (
+                np.cos(self.tetaUNB[ii, :])
+            )
 
             FFunb[int(self.ndofd[ii]), :] += unbx
             FFunb[int(self.ndofd[ii] + 1), :] += unby
@@ -959,7 +964,7 @@ def misalignment_flex_parallel_example():
     --------
     >>> misalignment = misalignment_flex_parallel_example()
     >>> misalignment.speed
-    1200
+    125.66370614359172
     """
 
     rotor = base_rotor_example()
@@ -977,9 +982,9 @@ def misalignment_flex_parallel_example():
         TD=0,
         TL=0,
         n1=0,
-        speed=1200,
-        massunb=np.array([5e-4, 0]),
-        phaseunb=np.array([-np.pi / 2, 0]),
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=np.array([5e-4, 0]),
+        unbalance_phase=np.array([-np.pi / 2, 0]),
         mis_type="parallel",
         print_progress=False,
     )
@@ -1003,7 +1008,7 @@ def misalignment_flex_angular_example():
     --------
     >>> misalignment = misalignment_flex_angular_example()
     >>> misalignment.speed
-    1200
+    125.66370614359172
     """
 
     rotor = base_rotor_example()
@@ -1021,9 +1026,9 @@ def misalignment_flex_angular_example():
         TD=0,
         TL=0,
         n1=0,
-        speed=1200,
-        massunb=np.array([5e-4, 0]),
-        phaseunb=np.array([-np.pi / 2, 0]),
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=np.array([5e-4, 0]),
+        unbalance_phase=np.array([-np.pi / 2, 0]),
         mis_type="angular",
         print_progress=False,
     )
@@ -1047,7 +1052,7 @@ def misalignment_flex_combined_example():
     --------
     >>> misalignment = misalignment_flex_combined_example()
     >>> misalignment.speed
-    1200
+    125.66370614359172
     """
 
     rotor = base_rotor_example()
@@ -1065,9 +1070,9 @@ def misalignment_flex_combined_example():
         TD=0,
         TL=0,
         n1=0,
-        speed=1200,
-        massunb=np.array([5e-4, 0]),
-        phaseunb=np.array([-np.pi / 2, 0]),
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=np.array([5e-4, 0]),
+        unbalance_phase=np.array([-np.pi / 2, 0]),
         mis_type="combined",
         print_progress=False,
     )
@@ -1091,7 +1096,7 @@ def misalignment_rigid_example():
     --------
     >>> misalignment = misalignment_rigid_example()
     >>> misalignment.speed
-    1200
+    125.66370614359172
     """
 
     rotor = base_rotor_example()
@@ -1105,9 +1110,9 @@ def misalignment_rigid_example():
         TD=0,
         TL=0,
         n1=0,
-        speed=1200,
-        massunb=np.array([5e-4, 0]),
-        phaseunb=np.array([-np.pi / 2, 0]),
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=np.array([5e-4, 0]),
+        unbalance_phase=np.array([-np.pi / 2, 0]),
         print_progress=False,
     )
 
diff --git a/ross/defects/rubbing.py b/ross/defects/rubbing.py
index f3553f46..bd329fd3 100644
--- a/ross/defects/rubbing.py
+++ b/ross/defects/rubbing.py
@@ -1,14 +1,11 @@
 import time
-from abc import ABC, abstractmethod
 
 import numpy as np
-import plotly.graph_objects as go
 import scipy.integrate
 import scipy.linalg
 
 import ross
-from ross.results import TimeResponseResults
-from ross.units import Q_
+from ross.units import Q_, check_units
 
 from .abs_defect import Defect
 from .integrate_solver import Integrator
@@ -40,11 +37,11 @@ class Rubbing(Defect):
         Friction coefficient.
     posRUB : int
         Node where the rubbing is ocurring.
-    speed : float
-        Operational speed of the machine.
-    massunb : array
+    speed : float, pint.Quantity
+        Operational speed of the machine. Default unit is rad/s.
+    unbalance_magnitude : array
         Array with the unbalance magnitude. The unit is kg.m.
-    phaseunb : array
+    unbalance_phase : array
         Array with the unbalance phase. The unit is rad.
     torque : bool
         Set it as True to consider the torque provided by the rubbing, by default False.
@@ -70,6 +67,7 @@ class Rubbing(Defect):
     >>> # fig.show()
     """
 
+    @check_units
     def __init__(
         self,
         dt,
@@ -81,8 +79,8 @@ class Rubbing(Defect):
         miRUB,
         posRUB,
         speed,
-        massunb,
-        phaseunb,
+        unbalance_magnitude,
+        unbalance_phase,
         torque=False,
         print_progress=False,
     ):
@@ -100,11 +98,11 @@ class Rubbing(Defect):
         self.speedF = speed
         self.DoF = np.arange((self.posRUB * 6), (self.posRUB * 6 + 6))
         self.torque = torque
-        self.MassUnb = massunb
-        self.PhaseUnb = phaseunb
+        self.unbalance_magnitude = unbalance_magnitude
+        self.unbalance_phase = unbalance_phase
         self.print_progress = print_progress
 
-        if len(self.MassUnb) != len(self.PhaseUnb):
+        if len(self.unbalance_magnitude) != len(self.unbalance_phase):
             raise Exception(
                 "The unbalance magnitude vector and phase must have the same size!"
             )
@@ -121,7 +119,7 @@ class Rubbing(Defect):
 
         self.rotor = rotor
         self.n_disk = len(self.rotor.disk_elements)
-        if self.n_disk != len(self.MassUnb):
+        if self.n_disk != len(self.unbalance_magnitude):
             raise Exception("The number of discs and unbalances must agree!")
 
         self.ndof = rotor.ndof
@@ -132,19 +130,16 @@ class Rubbing(Defect):
         for ii in range(self.n_disk):
             self.ndofd[ii] = (self.rotor.disk_elements[ii].n) * 6
 
-        warI = self.speedI * np.pi / 30
-        warF = self.speedF * np.pi / 30
-
         self.lambdat = 0.00001
         # Faxial = 0
         # TorqueI = 0
         # TorqueF = 0
 
         self.sA = (
-            warI * np.exp(-self.lambdat * self.tF)
-            - warF * np.exp(-self.lambdat * self.tI)
+            self.speedI * np.exp(-self.lambdat * self.tF)
+            - self.speedF * np.exp(-self.lambdat * self.tI)
         ) / (np.exp(-self.lambdat * self.tF) - np.exp(-self.lambdat * self.tI))
-        self.sB = (warF - warI) / (
+        self.sB = (self.speedF - self.speedI) / (
             np.exp(-self.lambdat * self.tF) - np.exp(-self.lambdat * self.tI)
         )
 
@@ -160,8 +155,8 @@ class Rubbing(Defect):
         # self.AccelV = -lambdat * sB * np.exp(-lambdat * t)
 
         # Determining the modal matrix
-        self.K = self.rotor.K(self.speedI * np.pi / 30)
-        self.C = self.rotor.C(self.speedI * np.pi / 30)
+        self.K = self.rotor.K(self.speed)
+        self.C = self.rotor.C(self.speed)
         self.G = self.rotor.G()
         self.M = self.rotor.M()
         self.Kst = self.rotor.Kst()
@@ -197,7 +192,7 @@ class Rubbing(Defect):
         self.Omega = self.sA + self.sB * np.exp(-self.lambdat * T)
         self.AccelV = -self.lambdat * self.sB * np.exp(-self.lambdat * T)
 
-        self.tetaUNB = np.zeros((len(self.PhaseUnb), len(self.angular_position)))
+        self.tetaUNB = np.zeros((len(self.unbalance_phase), len(self.angular_position)))
         unbx = np.zeros(len(self.angular_position))
         unby = np.zeros(len(self.angular_position))
 
@@ -205,15 +200,21 @@ class Rubbing(Defect):
         self.forces_rub = np.zeros((self.ndof, len(t_eval)))
 
         for ii in range(self.n_disk):
-            self.tetaUNB[ii, :] = self.angular_position + self.PhaseUnb[ii] + np.pi / 2
+            self.tetaUNB[ii, :] = (
+                self.angular_position + self.unbalance_phase[ii] + np.pi / 2
+            )
 
-            unbx = self.MassUnb[ii] * (self.AccelV) * (
+            unbx = self.unbalance_magnitude[ii] * (self.AccelV) * (
                 np.cos(self.tetaUNB[ii, :])
-            ) - self.MassUnb[ii] * ((self.Omega ** 2)) * (np.sin(self.tetaUNB[ii, :]))
+            ) - self.unbalance_magnitude[ii] * ((self.Omega ** 2)) * (
+                np.sin(self.tetaUNB[ii, :])
+            )
 
-            unby = -self.MassUnb[ii] * (self.AccelV) * (
+            unby = -self.unbalance_magnitude[ii] * (self.AccelV) * (
                 np.sin(self.tetaUNB[ii, :])
-            ) - self.MassUnb[ii] * (self.Omega ** 2) * (np.cos(self.tetaUNB[ii, :]))
+            ) - self.unbalance_magnitude[ii] * (self.Omega ** 2) * (
+                np.cos(self.tetaUNB[ii, :])
+            )
 
             FFunb[int(self.ndofd[ii]), :] += unbx
             FFunb[int(self.ndofd[ii] + 1), :] += unby
@@ -539,7 +540,7 @@ def rubbing_example():
     --------
     >>> rubbing = rubbing_example()
     >>> rubbing.speed
-    1200
+    125.66370614359172
     """
 
     rotor = base_rotor_example()
@@ -553,9 +554,9 @@ def rubbing_example():
         cRUB=40,
         miRUB=0.3,
         posRUB=12,
-        speed=1200,
-        massunb=np.array([5e-4, 0]),
-        phaseunb=np.array([-np.pi / 2, 0]),
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=np.array([5e-4, 0]),
+        unbalance_phase=np.array([-np.pi / 2, 0]),
         torque=False,
         print_progress=False,
     )
diff --git a/ross/rotor_assembly.py b/ross/rotor_assembly.py
index 3e0c042b..d71a8928 100644
--- a/ross/rotor_assembly.py
+++ b/ross/rotor_assembly.py
@@ -2390,11 +2390,11 @@ class Rotor(object):
                     Driven torque.
                 n1 : float
                     Node where the misalignment is ocurring.
-                speed : float
-                    Operational speed of the machine.
-                massunb : array
+                speed : float, pint.Quantity
+                    Operational speed of the machine. Default unit is rad/s.
+                unbalance_magnitude : array
                     Array with the unbalance magnitude. The unit is kg.m.
-                phaseunb : array
+                unbalance_phase : array
                     Array with the unbalance phase. The unit is rad.
                 mis_type: string
                     String containing the misalignment type choosed. The avaible types are: parallel, by default; angular; combined.
@@ -2417,11 +2417,11 @@ class Rotor(object):
                     Driven torque.
                 n1 : float
                     Node where the misalignment is ocurring.
-                speed : float
-                    Operational speed of the machine.
-                massunb : array
+                speed : float, pint.Quantity
+                    Operational speed of the machine. Default unit is rad/s.
+                unbalance_magnitude : array
                     Array with the unbalance magnitude. The unit is kg.m.
-                phaseunb : array
+                unbalance_phase : array
                     Array with the unbalance phase. The unit is rad.
                 print_progress : bool
                     Set it True, to print the time iterations and the total time spent.
@@ -2472,11 +2472,11 @@ class Rotor(object):
                     Friction coefficient.
                 posRUB : int
                     Node where the rubbing is ocurring.
-                speed : float
-                    Operational speed of the machine.
-                massunb : array
+                speed : float, pint.Quantity
+                    Operational speed of the machine. Default unit is rad/s.
+                unbalance_magnitude : array
                     Array with the unbalance magnitude. The unit is kg.m.
-                phaseunb : array
+                unbalance_phase : array
                     Array with the unbalance phase. The unit is rad.
                 torque : bool
                     Set it as True to consider the torque provided by the rubbing, by default False.
@@ -2512,15 +2512,15 @@ class Rotor(object):
                     Initial time
                 tF : float
                     Final time
-                cd : float
-                    Crack depth
+                depth_ratio : float
+                    Crack depth ratio related to the diameter of the crack container element. A depth value of 0.1 is equal to 10%, 0.2 equal to 20%, and so on.
                 n_crack : float
                     Element where the crack is located
-                speed : float
-                    Operational speed of the machine
-                massunb : array
+                speed : float, pint.Quantity
+                    Operational speed of the machine. Default unit is rad/s.
+                unbalance_magnitude : array
                     Array with the unbalance magnitude. The unit is kg.m.
-                phaseunb : array
+                unbalance_phase : array
                     Array with the unbalance phase. The unit is rad.
                 crack_type : string
                     String containing type of crack model chosed. The avaible types are: Mayes and Gasch.
diff --git a/ross/units.py b/ross/units.py
index acbc02ef..9883b29e 100644
--- a/ross/units.py
+++ b/ross/units.py
@@ -34,6 +34,7 @@ units = {
     "Ip": "kg*m**2",
     "Id": "kg*m**2",
     "width": "meter",
+    "depth": "meter",
     "i_d": "meter",
     "o_d": "meter",
     "unbalance_magnitude": "kg*m",


Test patch:
diff --git a/ross/tests/test_crack.py b/ross/tests/test_crack.py
index 6e1419c3..1d0d44c0 100644
--- a/ross/tests/test_crack.py
+++ b/ross/tests/test_crack.py
@@ -74,18 +74,40 @@ rotor = rs.Rotor(shaft_elem, [disk0, disk1], [bearing0, bearing1])
 @pytest.fixture
 def crack_mayes():
 
-    massunbt = np.array([5e-4, 0])
-    phaseunbt = np.array([-np.pi / 2, 0])
+    unbalance_magnitudet = np.array([5e-4, 0])
+    unbalance_phaset = np.array([-np.pi / 2, 0])
 
     crack = rotor.run_crack(
         dt=0.01,
         tI=0,
         tF=0.5,
-        cd=0.2,
+        depth_ratio=0.2,
         n_crack=18,
-        speed=1200,
-        massunb=massunbt,
-        phaseunb=phaseunbt,
+        speed=125.66370614359172,
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
+        crack_type="Mayes",
+        print_progress=False,
+    )
+
+    return crack
+
+
+@pytest.fixture
+def crack_mayes_units():
+
+    unbalance_magnitudet = Q_(np.array([0.043398083107259365, 0]), "lb*in")
+    unbalance_phaset = Q_(np.array([-90.0, 0.0]), "degrees")
+
+    crack = rotor.run_crack(
+        dt=0.01,
+        tI=0,
+        tF=0.5,
+        depth_ratio=0.2,
+        n_crack=18,
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
         crack_type="Mayes",
         print_progress=False,
     )
@@ -96,18 +118,18 @@ def crack_mayes():
 @pytest.fixture
 def crack_gasch():
 
-    massunbt = np.array([5e-4, 0])
-    phaseunbt = np.array([-np.pi / 2, 0])
+    unbalance_magnitudet = np.array([5e-4, 0])
+    unbalance_phaset = np.array([-np.pi / 2, 0])
 
     crack = rotor.run_crack(
         dt=0.01,
         tI=0,
         tF=0.5,
-        cd=0.2,
+        depth_ratio=0.2,
         n_crack=18,
-        speed=1200,
-        massunb=massunbt,
-        phaseunb=phaseunbt,
+        speed=125.66370614359172,
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
         crack_type="Gasch",
         print_progress=False,
     )
@@ -119,18 +141,27 @@ def test_crack_mayes_parameters(crack_mayes):
     assert crack_mayes.dt == 0.01
     assert crack_mayes.tI == 0
     assert crack_mayes.tF == 0.5
-    assert crack_mayes.cd == 0.2
+    assert crack_mayes.depth_ratio == 0.2
     assert crack_mayes.n_crack == 18
-    assert crack_mayes.speed == 1200
+    assert crack_mayes.speed == 125.66370614359172
+
+
+def test_crack_mayes_parameters_units(crack_mayes_units):
+    assert crack_mayes_units.dt == 0.01
+    assert crack_mayes_units.tI == 0
+    assert crack_mayes_units.tF == 0.5
+    assert crack_mayes_units.depth_ratio == 0.2
+    assert crack_mayes_units.n_crack == 18
+    assert crack_mayes_units.speed == 125.66370614359172
 
 
 def test_crack_mayes_parameters(crack_gasch):
     assert crack_gasch.dt == 0.01
     assert crack_gasch.tI == 0
     assert crack_gasch.tF == 0.5
-    assert crack_gasch.cd == 0.2
+    assert crack_gasch.depth_ratio == 0.2
     assert crack_gasch.n_crack == 18
-    assert crack_gasch.speed == 1200
+    assert crack_gasch.speed == 125.66370614359172
 
 
 def test_crack_mayes_kc(crack_mayes):
@@ -146,3 +177,18 @@ def test_crack_mayes_kc(crack_mayes):
          1.19148647e+05]])
         # fmt: on
     )
+
+
+def test_crack_mayes_kc_units(crack_mayes_units):
+    assert crack_mayes_units.kc == pytest.approx(
+        # fmt: off
+        np.array([[ 3.30362822e+08,  1.90566722e+07, -4.61655368e+05,
+         4.91833707e+06],
+       [ 1.90566722e+07,  2.73811859e+08, -3.54836778e+06,
+         4.61655368e+05],
+       [-4.61655368e+05, -3.54836778e+06,  8.59606031e+04,
+        -1.11837826e+04],
+       [ 4.91833707e+06,  4.61655368e+05, -1.11837826e+04,
+         1.19148647e+05]])
+        # fmt: on
+    )
diff --git a/ross/tests/test_misalignment.py b/ross/tests/test_misalignment.py
index 3d033bab..8f9e988b 100644
--- a/ross/tests/test_misalignment.py
+++ b/ross/tests/test_misalignment.py
@@ -74,8 +74,8 @@ rotor = rs.Rotor(shaft_elem, [disk0, disk1], [bearing0, bearing1])
 @pytest.fixture
 def mis_comb():
 
-    massunbt = np.array([5e-4, 0])
-    phaseunbt = np.array([-np.pi / 2, 0])
+    unbalance_magnitudet = np.array([5e-4, 0])
+    unbalance_phaset = np.array([-np.pi / 2, 0])
 
     misalignment = rotor.run_misalignment(
         coupling="flex",
@@ -90,9 +90,38 @@ def mis_comb():
         TD=0,
         TL=0,
         n1=0,
-        speed=1200,
-        massunb=massunbt,
-        phaseunb=phaseunbt,
+        speed=125.66370614359172,
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
+        mis_type="combined",
+        print_progress=False,
+    )
+
+    return misalignment
+
+
+@pytest.fixture
+def mis_comb_units():
+
+    unbalance_magnitudet = Q_(np.array([0.043398083107259365, 0]), "lb*in")
+    unbalance_phaset = Q_(np.array([-90.0, 0.0]), "degrees")
+
+    misalignment = rotor.run_misalignment(
+        coupling="flex",
+        dt=0.1,
+        tI=0,
+        tF=5,
+        kd=40 * 10 ** (3),
+        ks=38 * 10 ** (3),
+        eCOUPx=2 * 10 ** (-4),
+        eCOUPy=2 * 10 ** (-4),
+        misalignment_angle=5 * np.pi / 180,
+        TD=0,
+        TL=0,
+        n1=0,
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
         mis_type="combined",
         print_progress=False,
     )
@@ -112,7 +141,22 @@ def test_mis_comb_parameters(mis_comb):
     assert mis_comb.TD == 0
     assert mis_comb.TL == 0
     assert mis_comb.n1 == 0
-    assert mis_comb.speed == 1200
+    assert mis_comb.speed == 125.66370614359172
+
+
+def test_mis_comb_parameters_units(mis_comb_units):
+    assert mis_comb_units.dt == 0.1
+    assert mis_comb_units.tI == 0
+    assert mis_comb_units.tF == 5
+    assert mis_comb_units.kd == 40 * 10 ** (3)
+    assert mis_comb_units.ks == 38 * 10 ** (3)
+    assert mis_comb_units.eCOUPx == 2 * 10 ** (-4)
+    assert mis_comb_units.eCOUPy == 2 * 10 ** (-4)
+    assert mis_comb_units.misalignment_angle == 5 * np.pi / 180
+    assert mis_comb_units.TD == 0
+    assert mis_comb_units.TL == 0
+    assert mis_comb_units.n1 == 0
+    assert mis_comb_units.speed == 125.66370614359172
 
 
 def test_mis_comb_forces(mis_comb):
@@ -193,11 +237,89 @@ def test_mis_comb_forces(mis_comb):
     )
 
 
+def test_mis_comb_forces_units(mis_comb_units):
+    assert mis_comb_units.forces[mis_comb_units.n1 * 6, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [-4.40604748,-4.40604748,-4.40604748,-4.40604748,-4.40604748,
+    -4.40604748,-4.40604748,-4.40604748,-4.40604748,-4.40604748,
+    -4.40604748,-4.40604748,-4.40604748,-4.40604748,-4.40604748,
+    -4.40604748,-4.40604748,-4.40604748,-4.40604748,-4.40604748,
+    -4.40604748,-4.40604748,-4.40604748,-4.40604748,-4.40604748,
+    -4.40604748,-4.40604748,-4.40604748,-4.40604748,-4.40604748,
+    -4.40604748,-4.40604748,-4.40604748,-4.40604748,-4.40604748,
+    -4.40604748,-4.40604748,-4.40604748,-4.40604748,-4.40604748,
+    -4.40604748,-4.40604748,-4.40604748,-4.40604748,-4.40604748,
+    -4.40604748,-4.40604748,-4.40604748,-4.40604748,-4.40604748,
+    -4.40604748,
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_comb_units.forces[mis_comb_units.n1 * 6 + 1, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [1.0821174,1.0821174,1.0821174,1.0821174,1.0821174,
+    1.0821174,1.0821174,1.0821174,1.0821174,1.0821174,
+    1.0821174,1.0821174,1.0821174,1.0821174,1.0821174,
+    1.0821174,1.0821174,1.0821174,1.0821174,1.0821174,
+    1.0821174,1.0821174,1.0821174,1.0821174,1.0821174,
+    1.0821174,1.0821174,1.0821174,1.0821174,1.0821174,
+    1.0821174,1.0821174,1.0821174,1.0821174,1.0821174,
+    1.0821174,1.0821174,1.0821174,1.0821174,1.0821174,
+    1.0821174,1.0821174,1.0821174,1.0821174,1.0821174,
+    1.0821174,1.0821174,1.0821174,1.0821174,1.0821174,
+    1.0821174,
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_comb_units.forces[mis_comb_units.n2 * 6, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [4.40604748,4.40604748,4.40604748,4.40604748,4.40604748,
+    4.40604748,4.40604748,4.40604748,4.40604748,4.40604748,
+    4.40604748,4.40604748,4.40604748,4.40604748,4.40604748,
+    4.40604748,4.40604748,4.40604748,4.40604748,4.40604748,
+    4.40604748,4.40604748,4.40604748,4.40604748,4.40604748,
+    4.40604748,4.40604748,4.40604748,4.40604748,4.40604748,
+    4.40604748,4.40604748,4.40604748,4.40604748,4.40604748,
+    4.40604748,4.40604748,4.40604748,4.40604748,4.40604748,
+    4.40604748,4.40604748,4.40604748,4.40604748,4.40604748,
+    4.40604748,4.40604748,4.40604748,4.40604748,4.40604748,
+    4.40604748,
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_comb_units.forces[mis_comb_units.n2 * 6 + 1, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [-1.0821174,-1.0821174,-1.0821174,-1.0821174,-1.0821174,
+    -1.0821174,-1.0821174,-1.0821174,-1.0821174,-1.0821174,
+    -1.0821174,-1.0821174,-1.0821174,-1.0821174,-1.0821174,
+    -1.0821174,-1.0821174,-1.0821174,-1.0821174,-1.0821174,
+    -1.0821174,-1.0821174,-1.0821174,-1.0821174,-1.0821174,
+    -1.0821174,-1.0821174,-1.0821174,-1.0821174,-1.0821174,
+    -1.0821174,-1.0821174,-1.0821174,-1.0821174,-1.0821174,
+    -1.0821174,-1.0821174,-1.0821174,-1.0821174,-1.0821174,
+    -1.0821174,-1.0821174,-1.0821174,-1.0821174,-1.0821174,
+    -1.0821174,-1.0821174,-1.0821174,-1.0821174,-1.0821174,
+    -1.0821174,
+    ]
+    )
+        # fmt: on
+    )
+
+
 @pytest.fixture
 def mis_parallel():
 
-    massunbt = np.array([5e-4, 0])
-    phaseunbt = np.array([-np.pi / 2, 0])
+    unbalance_magnitudet = np.array([5e-4, 0])
+    unbalance_phaset = np.array([-np.pi / 2, 0])
 
     misalignment = rotor.run_misalignment(
         coupling="flex",
@@ -212,9 +334,38 @@ def mis_parallel():
         TD=0,
         TL=0,
         n1=0,
-        speed=1200,
-        massunb=massunbt,
-        phaseunb=phaseunbt,
+        speed=125.66370614359172,
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
+        mis_type="parallel",
+        print_progress=False,
+    )
+
+    return misalignment
+
+
+@pytest.fixture
+def mis_parallel_units():
+
+    unbalance_magnitudet = Q_(np.array([0.043398083107259365, 0]), "lb*in")
+    unbalance_phaset = Q_(np.array([-90.0, 0.0]), "degrees")
+
+    misalignment = rotor.run_misalignment(
+        coupling="flex",
+        dt=0.1,
+        tI=0,
+        tF=5,
+        kd=40 * 10 ** (3),
+        ks=38 * 10 ** (3),
+        eCOUPx=2 * 10 ** (-4),
+        eCOUPy=2 * 10 ** (-4),
+        misalignment_angle=5 * np.pi / 180,
+        TD=0,
+        TL=0,
+        n1=0,
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
         mis_type="parallel",
         print_progress=False,
     )
@@ -234,7 +385,22 @@ def test_mis_parallel_parameters(mis_parallel):
     assert mis_parallel.TD == 0
     assert mis_parallel.TL == 0
     assert mis_parallel.n1 == 0
-    assert mis_parallel.speed == 1200
+    assert mis_parallel.speed == 125.66370614359172
+
+
+def test_mis_parallel_parameters_units(mis_parallel_units):
+    assert mis_parallel_units.dt == 0.1
+    assert mis_parallel_units.tI == 0
+    assert mis_parallel_units.tF == 5
+    assert mis_parallel_units.kd == 40 * 10 ** (3)
+    assert mis_parallel_units.ks == 38 * 10 ** (3)
+    assert mis_parallel_units.eCOUPx == 2 * 10 ** (-4)
+    assert mis_parallel_units.eCOUPy == 2 * 10 ** (-4)
+    assert mis_parallel_units.misalignment_angle == 5 * np.pi / 180
+    assert mis_parallel_units.TD == 0
+    assert mis_parallel_units.TL == 0
+    assert mis_parallel_units.n1 == 0
+    assert mis_parallel_units.speed == 125.66370614359172
 
 
 def test_mis_parallel_forces(mis_parallel):
@@ -313,11 +479,87 @@ def test_mis_parallel_forces(mis_parallel):
     )
 
 
+def test_mis_parallel_forces_units(mis_parallel_units):
+    assert mis_parallel_units.forces[mis_parallel_units.n1 * 6, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [-6.78312529, -6.78312529, -6.78312529, -6.78312529, -6.78312529,
+    -6.78312529, -6.78312529, -6.78312529, -6.78312529, -6.78312529,
+    -6.78312529, -6.78312529, -6.78312529, -6.78312529, -6.78312529,
+    -6.78312529, -6.78312529, -6.78312529, -6.78312529, -6.78312529,
+    -6.78312529, -6.78312529, -6.78312529, -6.78312529, -6.78312529,
+    -6.78312529, -6.78312529, -6.78312529, -6.78312529, -6.78312529,
+    -6.78312529, -6.78312529, -6.78312529, -6.78312529, -6.78312529,
+    -6.78312529, -6.78312529, -6.78312529, -6.78312529, -6.78312529,
+    -6.78312529, -6.78312529, -6.78312529, -6.78312529, -6.78312529,
+    -6.78312529, -6.78312529, -6.78312529, -6.78312529, -6.78312529,
+    -6.78312529
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_parallel_units.forces[mis_parallel_units.n1 * 6 + 1, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174,
+    1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174,
+    1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174,
+    1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174,
+    1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174,
+    1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174,
+    1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174,
+    1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174, 1.0821174,
+    1.0821174, 1.0821174, 1.0821174
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_parallel_units.forces[mis_parallel_units.n2 * 6, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [6.78312529, 6.78312529, 6.78312529, 6.78312529, 6.78312529,
+    6.78312529, 6.78312529, 6.78312529, 6.78312529, 6.78312529,
+    6.78312529, 6.78312529, 6.78312529, 6.78312529, 6.78312529,
+    6.78312529, 6.78312529, 6.78312529, 6.78312529, 6.78312529,
+    6.78312529, 6.78312529, 6.78312529, 6.78312529, 6.78312529,
+    6.78312529, 6.78312529, 6.78312529, 6.78312529, 6.78312529,
+    6.78312529, 6.78312529, 6.78312529, 6.78312529, 6.78312529,
+    6.78312529, 6.78312529, 6.78312529, 6.78312529, 6.78312529,
+    6.78312529, 6.78312529, 6.78312529, 6.78312529, 6.78312529,
+    6.78312529, 6.78312529, 6.78312529, 6.78312529, 6.78312529,
+    6.78312529
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_parallel_units.forces[mis_parallel_units.n2 * 6 + 1, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [-1.0821174, -1.0821174, -1.0821174, -1.0821174, -1.0821174,
+    -1.0821174, -1.0821174, -1.0821174, -1.0821174, -1.0821174,
+    -1.0821174, -1.0821174, -1.0821174, -1.0821174, -1.0821174,
+    -1.0821174, -1.0821174, -1.0821174, -1.0821174, -1.0821174,
+    -1.0821174, -1.0821174, -1.0821174, -1.0821174, -1.0821174,
+    -1.0821174, -1.0821174, -1.0821174, -1.0821174, -1.0821174,
+    -1.0821174, -1.0821174, -1.0821174, -1.0821174, -1.0821174,
+    -1.0821174, -1.0821174, -1.0821174, -1.0821174, -1.0821174,
+    -1.0821174, -1.0821174, -1.0821174, -1.0821174, -1.0821174,
+    -1.0821174, -1.0821174, -1.0821174, -1.0821174, -1.0821174,
+    -1.0821174
+    ]
+    )
+        # fmt: on
+    )
+
+
 @pytest.fixture
 def mis_angular():
 
-    massunbt = np.array([5e-4, 0])
-    phaseunbt = np.array([-np.pi / 2, 0])
+    unbalance_magnitudet = np.array([5e-4, 0])
+    unbalance_phaset = np.array([-np.pi / 2, 0])
 
     misalignment = rotor.run_misalignment(
         coupling="flex",
@@ -332,9 +574,38 @@ def mis_angular():
         TD=0,
         TL=0,
         n1=0,
-        speed=1200,
-        massunb=massunbt,
-        phaseunb=phaseunbt,
+        speed=125.66370614359172,
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
+        mis_type="angular",
+        print_progress=False,
+    )
+
+    return misalignment
+
+
+@pytest.fixture
+def mis_angular_units():
+
+    unbalance_magnitudet = Q_(np.array([0.043398083107259365, 0]), "lb*in")
+    unbalance_phaset = Q_(np.array([-90.0, 0.0]), "degrees")
+
+    misalignment = rotor.run_misalignment(
+        coupling="flex",
+        dt=0.1,
+        tI=0,
+        tF=5,
+        kd=40 * 10 ** (3),
+        ks=38 * 10 ** (3),
+        eCOUPx=2 * 10 ** (-4),
+        eCOUPy=2 * 10 ** (-4),
+        misalignment_angle=5 * np.pi / 180,
+        TD=0,
+        TL=0,
+        n1=0,
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
         mis_type="angular",
         print_progress=False,
     )
@@ -354,7 +625,22 @@ def test_mis_angular_parameters(mis_angular):
     assert mis_angular.TD == 0
     assert mis_angular.TL == 0
     assert mis_angular.n1 == 0
-    assert mis_angular.speed == 1200
+    assert mis_angular.speed == 125.66370614359172
+
+
+def test_mis_angular_parameters_units(mis_angular_units):
+    assert mis_angular_units.dt == 0.1
+    assert mis_angular_units.tI == 0
+    assert mis_angular_units.tF == 5
+    assert mis_angular_units.kd == 40 * 10 ** (3)
+    assert mis_angular_units.ks == 38 * 10 ** (3)
+    assert mis_angular_units.eCOUPx == 2 * 10 ** (-4)
+    assert mis_angular_units.eCOUPy == 2 * 10 ** (-4)
+    assert mis_angular_units.misalignment_angle == 5 * np.pi / 180
+    assert mis_angular_units.TD == 0
+    assert mis_angular_units.TL == 0
+    assert mis_angular_units.n1 == 0
+    assert mis_angular_units.speed == 125.66370614359172
 
 
 def test_mis_angular_forces(mis_angular):
@@ -439,11 +725,117 @@ def test_mis_angular_forces(mis_angular):
     )
 
 
+def test_mis_angular_forces_units(mis_angular_units):
+    assert mis_angular_units.forces[mis_angular_units.n1 * 6, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [2.37707782, 2.37707782, 2.37707782, 2.37707782, 2.37707782,
+    2.37707782, 2.37707782, 2.37707782, 2.37707782, 2.37707782,
+    2.37707782, 2.37707782, 2.37707782, 2.37707782, 2.37707782,
+    2.37707782, 2.37707782, 2.37707782, 2.37707782, 2.37707782,
+    2.37707782, 2.37707782, 2.37707782, 2.37707782, 2.37707782,
+    2.37707782, 2.37707782, 2.37707782, 2.37707782, 2.37707782,
+    2.37707782, 2.37707782, 2.37707782, 2.37707782, 2.37707782,
+    2.37707782, 2.37707782, 2.37707782, 2.37707782, 2.37707782,
+    2.37707782, 2.37707782, 2.37707782, 2.37707782, 2.37707782,
+    2.37707782, 2.37707782, 2.37707782, 2.37707782, 2.37707782,
+    2.37707782
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_angular_units.forces[mis_angular_units.n1 * 6 + 1, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [-2.66453526e-15,  1.66147096e-11,  3.32343042e-11,  4.98774355e-11,
+    6.64779343e-11,  8.30784330e-11,  9.97633087e-11,  1.16381571e-10,
+    1.32931444e-10,  1.49549262e-10,  1.66149317e-10,  1.82851956e-10,
+    1.99536387e-10,  2.16086704e-10,  2.32772024e-10,  2.49321896e-10,
+    2.65872213e-10,  2.82556645e-10,  2.99107850e-10,  3.15792725e-10,
+    3.32375905e-10,  3.48960416e-10,  3.65779851e-10,  3.82330612e-10,
+    3.99150490e-10,  4.15429913e-10,  4.32250680e-10,  4.48800552e-10,
+    4.65620431e-10,  4.82170748e-10,  4.98721064e-10,  5.15271381e-10,
+    5.31820366e-10,  5.48641577e-10,  5.65191449e-10,  5.81740878e-10,
+    5.98291194e-10,  6.15111961e-10,  6.31661390e-10,  6.48481713e-10,
+    6.64762023e-10,  6.81716905e-10,  6.97726765e-10,  7.14276194e-10,
+    7.31366523e-10,  7.47917284e-10,  7.64467156e-10,  7.81017029e-10,
+    7.98106914e-10,  8.14657675e-10,  8.30667091e-10
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_angular_units.forces[mis_angular_units.n2 * 6, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [-2.37707782, -2.37707782, -2.37707782, -2.37707782, -2.37707782,
+    -2.37707782, -2.37707782, -2.37707782, -2.37707782, -2.37707782,
+    -2.37707782, -2.37707782, -2.37707782, -2.37707782, -2.37707782,
+    -2.37707782, -2.37707782, -2.37707782, -2.37707782, -2.37707782,
+    -2.37707782, -2.37707782, -2.37707782, -2.37707782, -2.37707782,
+    -2.37707782, -2.37707782, -2.37707782, -2.37707782, -2.37707782,
+    -2.37707782, -2.37707782, -2.37707782, -2.37707782, -2.37707782,
+    -2.37707782, -2.37707782, -2.37707782, -2.37707782, -2.37707782,
+    -2.37707782, -2.37707782, -2.37707782, -2.37707782, -2.37707782,
+    -2.37707782, -2.37707782, -2.37707782, -2.37707782, -2.37707782,
+    -2.37707782
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_angular_units.forces[mis_angular_units.n2 * 6 + 1, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [ 2.66453526e-15, -1.66147096e-11, -3.32343042e-11, -4.98774355e-11,
+    -6.64779343e-11, -8.30784330e-11, -9.97633087e-11, -1.16381571e-10,
+    -1.32931444e-10, -1.49549262e-10, -1.66149317e-10, -1.82851956e-10,
+    -1.99536387e-10, -2.16086704e-10, -2.32772024e-10, -2.49321896e-10,
+    -2.65872213e-10, -2.82556645e-10, -2.99107850e-10, -3.15792725e-10,
+    -3.32375905e-10, -3.48960416e-10, -3.65779851e-10, -3.82330612e-10,
+    -3.99150490e-10, -4.15429913e-10, -4.32250680e-10, -4.48800552e-10,
+    -4.65620431e-10, -4.82170748e-10, -4.98721064e-10, -5.15271381e-10,
+    -5.31820366e-10, -5.48641577e-10, -5.65191449e-10, -5.81740878e-10,
+    -5.98291194e-10, -6.15111961e-10, -6.31661390e-10, -6.48481713e-10,
+    -6.64762023e-10, -6.81716905e-10, -6.97726765e-10, -7.14276194e-10,
+    -7.31366523e-10, -7.47917284e-10, -7.64467156e-10, -7.81017029e-10,
+    -7.98106914e-10, -8.14657675e-10, -8.30667091e-10
+    ]
+    )
+        # fmt: on
+    )
+
+
 @pytest.fixture
 def mis_rigid():
 
-    massunbt = np.array([5e-4, 0])
-    phaseunbt = np.array([-np.pi / 2, 0])
+    unbalance_magnitudet = np.array([5e-4, 0])
+    unbalance_phaset = np.array([-np.pi / 2, 0])
+
+    misalignment = rotor.run_misalignment(
+        coupling="rigid",
+        dt=0.0001,
+        tI=0,
+        tF=0.005,
+        eCOUP=2e-4,
+        TD=0,
+        TL=0,
+        n1=0,
+        speed=125.66370614359172,
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
+        print_progress=False,
+    )
+
+    return misalignment
+
+
+@pytest.fixture
+def mis_rigid_units():
+
+    unbalance_magnitudet = Q_(np.array([0.043398083107259365, 0]), "lb*in")
+    unbalance_phaset = Q_(np.array([-90.0, 0.0]), "degrees")
 
     misalignment = rotor.run_misalignment(
         coupling="rigid",
@@ -454,9 +846,9 @@ def mis_rigid():
         TD=0,
         TL=0,
         n1=0,
-        speed=1200,
-        massunb=massunbt,
-        phaseunb=phaseunbt,
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
         print_progress=False,
     )
 
@@ -471,7 +863,18 @@ def test_mis_rigid_parameters(mis_rigid):
     assert mis_rigid.TD == 0
     assert mis_rigid.TL == 0
     assert mis_rigid.n1 == 0
-    assert mis_rigid.speed == 1200
+    assert mis_rigid.speed == 125.66370614359172
+
+
+def test_mis_rigid_parameters_units(mis_rigid_units):
+    assert mis_rigid_units.dt == 0.0001
+    assert mis_rigid_units.tI == 0
+    assert mis_rigid_units.tF == 0.005
+    assert mis_rigid_units.eCOUP == 2e-4
+    assert mis_rigid_units.TD == 0
+    assert mis_rigid_units.TL == 0
+    assert mis_rigid_units.n1 == 0
+    assert mis_rigid_units.speed == 125.66370614359172
 
 
 def test_mis_rigid_forces(mis_rigid):
@@ -558,3 +961,89 @@ def test_mis_rigid_forces(mis_rigid):
     )
         # fmt: on
     )
+
+
+def test_mis_rigid_forces_units(mis_rigid_units):
+    assert mis_rigid_units.forces[mis_rigid_units.n1 * 6, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [0.00000000e+00, 4.36964689e+00, 1.74771689e+01, 3.93186457e+01,
+       6.98878473e+01, 1.09176370e+02, 1.57173806e+02, 2.13867938e+02,
+       2.79244943e+02, 3.53289607e+02, 4.35985520e+02, 5.27315254e+02,
+       6.27260511e+02, 7.35802235e+02, 8.52920676e+02, 9.78595415e+02,
+       1.11280534e+03, 1.25552860e+03, 1.40674247e+03, 1.56642326e+03,
+       1.73454619e+03, 1.91108521e+03, 2.09601285e+03, 2.28930016e+03,
+       2.49091658e+03, 2.70082986e+03, 2.91900610e+03, 3.14540972e+03,
+       3.38000359e+03, 3.62274912e+03, 3.87360643e+03, 4.13253452e+03,
+       4.39949148e+03, 4.67443471e+03, 4.95732112e+03, 5.24810728e+03,
+       5.54674961e+03, 5.85320444e+03, 6.16742807e+03, 6.48937676e+03,
+       6.81900661e+03, 7.15627347e+03, 7.50113266e+03, 7.85353879e+03,
+       8.21344538e+03, 8.58080462e+03, 8.95556694e+03, 9.33768077e+03,
+       9.72709218e+03, 1.01237446e+04, 1.05275788e+04
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_rigid_units.forces[mis_rigid_units.n1 * 6 + 1, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [     0.        ,   -695.44989191,  -1390.76098145,  -2085.80340207,
+        -2780.44896672,  -3474.57174737,  -4168.04855579,  -4860.75930785,
+        -5552.58725831,  -6243.41909941,  -6933.14492308,  -7621.65805293,
+        -8308.85475863,  -8994.63387028,  -9678.89631528, -10361.54460307,
+       -11042.48228557, -11721.61342139, -12398.84207127, -13074.07184973,
+       -13747.20555483, -14418.14489306, -15086.79031112, -15753.04094068,
+       -16416.79465562, -17077.94823571, -17736.39762468, -18392.03826576,
+       -19044.76549395, -19694.47496121, -20341.06306924, -20984.42738466,
+       -21624.46701205, -22261.08290347, -22894.17808613, -23523.65779508,
+       -24149.42950266, -24771.40284243, -25389.48943124, -26003.60259834,
+       -26613.65703604, -27219.56839029, -27821.25281318, -28418.62650121,
+       -29011.60524412, -29600.10400851, -30184.03657848, -30763.31527277,
+       -31337.85075352, -31907.55193714, -32472.32601231
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_rigid_units.forces[mis_rigid_units.n2 * 6, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [ 0.00000000e+00, -4.36964689e+00, -1.74771689e+01, -3.93186457e+01,
+       -6.98878473e+01, -1.09176370e+02, -1.57173806e+02, -2.13867938e+02,
+       -2.79244943e+02, -3.53289607e+02, -4.35985520e+02, -5.27315254e+02,
+       -6.27260511e+02, -7.35802235e+02, -8.52920676e+02, -9.78595415e+02,
+       -1.11280534e+03, -1.25552860e+03, -1.40674247e+03, -1.56642326e+03,
+       -1.73454619e+03, -1.91108521e+03, -2.09601285e+03, -2.28930016e+03,
+       -2.49091658e+03, -2.70082986e+03, -2.91900610e+03, -3.14540972e+03,
+       -3.38000359e+03, -3.62274912e+03, -3.87360643e+03, -4.13253452e+03,
+       -4.39949148e+03, -4.67443471e+03, -4.95732112e+03, -5.24810728e+03,
+       -5.54674961e+03, -5.85320444e+03, -6.16742807e+03, -6.48937676e+03,
+       -6.81900661e+03, -7.15627347e+03, -7.50113266e+03, -7.85353879e+03,
+       -8.21344538e+03, -8.58080462e+03, -8.95556694e+03, -9.33768077e+03,
+       -9.72709218e+03, -1.01237446e+04, -1.05275788e+04
+    ]
+    )
+        # fmt: on
+    )
+
+    assert mis_rigid_units.forces[mis_rigid_units.n2 * 6 + 1, :] == pytest.approx(
+        # fmt: off
+    np.array(
+    [    0.        ,   695.44989191,  1390.76098145,  2085.80340207,
+        2780.44896672,  3474.57174737,  4168.04855579,  4860.75930785,
+        5552.58725831,  6243.41909941,  6933.14492308,  7621.65805293,
+        8308.85475863,  8994.63387028,  9678.89631528, 10361.54460307,
+       11042.48228557, 11721.61342139, 12398.84207127, 13074.07184973,
+       13747.20555483, 14418.14489306, 15086.79031112, 15753.04094068,
+       16416.79465562, 17077.94823571, 17736.39762468, 18392.03826576,
+       19044.76549395, 19694.47496121, 20341.06306924, 20984.42738466,
+       21624.46701205, 22261.08290347, 22894.17808613, 23523.65779508,
+       24149.42950266, 24771.40284243, 25389.48943124, 26003.60259834,
+       26613.65703604, 27219.56839029, 27821.25281318, 28418.62650121,
+       29011.60524412, 29600.10400851, 30184.03657848, 30763.31527277,
+       31337.85075352, 31907.55193714, 32472.32601231
+    ]
+    )
+        # fmt: on
+    )
diff --git a/ross/tests/test_rubbing.py b/ross/tests/test_rubbing.py
index 56cd08f8..f902e32c 100644
--- a/ross/tests/test_rubbing.py
+++ b/ross/tests/test_rubbing.py
@@ -74,8 +74,8 @@ rotor = rs.Rotor(shaft_elem, [disk0, disk1], [bearing0, bearing1])
 @pytest.fixture
 def rub():
 
-    massunbt = np.array([5e-4, 0])
-    phaseunbt = np.array([-np.pi / 2, 0])
+    unbalance_magnitudet = np.array([5e-4, 0])
+    unbalance_phaset = np.array([-np.pi / 2, 0])
 
     rubbing = rotor.run_rubbing(
         dt=0.001,
@@ -86,9 +86,33 @@ def rub():
         cRUB=40,
         miRUB=0.3,
         posRUB=12,
-        speed=1200,
-        massunb=massunbt,
-        phaseunb=phaseunbt,
+        speed=125.66370614359172,
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
+        print_progress=True,
+    )
+
+    return rubbing
+
+
+@pytest.fixture
+def rub_units():
+
+    unbalance_magnitudet = Q_(np.array([0.043398083107259365, 0]), "lb*in")
+    unbalance_phaset = Q_(np.array([-90.0, 0.0]), "degrees")
+
+    rubbing = rotor.run_rubbing(
+        dt=0.001,
+        tI=0,
+        tF=0.5,
+        deltaRUB=7.95e-5,
+        kRUB=1.1e6,
+        cRUB=40,
+        miRUB=0.3,
+        posRUB=12,
+        speed=Q_(1200, "RPM"),
+        unbalance_magnitude=unbalance_magnitudet,
+        unbalance_phase=unbalance_phaset,
         print_progress=True,
     )
 
@@ -104,7 +128,19 @@ def test_rub_parameters(rub):
     assert rub.cRUB == 40
     assert rub.miRUB == 0.3
     assert rub.posRUB == 12
-    assert rub.speed == 1200
+    assert rub.speed == 125.66370614359172
+
+
+def test_rub_parameters_units(rub_units):
+    assert rub_units.dt == 0.001
+    assert rub_units.tI == 0
+    assert rub_units.tF == 0.5
+    assert rub_units.deltaRUB == 7.95e-5
+    assert rub_units.kRUB == 1.1e6
+    assert rub_units.cRUB == 40
+    assert rub_units.miRUB == 0.3
+    assert rub_units.posRUB == 12
+    assert rub_units.speed == 125.66370614359172
 
 
 def test_rub_forces(rub):
@@ -369,3 +405,267 @@ def test_rub_forces(rub):
         0.00000000e+00])
         # fmt: on
     )
+
+
+def test_rub_forces_units(rub_units):
+    assert rub_units.forces_rub[rub_units.posRUB * 6, :] == pytest.approx(
+        # fmt: off
+    np.array([  0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         1.33959978,   2.38449456,   2.49659676,   1.81196092,
+         0.59693967,  -1.62826881,  -4.24183226,  -6.00328692,
+        -6.20469077,  -4.73542742,  -2.72934246,  -2.58572889,
+        -6.09380802, -11.89929423, -16.28700512, -16.40580808,
+       -12.28949661,  -6.4715516 ,  -1.9219398 ,   0.03597126,
+         0.1483467 ,   0.06399221,   0.18405941,   0.44370982,
+         0.59170921,   0.55028863,   0.61661081,   1.15972902,
+         1.99145991,   2.2827491 ,   1.21484512,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,  -0.16254596,
+        -1.15328767,  -1.31402774,  -0.57077859,   0.17589894,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         1.35177422,   4.63052083,   8.26595768,  10.77229714,
+        11.33408396,   9.97185414,   7.43725544,   4.8091569 ,
+         2.90279915,   1.9280518 ,   1.60783411,   1.51278525,
+         1.30371098,   0.82428403,   0.11364267,  -1.19150903,
+        -2.28684891,  -2.8371608 ,  -2.70293006,  -1.7191864 ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+        -0.36389397,  -0.02296953,  -0.58251754,  -1.26899237,
+        -1.37833025,  -0.83533185,   0.        ,  -1.54209802,
+        -3.90213044,  -5.84909057,  -5.54764546,  -2.82245046,
+         0.        ,   0.        ,  -0.9813435 ,  -5.02620683,
+        -7.74948602,  -7.28498629,  -4.21292376,  -0.68113248,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.49651344,   0.94005508,   1.20771384,   1.01602262,
+         0.58504824,   0.42249176,   0.74712263,   1.21263464,
+         1.24036134,   0.53226162,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.81085807,   2.24845489,
+         2.79783564,   2.36749471,   1.48390821,   0.91606906,
+         1.10872277,   1.79762142,   2.27408108,   2.02409761,
+         1.09722613,   0.03554649,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,  -3.20746741,
+        -5.67109902,  -5.84109266,  -3.27138013,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,  -0.94605595,
+        -2.89024152,  -2.82355527,  -0.91081202,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.29208245,   0.31276202,   0.55407755,
+         0.65238154,   0.38599931,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.30206142,
+         1.24645948,   2.17118657,   2.79095166,   2.92291644,
+         2.4997066 ,   1.57624218,   0.3448333 ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+        -0.25292217,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,  -1.16895344,  -3.13003066,
+        -4.31801297,  -3.79661585,  -1.72270664,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.22784948,   0.25813886,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,  -1.0783812 ,  -1.3305057 ,
+         0.04528174,   0.        ,   0.        ,   0.        ,
+         0.        ,   0.        ,   0.        ,   0.        ,
+         0.        ])
+        # fmt: on
+    )
+
+    assert rub_units.forces_rub[rub_units.posRUB * 6 + 1, :] == pytest.approx(
+        # fmt: off
+    np.array([ 0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+       -2.04052219e+00, -4.37686754e+00, -6.57561714e+00, -8.28614638e+00,
+       -9.37724617e+00, -9.76009440e+00, -9.25692987e+00, -7.68859694e+00,
+       -5.19404219e+00, -2.47936767e+00, -6.07948333e-01, -1.39115180e-01,
+       -2.90615182e-01,  5.97112915e-01,  3.77091904e+00,  7.17958236e+00,
+        8.50566481e+00,  6.92594573e+00,  3.76719699e+00,  1.38672233e+00,
+        1.14491558e+00,  2.47008298e+00,  3.68895320e+00,  3.55463037e+00,
+        2.15169896e+00,  7.16172655e-01,  4.58130638e-01,  1.31722645e+00,
+        2.08017814e+00,  1.73698314e+00,  3.66421390e-01,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  1.41608952e+00,
+        3.91872725e+00,  6.08751103e+00,  6.04879589e+00,  3.34005262e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        1.32257678e+00,  4.72982449e+00,  5.65624377e+00,  3.74610313e+00,
+        2.79267497e-01, -1.61571947e+00, -2.61760973e+00, -2.76295228e+00,
+       -2.46754501e+00, -2.27912450e+00, -2.49834149e+00, -3.08123496e+00,
+       -3.77081696e+00, -4.26182369e+00, -4.32814157e+00, -3.92465771e+00,
+       -3.18784204e+00, -2.30089569e+00, -1.36585055e+00, -4.14179880e-01,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+       -2.27746914e-01, -2.70148968e+00, -3.76415772e+00, -3.18400597e+00,
+       -1.61071020e+00, -1.55937047e-01,  0.00000000e+00, -3.48135704e-01,
+       -1.20173785e+00, -1.41164098e+00, -8.22789836e-01,  2.22972608e-02,
+        0.00000000e+00,  0.00000000e+00,  1.11826215e+00,  3.42190067e+00,
+        6.43880255e+00,  7.73939551e+00,  6.02642177e+00,  2.15551882e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        1.30262708e+00,  2.86790215e+00,  2.69095371e+00,  1.30596104e+00,
+        6.27355622e-02, -1.46409693e-01, -1.61596825e-03,  2.02368230e-01,
+        7.76880971e-02, -1.13943983e-01,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00, -1.20894403e-01, -9.67454370e-02,
+       -3.75553448e-01, -6.69880393e-01, -7.81524379e-01, -8.20393160e-01,
+       -1.19541101e+00, -2.17352648e+00, -3.38963807e+00, -3.97901667e+00,
+       -3.24152409e+00, -1.21249778e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00, -1.71167570e+00,
+       -2.63258535e+00, -2.11381589e+00, -7.29071480e-01,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  1.55809454e-01,
+       -1.33550998e-01,  1.30622371e-01,  5.14772296e-01,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  5.87400070e-01,  2.52352092e+00,  3.18829790e+00,
+        2.12154931e+00,  1.96463435e-01,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00, -1.71590151e-01,
+        8.49398637e-02, -3.92130275e-03, -3.10907319e-01, -7.32520442e-01,
+       -1.04949045e+00, -1.03758926e+00, -5.57304261e-01,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+       -2.22986515e-01,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  1.36141783e-01, -1.62089253e-01,
+       -6.56719131e-02,  3.67462355e-01,  6.11527272e-01,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00, -7.23117550e-02, -4.63871628e-02,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  8.90041966e-01,  1.14524591e+00,
+        4.21896347e-01,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00,  0.00000000e+00,  0.00000000e+00,  0.00000000e+00,
+        0.00000000e+00])
+        # fmt: on
+    )
diff --git a/ross/tests/test_units.py b/ross/tests/test_units.py
index 82a62bf7..dbc4adb5 100644
--- a/ross/tests/test_units.py
+++ b/ross/tests/test_units.py
@@ -14,11 +14,11 @@ def auxiliary_function():
     # fmt: off
     @check_units
     def func(E, G_s, rho, L, idl, idr, odl, odr, speed, frequency, m, mx, my, Ip, Id,
-             width, i_d, o_d, kxx, kxy, kxz, kyx, kyy, kyz, kzx, kzy, kzz, cxx, cxy,
+             width, depth, i_d, o_d, kxx, kxy, kxz, kyx, kyy, kyz, kzx, kzy, kzz, cxx, cxy,
              cxz, cyx, cyy, cyz, czx, czy, czz, unbalance_magnitude, unbalance_phase):
         return (
             E, G_s, rho, L, idl, idr, odl, odr, speed, frequency, m, mx, my, Ip, Id,
-            width, i_d, o_d, kxx, kxy, kxz, kyx, kyy, kyz, kzx, kzy, kzz, cxx, cxy,
+            width, depth, i_d, o_d, kxx, kxy, kxz, kyx, kyy, kyz, kzx, kzy, kzz, cxx, cxy,
             cxz, cyx, cyy, cyz, czx, czy, czz, unbalance_magnitude, unbalance_phase
         )
     # fmt: on
@@ -29,7 +29,7 @@ def test_units(auxiliary_function):
     # fmt: off
     results = auxiliary_function(
         E=1, G_s=1, rho=1, L=1, idl=1, idr=1, odl=1, odr=1, speed=1, frequency=1,
-        m=1, mx=1, my=1, Ip=1, Id=1, width=1, i_d=1, o_d=1, kxx=1, kxy=1, kxz=1, kyx=1,
+        m=1, mx=1, my=1, Ip=1, Id=1, width=1,  depth=1, i_d=1, o_d=1, kxx=1, kxy=1, kxz=1, kyx=1,
         kyy=1, kyz=1, kzx=1, kzy=1, kzz=1, cxx=1, cxy=1, cxz=1, cyx=1, cyy=1, cyz=1,
         czx=1, czy=1, czz=1, unbalance_magnitude=1, unbalance_phase=1
     )
@@ -37,7 +37,7 @@ def test_units(auxiliary_function):
     assert len(results) == len(units)
 
     (E, G_s, rho, L, idl, idr, odl, odr, speed, frequency, m, mx, my, Ip, Id,
-     width, i_d, o_d, kxx, kxy, kxz, kyx, kyy, kyz, kzx, kzy, kzz, cxx, cxy,
+     width, depth, i_d, o_d, kxx, kxy, kxz, kyx, kyy, kyz, kzx, kzy, kzz, cxx, cxy,
      cxz, cyx, cyy, cyz, czx, czy, czz, unbalance_magnitude, unbalance_phase) = results
     # fmt: on
 
@@ -57,6 +57,7 @@ def test_units(auxiliary_function):
     assert Ip == 1
     assert Id == 1
     assert width == 1
+    assert depth == 1
     assert i_d == 1
     assert o_d == 1
     assert kxx == 1
@@ -99,6 +100,7 @@ def test_unit_Q_(auxiliary_function):
         Ip=Q_(1, "kg*m**2"),
         Id=Q_(1, "kg*m**2"),
         width=Q_(1, "meter"),
+        depth=Q_(1, "meter"),
         i_d=Q_(1, "meter"),
         o_d=Q_(1, "meter"),
         kxx=Q_(1, "N/m"),
@@ -127,7 +129,7 @@ def test_unit_Q_(auxiliary_function):
     assert len(results) == len(units)
     # fmt: off
     (E, G_s, rho, L, idl, idr, odl, odr, speed, frequency, m, mx, my, Ip, Id,
-     width, i_d, o_d, kxx, kxy, kxz, kyx, kyy, kyz, kzx, kzy, kzz, cxx, cxy,
+     width, depth, i_d, o_d, kxx, kxy, kxz, kyx, kyy, kyz, kzx, kzy, kzz, cxx, cxy,
      cxz, cyx, cyy, cyz, czx, czy, czz, unbalance_magnitude, unbalance_phase) = results
     # fmt: on
 
@@ -147,6 +149,7 @@ def test_unit_Q_(auxiliary_function):
     assert Ip == 1
     assert Id == 1
     assert width == 1
+    assert depth == 1
     assert i_d == 1
     assert o_d == 1
     assert kxx == 1
@@ -189,6 +192,7 @@ def test_unit_Q_conversion(auxiliary_function):
         Ip=Q_(1, "lb*in**2"),
         Id=Q_(1, "lb*in**2"),
         width=Q_(1, "inches"),
+        depth=Q_(1, "inches"),
         i_d=Q_(1, "inches"),
         o_d=Q_(1, "inches"),
         kxx=Q_(1, "lbf/in"),
@@ -218,7 +222,7 @@ def test_unit_Q_conversion(auxiliary_function):
 
     # fmt: off
     (E, G_s, rho, L, idl, idr, odl, odr, speed, frequency, m, mx, my, Ip, Id,
-     width, i_d, o_d, kxx, kxy, kxz, kyx, kyy, kyz, kzx, kzy, kzz, cxx, cxy,
+     width, depth, i_d, o_d, kxx, kxy, kxz, kyx, kyy, kyz, kzx, kzy, kzz, cxx, cxy,
      cxz, cyx, cyy, cyz, czx, czy, czz, unbalance_magnitude, unbalance_phase) = results
     # fmt: on
 
@@ -238,6 +242,7 @@ def test_unit_Q_conversion(auxiliary_function):
     assert Ip == 0.0002926396534292
     assert Id == 0.0002926396534292
     assert width == 0.0254
+    assert depth == 0.0254
     assert i_d == 0.0254
     assert o_d == 0.0254
     assert kxx == 175.12683524647645