Crystal plasticity assumes that any deformation that is applied to a material is accommodated by the process of slip, where dislocation motion occurs on a slip system. Further, Schmid's law is assumed to be a valid, where a given slip system is said to be active when the resolved shear stress along the slip system exceeds the critical resolved shear stress of the slip system. Since the applied deformation occurs in the macroscopic sample reference frame and slip occurs in the single crystal reference frame, in order to consistently apply the constitutive relations, an orientation map (e.g. using Bunge Euler angles) is required for each grain in the polycrystal. This orientation information can be used to transform the relevant tensors between the crystal frame of reference and the sample frame of reference. The slip systems are described by the Schmid tensor, which is tensor product of the Burgers vector and the slip plane normal, and the Schmid tensor is used to obtain the resolved shear stress in each slip system. Each slip system can undergo different amounts of shearing, and obtaining these shear rates lies at the crux of crystal plasticity. Further, by keeping track of the accumulated strain, the critical resolved shear stress is updated according to various hardening models (e.g. Voce hardening law), and this recovers the observed macroscopic stress-strain response for the material. The texture evolution is captured by updating the crystallographic orientation of the grains based on how much each grain deforms.