Gemmi C++ API
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions
symmetry.hpp File Reference

Crystallographic Symmetry. Space Groups. Coordinate Triplets. More...

#include <cstdlib>
#include <array>
#include <algorithm>
#include <functional>
#include <stdexcept>
#include <string>
#include <tuple>
#include <vector>
#include "fail.hpp"

Go to the source code of this file.

Classes

struct  gemmi::Op
 
struct  gemmi::GroupOps
 
struct  gemmi::GroupOps::Iter
 
struct  gemmi::SpaceGroup
 
struct  gemmi::SpaceGroupAltName
 
struct  gemmi::spacegroup_tables
 
struct  gemmi::ReciprocalAsu
 
struct  std::hash< gemmi::Op >
 

Namespaces

namespace  gemmi
 
namespace  std
 

Enumerations

enum class  gemmi::CrystalSystem : unsigned char {
  gemmi::Triclinic =0 , gemmi::Monoclinic , gemmi::Orthorhombic , gemmi::Tetragonal ,
  gemmi::Trigonal , gemmi::Hexagonal , gemmi::Cubic
}
 
enum class  gemmi::PointGroup : unsigned char {
  gemmi::C1 =0 , gemmi::Ci , gemmi::C2 , gemmi::Cs ,
  gemmi::C2h , gemmi::D2 , gemmi::C2v , gemmi::D2h ,
  gemmi::C4 , gemmi::S4 , gemmi::C4h , gemmi::D4 ,
  gemmi::C4v , gemmi::D2d , gemmi::D4h , gemmi::C3 ,
  gemmi::C3i , gemmi::D3 , gemmi::C3v , gemmi::D3d ,
  gemmi::C6 , gemmi::C3h , gemmi::C6h , gemmi::D6 ,
  gemmi::C6v , gemmi::D3h , gemmi::D6h , gemmi::T ,
  gemmi::Th , gemmi::O , gemmi::Td , gemmi::Oh
}
 
enum class  gemmi::Laue : unsigned char {
  gemmi::L1 =0 , gemmi::L2m , gemmi::Lmmm , gemmi::L4m ,
  gemmi::L4mmm , gemmi::L3 , gemmi::L3m , gemmi::L6m ,
  gemmi::L6mmm , gemmi::Lm3 , gemmi::Lm3m
}
 

Functions

bool gemmi::operator== (const Op &a, const Op &b)
 
bool gemmi::operator!= (const Op &a, const Op &b)
 
Op gemmi::operator* (const Op &a, const Op &b)
 
Opgemmi::operator*= (Op &a, const Op &b)
 
GEMMI_DLL Op gemmi::seitz_to_op (const std::array< std::array< double, 4 >, 4 > &t)
 
GEMMI_DLL void gemmi::append_op_fraction (std::string &s, int w)
 
GEMMI_DLL std::array< int, 4 > gemmi::parse_triplet_part (const std::string &s, char &notation, double *decimal_fract=nullptr)
 
GEMMI_DLL Op gemmi::parse_triplet (const std::string &s, char notation=' ')
 
std::vector< Op::Trangemmi::centring_vectors (char centring_type)
 
GroupOps gemmi::split_centering_vectors (const std::vector< Op > &ops)
 
GEMMI_DLL GroupOps gemmi::generators_from_hall (const char *hall)
 
GroupOps gemmi::symops_from_hall (const char *hall)
 
const chargemmi::crystal_system_str (CrystalSystem system)
 
const chargemmi::point_group_hm (PointGroup pg)
 
Laue gemmi::pointgroup_to_laue (PointGroup pg)
 
PointGroup gemmi::laue_to_pointgroup (Laue laue)
 
const chargemmi::laue_class_str (Laue laue)
 
CrystalSystem gemmi::crystal_system (Laue laue)
 
CrystalSystem gemmi::crystal_system (PointGroup pg)
 
unsigned char gemmi::point_group_index_and_category (int space_group_number)
 
PointGroup gemmi::point_group (int space_group_number)
 
bool gemmi::is_sohncke (int space_group_number)
 
bool gemmi::is_enantiomorphic (int space_group_number)
 
bool gemmi::is_symmorphic (int space_group_number)
 
Op::Tran gemmi::nonzero_inversion_center (int space_group_number)
 Inversion center of the Euclidean normalizer that is not at the origin of reference settings.
 
GEMMI_DLL const chargemmi::get_basisop (int basisop_idx)
 
Op::Rot gemmi::centred_to_primitive (char centring_type)
 
const SpaceGroupgemmi::find_spacegroup_by_number (int ccp4) noexcept
 
const SpaceGroupgemmi::get_spacegroup_by_number (int ccp4)
 
const SpaceGroupgemmi::get_spacegroup_reference_setting (int number)
 
GEMMI_DLL const SpaceGroupgemmi::find_spacegroup_by_name (std::string name, double alpha=0., double gamma=0., const char *prefer=nullptr)
 If angles alpha and gamma are provided, they are used to distinguish hexagonal and rhombohedral settings (e.g.
 
const SpaceGroupgemmi::get_spacegroup_by_name (const std::string &name)
 
const SpaceGroupgemmi::get_spacegroup_p1 ()
 
const SpaceGroupgemmi::find_spacegroup_by_ops (const GroupOps &gops)
 

Detailed Description

Crystallographic Symmetry. Space Groups. Coordinate Triplets.

Definition in file symmetry.hpp.