occ
Loading...
Searching...
No Matches
subgroup.h File Reference
#include <occ/core/linear_algebra.h>
#include <occ/crystal/crystal.h>
#include <optional>
#include <string>
#include <vector>
Include dependency graph for subgroup.h:

Classes

struct  occ::crystal::MaximalSubgroup
 A maximal subgroup of a space group. More...
 
struct  occ::crystal::SubgroupPath
 A subgroup reached by descending one or more maximal-subgroup steps. More...
 
struct  occ::crystal::SubgroupSearchParameters
 
struct  occ::crystal::SubgroupTransform
 A change of setting from a space group to one of its subgroups. More...
 
struct  occ::crystal::ZPrimeSearchParameters
 

Namespaces

namespace  occ
 
namespace  occ::crystal
 functionality related to periodic crystal structures, space groups, symmetry operations
 
namespace  occ::crystal::impl
 

Enumerations

enum class  occ::crystal::SubgroupType { occ::crystal::Translationengleiche , occ::crystal::Klassengleiche }
 Whether a group-subgroup relation preserves translations or class. More...
 

Functions

const std::vector< MaximalSubgroup > & occ::crystal::maximal_subgroups (int space_group_number)
 The maximal subgroups of a space group.
 
std::vector< MaximalSubgroupocc::crystal::maximal_subgroups (int space_group_number, SubgroupType type)
 The maximal subgroups of a given type.
 
std::vector< SubgroupPathocc::crystal::subgroup_paths (int space_group_number, const SubgroupSearchParameters &params={})
 All subgroups reachable from a space group, by traversing the graph of maximal-subgroup relations.
 
Crystal occ::crystal::to_subgroup (const Crystal &crystal, const SubgroupTransform &transform, double tolerance=1e-4, bool molecular_asymmetric_unit=true)
 Re-describe a crystal in one of its subgroups.
 
SubgroupTransform occ::crystal::compose (const SubgroupTransform &first, const SubgroupTransform &second)
 Compose two subgroup transformations, applied left to right.
 
Crystal occ::crystal::to_standard_setting (const Crystal &crystal, double tolerance=1e-4)
 Re-describe a crystal in the standard (ITA reference) setting of its space group.
 
Crystal occ::crystal::with_grouped_asymmetric_unit (const Crystal &crystal, const IVec &groups, double tolerance=1e-4)
 Re-choose a crystal's asymmetric unit so that groups of atoms stay together.
 
Crystal occ::crystal::with_molecular_asymmetric_unit (const Crystal &crystal, double tolerance=1e-4)
 Re-choose the asymmetric unit so that whole molecules stay together.
 
double occ::crystal::z_prime (const Crystal &crystal)
 The number of molecules in the asymmetric unit, Z'.
 
bool occ::crystal::has_whole_molecule_asymmetric_unit (const Crystal &crystal)
 True if the asymmetric unit consists of whole molecules.
 
std::optional< SubgroupTransformocc::crystal::find_subgroup_for_z_prime (const Crystal &crystal, const ZPrimeSearchParameters &params={})
 Find a subgroup in which the crystal has the target Z'.
 

Variables

const int occ::crystal::impl::num_subgroup_edges
 
const int occ::crystal::impl::subgroup_offsets [231]
 
const unsigned char occ::crystal::impl::subgroup_edge_data []