A review of constitutive models and modeling techniques for shape memory alloys