principia_materia.phonon_id.analytic_strain_tensor module
- class principia_materia.phonon_id.analytic_strain_tensor.AnalyticStrainTensor(order, pg, dim=3, tol=1e-06)
- Bases: - object- compute_tensor(irreducible_derivatives, symmetrized_basis=False)
- Substute irreducible derivatives into vectorized tensor to compute strain tensor. - Parameters:
- irreducible_derivatives (array of complex, shape(self.n_irreducible_derivatives, )) – The value of irreducible derivatives to substitute in. 
- symmetrized_basis (bool, optional, default to False) – Whether to return the tensor in symmetrized basis or in naive basis. 
 
- Returns:
- tensor – The resulting strain tensor after the substitution. If - symmetrized_basis==True, shape equals self.symmetrized_tensor_shape, If- symmetrized_basis==False, shape equals self.tensor_shape.
- Return type:
- array of complex 
 
 - get_irreducible_basis_rowname()
- Get the list of names of the rows for the irreducible basis 
 - get_irreps()
- Get the list of irreducible representations and it’s instance number of the strain rep. 
 - get_rotation_matrix()
- Get the rotation matrix from symmetrized basis to naive basis of strain rep. 
 - property identity_subspace
 - property irreducible_derivative_names
- The list of names of of all irreducible derivatives in the tensor, also reference for the vectorized tensors. 
 - property irreducible_strains
 - property n_irreducible_derivatives
- Number of irreducible derivatives 
 - set_irreducible_derivative_names(irreducible_derivative_names)
- Set the irreducible derivatives names. - Parameters:
- irreducible_derivative_names (list of tuples) – The names of irreducible derivatives. 
 
 - set_irreducible_derivatives(use_int_irrvec=False)
- The irreducible derivatives is constructued as well as the coefficients for them in the symmetrized basis. 
 - set_irreducible_strains()
 - set_strain_rep()
 - set_vectorized_tensor()
- Constructed vectorized tensor from computed irreducible derivatives. 
 - solve_irreducible_derivatives(strain_tensor, symmetrized_basis=False, tol=None)
- Solve for irreducible derivatives from the numerical tensor. - Parameters:
- strain_tensor (array of complex) – The numerical strain tensor to solve irreducible derivatives with. If - symmetrized_basis==True,- strain_tensor.shape == self.symmetrized_tensor_shape, If- symmetrized_basis==False,- strain_tensor.shape == self.tensor_shape.
- symmetrized_basis (bool, optional, default to False) – If True, the input - strain_tensoris in symmetrized basis, if False, the input is in naive basis.
- tol (float, optional, default to None) – Error tolerance, if None, use - self.tol.
 
- Returns:
- irreducible_derivatives (array of complex, shape(self.n_irreducible_derivatives, )) – The least square result of the irreducible derivatives. 
- residues (float) – The residues of the least square. 
- rank (int) – The rank of the reshaped analytic tensor, which equals the number of irreducible derivatives. 
- s (array of complex) – Singular values of the reshaped analytic tensor. 
 
 
 - property symmetrized_tensor_shape
- The shape of the strain tensor in symmetrized basis. 
 - property symmetrized_vectorized_tensor
- Vectorized analytic strain tensor in symmetrized basis. 
 - property tensor_shape
- The shape of the strain tensor in naive basis. 
 - property vectorized_tensor
- Vectorized analytic strain tensor in naive basis.