Ab-initio Codes and Theories for Solid Properties