occ
Loading...
Searching...
No Matches
occ::crystal::Surface Class Reference

Represents and analyzes a crystal surface defined by Miller indices. More...

#include <surface.h>

Public Member Functions

 Surface (const HKL &, const Crystal &)
 Construct a surface from Miller indices and crystal.
 
double depth () const
 
double d () const
 
void print () const
 
Vec3 normal_vector () const
 Get the surface normal vector.
 
const auto & hkl () const
 
const auto & depth_vector () const
 
const auto & a_vector () const
 
const auto & b_vector () const
 
double area () const
 
Vec3 dipole () const
 
Mat3 basis_matrix (double depth_scale=1.0) const
 
std::vector< Moleculefind_molecule_cell_translations (const std::vector< Molecule > &unit_cell_mols, double depth, double cut_offset=0.0)
 
SurfaceCutResult count_crystal_dimers_cut_by_surface (const CrystalDimers &, double cut_offset=0.0)
 
std::vector< double > possible_cuts (Eigen::Ref< const Mat3N > unique_positions, double epsilon=1e-6) const
 

Static Public Member Functions

static bool check_systematic_absence (const Crystal &, const HKL &)
 
static bool faces_are_equivalent (const Crystal &, const HKL &, const HKL &)
 

Detailed Description

Represents and analyzes a crystal surface defined by Miller indices.

Constructor & Destructor Documentation

◆ Surface()

occ::crystal::Surface::Surface ( const HKL ,
const Crystal  
)

Construct a surface from Miller indices and crystal.

Parameters
hklMiller indices defining the surface
crystalReference crystal structure

Member Function Documentation

◆ a_vector()

const auto & occ::crystal::Surface::a_vector ( ) const
inline

◆ area()

double occ::crystal::Surface::area ( ) const
inline

◆ b_vector()

const auto & occ::crystal::Surface::b_vector ( ) const
inline

◆ basis_matrix()

Mat3 occ::crystal::Surface::basis_matrix ( double  depth_scale = 1.0) const

◆ check_systematic_absence()

static bool occ::crystal::Surface::check_systematic_absence ( const Crystal ,
const HKL  
)
static

◆ count_crystal_dimers_cut_by_surface()

SurfaceCutResult occ::crystal::Surface::count_crystal_dimers_cut_by_surface ( const CrystalDimers ,
double  cut_offset = 0.0 
)

◆ d()

double occ::crystal::Surface::d ( ) const

◆ depth()

double occ::crystal::Surface::depth ( ) const

◆ depth_vector()

const auto & occ::crystal::Surface::depth_vector ( ) const
inline

◆ dipole()

Vec3 occ::crystal::Surface::dipole ( ) const

◆ faces_are_equivalent()

static bool occ::crystal::Surface::faces_are_equivalent ( const Crystal ,
const HKL ,
const HKL  
)
static

◆ find_molecule_cell_translations()

std::vector< Molecule > occ::crystal::Surface::find_molecule_cell_translations ( const std::vector< Molecule > &  unit_cell_mols,
double  depth,
double  cut_offset = 0.0 
)

◆ hkl()

const auto & occ::crystal::Surface::hkl ( ) const
inline

◆ normal_vector()

Vec3 occ::crystal::Surface::normal_vector ( ) const

Get the surface normal vector.

Returns
Vector perpendicular to the surface

◆ possible_cuts()

std::vector< double > occ::crystal::Surface::possible_cuts ( Eigen::Ref< const Mat3N >  unique_positions,
double  epsilon = 1e-6 
) const

◆ print()

void occ::crystal::Surface::print ( ) const

The documentation for this class was generated from the following file: