A few notes:

- If all the plies are 0, then why go through the CLT process? Just use the beam bending formula as you did for the isotropic and the modulus that runs along the 1.5m direction. In other words, I was expecting some simple hand calcs like before.

- For a more general composite, I don't think you want the D matrix terms in this case. Rather, you should use the d matrix values. The D term would be used in a scenario where anticlastic curvature is resisted (I attached a snip from my book).

- I didn't follow the python code all the way through, but remember D (and d) are "per width" stiffnesses so you need to adjust them by the width. This will flush out if you do the simple PL^3/(3EI) calculation as well.

- If all the plies are 0, then why go through the CLT process? Just use the beam bending formula as you did for the isotropic and the modulus that runs along the 1.5m direction. In other words, I was expecting some simple hand calcs like before.

- For a more general composite, I don't think you want the D matrix terms in this case. Rather, you should use the d matrix values. The D term would be used in a scenario where anticlastic curvature is resisted (I attached a snip from my book).

- I didn't follow the python code all the way through, but remember D (and d) are "per width" stiffnesses so you need to adjust them by the width. This will flush out if you do the simple PL^3/(3EI) calculation as well.