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, Ifsymmetrized_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
, Ifsymmetrized_basis==False
,strain_tensor.shape == self.tensor_shape
.symmetrized_basis (bool, optional, default to False) – If True, the input
strain_tensor
is 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.