4.1.1.6.1.3. pyfem.materials.Crystal module
Crystal plasticity material model for single crystals.
This module implements a crystal plasticity constitutive model based on the Schmid law for plastic slip in single crystals. The implementation supports: - Multiple slip systems (up to 3 sets) - Cubic crystal structures - Rate-dependent plasticity (power-law viscoplasticity) - Self- and latent-hardening - Finite rotation and finite strain (optional) - Implicit integration with Newton-Raphson iteration
The model is based on the classical crystal plasticity formulation by Peirce, Shih and Needleman (1984) and incorporates the Bassani and Wu hardening law with corrections by Kysar (1997).
- class Crystal(props: Any)[source]
Bases:
BaseMaterialCrystal plasticity constitutive model for single crystals.
This class implements a rate-dependent crystal plasticity model with multiple slip systems. The plastic deformation occurs through crystallographic slip on specific slip planes in specific slip directions (Schmid’s law).
- Parameters:
props (object) –
Properties object containing material parameters:
Elastic properties: - E : float, Young’s modulus (for isotropic) - nu : float, Poisson’s ratio (for isotropic) - c11, c12, c44 : float, elastic constants (for cubic)
Slip system parameters: - nsets : int, number of slip system sets (1-3) - plane1, dir1 : array, slip plane normal and direction for set 1 - plane2, dir2 : array, slip plane normal and direction for set 2 (optional) - plane3, dir3 : array, slip plane normal and direction for set 3 (optional)
Crystal orientation: - orient1_local, orient1_global : array, first orientation vector - orient2_local, orient2_global : array, second orientation vector
Viscoplasticity parameters: - gamma0 : float, reference shear strain rate - m : float, rate sensitivity exponent
Hardening parameters: - tau0 : float, initial critical resolved shear stress - h0 : float, initial hardening modulus - taus : float, saturation stress - a : float, hardening exponent - qab : float, latent hardening ratio
Integration parameters: - theta : float, implicit integration parameter (0.5 recommended) - nlgeom : bool, use finite deformation (default: False) - maxiter : int, maximum Newton-Raphson iterations (default: 20) - tol : float, convergence tolerance (default: 1e-6)
- getStress(kinematics: Any) Tuple[ndarray, ndarray][source]
Compute stress and tangent stiffness matrix.
- Parameters:
kinematics (object) – Kinematics object containing strain increment (kinematics.dstrain)
- Returns:
stress (ndarray) – Cauchy stress tensor (Voigt notation)
tang (ndarray (6x6)) – Material tangent stiffness matrix