Representation of the crystal symmetry.
More...
#include <crystal_symmetry.hpp>
|
| Crystal_symmetry (r3::matrix< double > const &lattice_vectors__, int num_atoms__, int num_atom_types__, std::vector< int > const &types__, sddk::mdarray< double, 2 > const &positions__, sddk::mdarray< double, 2 > const &spins__, bool spin_orbit__, double tolerance__, bool use_sym__) |
|
int | atom_symmetry_class (int ia__) const |
|
int | spacegroup_number () const |
|
auto | international_symbol () const |
|
auto | hall_symbol () const |
|
auto | transformation_matrix () const |
|
auto | origin_shift () const |
|
int | size () const |
| Number of symmetries including the magnetic configuration. More...
|
|
auto const & | operator[] (int isym__) const |
|
auto const & | lattice_vectors () const |
|
auto const & | inverse_lattice_vectors () const |
|
auto | num_atoms () const |
|
auto | num_atom_types () const |
|
auto | atom_type (int ia__) const |
|
double | metric_tensor_error () const |
| Get an error in metric tensor. More...
|
|
double | sym_op_R_error () const |
| Get error in rotation matrix of the symmetry operation. More...
|
|
void | print_info (std::ostream &out__, int verbosity__) const |
| Print information about the unit cell symmetry. More...
|
|
Representation of the crystal symmetry.
Definition at line 93 of file crystal_symmetry.hpp.
◆ Crystal_symmetry()
sirius::Crystal_symmetry::Crystal_symmetry |
( |
r3::matrix< double > const & |
lattice_vectors__, |
|
|
int |
num_atoms__, |
|
|
int |
num_atom_types__, |
|
|
std::vector< int > const & |
types__, |
|
|
sddk::mdarray< double, 2 > const & |
positions__, |
|
|
sddk::mdarray< double, 2 > const & |
spins__, |
|
|
bool |
spin_orbit__, |
|
|
double |
tolerance__, |
|
|
bool |
use_sym__ |
|
) |
| |
◆ ~Crystal_symmetry()
sirius::Crystal_symmetry::~Crystal_symmetry |
( |
| ) |
|
|
inline |
◆ num_spg_sym()
int sirius::Crystal_symmetry::num_spg_sym |
( |
| ) |
const |
|
inlineprivate |
◆ space_group_symmetry()
auto const & sirius::Crystal_symmetry::space_group_symmetry |
( |
int |
isym__ | ) |
const |
|
inlineprivate |
◆ atom_symmetry_class()
int sirius::Crystal_symmetry::atom_symmetry_class |
( |
int |
ia__ | ) |
const |
|
inline |
◆ spacegroup_number()
int sirius::Crystal_symmetry::spacegroup_number |
( |
| ) |
const |
|
inline |
◆ international_symbol()
auto sirius::Crystal_symmetry::international_symbol |
( |
| ) |
const |
|
inline |
◆ hall_symbol()
auto sirius::Crystal_symmetry::hall_symbol |
( |
| ) |
const |
|
inline |
◆ transformation_matrix()
auto sirius::Crystal_symmetry::transformation_matrix |
( |
| ) |
const |
|
inline |
◆ origin_shift()
auto sirius::Crystal_symmetry::origin_shift |
( |
| ) |
const |
|
inline |
◆ size()
int sirius::Crystal_symmetry::size |
( |
| ) |
const |
|
inline |
Number of symmetries including the magnetic configuration.
This is less or equal to the number of crystal symmetries.
Definition at line 213 of file crystal_symmetry.hpp.
◆ operator[]()
auto const & sirius::Crystal_symmetry::operator[] |
( |
int |
isym__ | ) |
const |
|
inline |
◆ lattice_vectors()
auto const & sirius::Crystal_symmetry::lattice_vectors |
( |
| ) |
const |
|
inline |
◆ inverse_lattice_vectors()
auto const & sirius::Crystal_symmetry::inverse_lattice_vectors |
( |
| ) |
const |
|
inline |
◆ num_atoms()
auto sirius::Crystal_symmetry::num_atoms |
( |
| ) |
const |
|
inline |
◆ num_atom_types()
auto sirius::Crystal_symmetry::num_atom_types |
( |
| ) |
const |
|
inline |
◆ atom_type()
auto sirius::Crystal_symmetry::atom_type |
( |
int |
ia__ | ) |
const |
|
inline |
◆ metric_tensor_error()
double sirius::Crystal_symmetry::metric_tensor_error |
( |
| ) |
const |
Get an error in metric tensor.
Metric tensor in transformed under lattice symmetry operations and compareed with the initial value. It should stay invariant under transformation. This, however, is not always guaranteed numerically, especially when spglib uses large tolerance and find more symmeetry operations.
The error is the maximum value of \( |M_{ij} - \tilde M_{ij}| \) where \( M_{ij} \) is the initial metric tensor and \( \tilde M_{ij} \) is the transformed tensor.
Definition at line 303 of file crystal_symmetry.cpp.
◆ sym_op_R_error()
double sirius::Crystal_symmetry::sym_op_R_error |
( |
| ) |
const |
Get error in rotation matrix of the symmetry operation.
Comparte rotation matrix in Cartesian coordinates with its inverse transpose. They should match.
The error is the maximum value of \( |R_{ij} - R_{ij}^{-T}| \), where \( R_{ij} \) is the rotation matrix and \( R_{ij}^{-T} \) inverse transpose of the rotation matrix.
Definition at line 313 of file crystal_symmetry.cpp.
◆ print_info()
void sirius::Crystal_symmetry::print_info |
( |
std::ostream & |
out__, |
|
|
int |
verbosity__ |
|
) |
| const |
◆ lattice_vectors_
r3::matrix<double> sirius::Crystal_symmetry::lattice_vectors_ |
|
private |
Matrix of lattice vectors.
Spglib requires this matrix to have a positively defined determinant.
Definition at line 99 of file crystal_symmetry.hpp.
◆ inverse_lattice_vectors_
r3::matrix<double> sirius::Crystal_symmetry::inverse_lattice_vectors_ |
|
private |
◆ num_atoms_
int sirius::Crystal_symmetry::num_atoms_ |
|
private |
◆ num_atom_types_
int sirius::Crystal_symmetry::num_atom_types_ |
|
private |
◆ types_
std::vector<int> sirius::Crystal_symmetry::types_ |
|
private |
◆ positions_
◆ magnetization_
sddk::mdarray<double, 2> sirius::Crystal_symmetry::magnetization_ |
|
private |
◆ tolerance_
double sirius::Crystal_symmetry::tolerance_ |
|
private |
◆ spg_dataset_
SpglibDataset* sirius::Crystal_symmetry::spg_dataset_ {nullptr} |
|
private |
◆ space_group_symmetry_
◆ magnetic_group_symmetry_
The documentation for this class was generated from the following files: