Hi Steve,
I could find some time figuring out this issue. I used to calculate psd through frf, but people in my team were still pushing for being able to read it directly... :)
In terms of version, I'm working with the main branch on github. What I had for psd (sort2) for cbush was that only the last element was read,
more specifically, in the example below where I have two cbush elements with respective ids 1005 and 1006, I had
print(random.op2_results.psd.cbush_force[1].element)
>> [1006 0]
print(random.op2_results.psd.cbush_force[1].element_ids)
>> [1005 , 1006]
and in data, only the first line was filled with the value corresponding to the last element as well (1006)
random.op2_results.psd.cbush_force[1].data
>> array([[[3.5451579e+00, 1.4228966e+00, 2.4901101e-05, 3.3304757e-06,
1.3134211e-06, 0.0000000e+00],
[0.0000000e+00, 0.0000000e+00, 0.0000000e+00, 0.0000000e+00,
0.0000000e+00, 0.0000000e+00]],
In oef_force_objects.py, in RealForceMomentArray.add_sort2, I realized that self.ielement was not iterated and always stays at 0, I just add the following line
self.ielement = np.where(self.element_ids == eid) in the method and everything seems working properly now,
print(random.op2_results.psd.cbush_force[1].element)
>> [1005 1006]
print(random.op2_results.psd.cbush_force[1].element_ids)
>> [1005 , 1006]
random.op2_results.psd.cbush_force[1].data
>> array([[[3.5451579e+00, 1.4228966e+00, 2.4901101e-05, 3.3304757e-06,
1.3134211e-06, 0.0000000e+00],
[3.5451579e+00, 1.4228966e+00, 2.4901101e-05, 3.3304757e-06,
1.3134211e-06, 0.0000000e+00]],
Is it clean enough as implementation ? Would it be possible to add that in the main branch?
Best regards,
Cédric