I've reduced my optimization problem to the following trace minimization problem: $$\min_X\text{tr}(AXB),$$ subject to that $X$ is a block diagonal matrix whose blocks are all the same -- a diagonal matrix $\Sigma$: $$ X=\begin{pmatrix} \Sigma & \bf0 & \cdots \\ \bf0 & \Sigma & \cdots \\ \vdots & \vdots & \ddots \end{pmatrix}. $$
Not sure if this helps, but each element of $\Sigma$ is guaranteed $>0$.
How should I impose this constraint on $X$?
P.S.: I'm sure it's stupid to call $X$ "block diagonal diagonal" -- please suggest a better name :-)
Partition $A$ and $B$ so that they have conforming block structures to $X$. Let $A_{ij}$ denotes the $(i,j)$-th sub-block and similarly for $B$. Then $$ \operatorname{tr}(AXB)=\operatorname{tr}\sum_{i,k}(A_{ik}\Sigma B_{ki})=\operatorname{tr}\left(\left(\sum_{i,k}B_{ki}A_{ik}\right)\Sigma\right)=\langle\mathbf c,\mathbf s\rangle, $$ where $\mathbf c$ is the diagonal of $C=\sum_{i,k}B_{ki}A_{ik}$ and $\mathbf s$ is the diagonal of $\Sigma$. Now,