Non-Orthogonal Multiple Access for Unicast and Multicast D2D: Channel Assignment, Power Allocation and Energy Efficiency