occ
Loading...
Searching...
No Matches
occ::crystal Namespace Reference

functionality related to periodic crystal structures, space groups, symmetry operations More...

Classes

struct  AsymmetricUnit
 A class representing an asymmetric unit of a crystal structure. More...
 
class  Crystal
 A class representing a crystal structure. More...
 
struct  CrystalAtomRegion
 A class representing a region of atoms in a crystal lattice. More...
 
struct  CrystalDimers
 A class representing the molecular dimers in a crystal lattice. More...
 
struct  CrystalSurfaceGenerationParameters
 Parameters for crystal surface generation. More...
 
struct  DimerIndex
 Represents a pair of sites in a crystal structure. More...
 
struct  DimerIndexHash
 
struct  DimerMappingEdge
 
class  DimerMappingTable
 Maps and manages symmetry relationships between dimers in a crystal. More...
 
struct  DimerMappingVertex
 
struct  HKL
 A struct representing a lattice vector triplet (h, k, l) in a crystal lattice. More...
 
class  ReciprocalAsymmetricUnit
 
struct  SiteIndex
 
struct  SiteIndexHash
 
struct  SiteMappingEdge
 
class  SiteMappingTable
 
struct  SiteMappingVertex
 
class  SpaceGroup
 This class represents a space group. More...
 
class  Surface
 Represents and analyzes a crystal surface defined by Miller indices. More...
 
struct  SurfaceCutResult
 Results from analyzing a crystal surface cut. More...
 
struct  SymmetryDimerLabeller
 
class  SymmetryOperation
 Class representing a 3D symmetry operation. More...
 
struct  SymmetryOperationFormat
 
class  UnitCell
 This class represents a unit cell of a crystal lattice. More...
 

Typedefs

using DimerMappingGraph = core::graph::Graph< DimerMappingVertex, DimerMappingEdge >
 
using SiteMappingGraph = core::graph::Graph< SiteMappingVertex, SiteMappingEdge >
 
using SGData = gemmi::SpaceGroup
 

Functions

Eigen::MatrixXd muldin (const Eigen::VectorXd &x)
 
std::vector< Surfacegenerate_surfaces (const Crystal &c, const CrystalSurfaceGenerationParameters &={})
 
UnitCell cubic_cell (double length)
 Construct a cubic unit cell from a given length.
 
UnitCell rhombohedral_cell (double length, double angle)
 Construct a rhombohedral unit cell from a given length and angle.
 
UnitCell tetragonal_cell (double a, double c)
 Construct a tetragonal unit cell from two given lengths.
 
UnitCell hexagonal_cell (double a, double c)
 Construct a hexagonal unit cell from two given lengths.
 
UnitCell orthorhombic_cell (double a, double b, double c)
 Construct an orthorhombic unit cell from three given lengths.
 
UnitCell monoclinic_cell (double a, double b, double c, double angle)
 Construct an orthorhombic unit cell from three given lengths and one angle.
 
UnitCell triclinic_cell (double a, double b, double c, double alpha, double beta, double gamma)
 Construct an orthorhombic unit cell from three given lengths and three angles.
 
void to_json (nlohmann::json &j, const CrystalDimers &)
 
void from_json (const nlohmann::json &j, CrystalDimers &)
 
void to_json (nlohmann::json &j, const AsymmetricUnit &)
 
void from_json (const nlohmann::json &j, AsymmetricUnit &)
 
void to_json (nlohmann::json &j, const UnitCell &)
 
void from_json (const nlohmann::json &j, UnitCell &)
 
void to_json (nlohmann::json &j, const CrystalAtomRegion &)
 
void from_json (const nlohmann::json &j, CrystalAtomRegion &)
 

Detailed Description

functionality related to periodic crystal structures, space groups, symmetry operations

depends on occ::core and the gemmi library

Typedef Documentation

◆ DimerMappingGraph

◆ SGData

using occ::crystal::SGData = typedef gemmi::SpaceGroup

◆ SiteMappingGraph

Function Documentation

◆ cubic_cell()

UnitCell occ::crystal::cubic_cell ( double  length)

Construct a cubic unit cell from a given length.

◆ from_json() [1/4]

void occ::crystal::from_json ( const nlohmann::json &  j,
AsymmetricUnit  
)

◆ from_json() [2/4]

void occ::crystal::from_json ( const nlohmann::json &  j,
CrystalAtomRegion  
)

◆ from_json() [3/4]

void occ::crystal::from_json ( const nlohmann::json &  j,
CrystalDimers  
)

◆ from_json() [4/4]

void occ::crystal::from_json ( const nlohmann::json &  j,
UnitCell  
)

◆ generate_surfaces()

std::vector< Surface > occ::crystal::generate_surfaces ( const Crystal c,
const CrystalSurfaceGenerationParameters = {} 
)

◆ hexagonal_cell()

UnitCell occ::crystal::hexagonal_cell ( double  a,
double  c 
)

Construct a hexagonal unit cell from two given lengths.

◆ monoclinic_cell()

UnitCell occ::crystal::monoclinic_cell ( double  a,
double  b,
double  c,
double  angle 
)

Construct an orthorhombic unit cell from three given lengths and one angle.

◆ muldin()

Eigen::MatrixXd occ::crystal::muldin ( const Eigen::VectorXd &  x)

◆ orthorhombic_cell()

UnitCell occ::crystal::orthorhombic_cell ( double  a,
double  b,
double  c 
)

Construct an orthorhombic unit cell from three given lengths.

◆ rhombohedral_cell()

UnitCell occ::crystal::rhombohedral_cell ( double  length,
double  angle 
)

Construct a rhombohedral unit cell from a given length and angle.

◆ tetragonal_cell()

UnitCell occ::crystal::tetragonal_cell ( double  a,
double  c 
)

Construct a tetragonal unit cell from two given lengths.

◆ to_json() [1/4]

void occ::crystal::to_json ( nlohmann::json &  j,
const AsymmetricUnit  
)

◆ to_json() [2/4]

void occ::crystal::to_json ( nlohmann::json &  j,
const CrystalAtomRegion  
)

◆ to_json() [3/4]

void occ::crystal::to_json ( nlohmann::json &  j,
const CrystalDimers  
)

◆ to_json() [4/4]

void occ::crystal::to_json ( nlohmann::json &  j,
const UnitCell  
)

◆ triclinic_cell()

UnitCell occ::crystal::triclinic_cell ( double  a,
double  b,
double  c,
double  alpha,
double  beta,
double  gamma 
)

Construct an orthorhombic unit cell from three given lengths and three angles.