I'm trying to use SOL200 for a topology optimization. The DSCM2 sensitivity matrix is read out via OPTEXIT=-4. However, to know which derivative corresponds to which design variable, I need the DSCMCOL table. The following readout shows that pyNastran knows the table exists, but isn't able to read it:
DEBUG: op2.py:547 combine=True
DEBUG: op2.py:548 -------- reading op2 with read_mode=1 (array sizing) --------
...
DEBUG: op2_scalar.py:1537 table_name='ONMD'
WARNING: minor_tables.py:1434 unexpected tout for ONMD: matrix_num=101 form=0 mrows=0 ncols=200 tout=0 nvalues=0 g=0
DEBUG: op2_scalar.py:1537 table_name='DSCMCOL'
DEBUG: op2_scalar.py:1537 table_name='DSCM2'
DEBUG: op2_scalar.py:1537 table_name='DBCOPT'
DEBUG: op2.py:560 -------- reading op2 with read_mode=2 (array filling) --------
...
DEBUG: op2_scalar.py:1537 table_name='ONMD'
DEBUG: op2_scalar.py:1537 table_name='DSCMCOL'
DEBUG: op2_scalar.py:1537 table_name='DSCM2'
DEBUG: op2_scalar.py:1537 table_name='DBCOPT'
displacements[1]
isubcase = 1
type=RealDisplacementArray nnodes=341, table_name=BOUGV1
data: [t1, t2, t3, r1, r2, r3] shape=[1, 341, 6] dtype=float32
node_gridtype.shape = (341, 2)
sort1
lsdvmns = [1]
spc_forces[1]
isubcase = 1
type=RealSPCForcesArray nnodes=341, table_name=OQG1
data: [t1, t2, t3, r1, r2, r3] shape=[1, 341, 6] dtype=float32
node_gridtype.shape = (341, 2)
sort1
lsdvmns = [1]
cquad8_stress[1]
type=RealPlateStressArray nelements=100 nnodes_per_element=5 nlayers=2 ntotal=1000
data: [1, ntotal, 8] where 8=[fiber_distance, oxx, oyy, txy, angle, omax, omin, von_mises]
element_node.shape = (1000, 2)
data.shape=(1, 1000, 8)
element type: CQUAD8
s_code: 1
sort1
lsdvmns = [1]
cquad8_strain_energy[1]
type=RealStrainEnergyArray nelements=101
element: [1, nelements]; eid=100000000 -> total
data: [1, nelements, 3] where 3=[strain_energy, percent, strain_energy_density]
data.shape = (1, 101, 3)
sort1
lsdvmns = [0]
Matrix['DSCM2']; shape=(81, 4); type=scipy.sparse.coo.coo_matrix; dtype=float64; desc=rectangular
Matrix['ICASE']; data=None; type=<NoneType> dtype=<NoneType>; desc=N/A
Matrix['ONMD']; data=None; type=<NoneType> dtype=<NoneType>; desc=N/A
My question is: how to make pyNastran read out the DSCMCOL table? I have tried adding it to the additional_matrices attribute, but to no avail.