pyxtal package
main pyxtal module to create the pyxtal class
- class pyxtal.pyxtal(molecular=False)[source]
Bases:
object
Class for handling atomic crystals based on symmetry constraints
Examples
To create a new structure instance
>>> from pyxtal import pyxtal >>> struc = pyxtal()
one can either use pyxtal to generate a random symmetric structure
>>> struc.from_random(3, 227, ['C'], [8])
or load a structure from a file or ASE atoms or Pymatgen structure object
>>> struc.from_seed('diamond.cif') # as a string >>> struc.from_seed(diamond_ase) # as a ase atoms object >>> struc.from_seed(diamond_pymatgen) # as a pymatgen structure object
as long as the struc is created, you can check their symmetry as follows
>>> struc.get_site_labels() {'C': ['8a']} >>> struc ------Crystal from random------ Dimension: 3 Composition: C8 Group: Fd-3m (227) cubic lattice: 4.3529 4.3529 4.3529 90.0000 90.0000 90.0000 Wyckoff sites: C @ [0.1250 0.1250 0.1250], WP: 8a, Site symmetry: -4 3 m
The structure object can be easily manipulated via apply_perturbtation or subgroup function
>>> struc2 = struc.subgroup_once(H=141) >>> struc2 ------Crystal from Wyckoff Split------ Dimension: 3 Composition: C8 Group: I41/amd (141) tetragonal lattice: 3.3535 3.3535 4.6461 90.0000 90.0000 90.0000 Wyckoff sites: C @ [0.0000 0.2500 0.3750], WP: 4b, Site symmetry: -4 m 2
Alternatively, one can easily compute its XRD via the pyxtal.XRD class
>>> xrd = struc.get_XRD() >>> xrd 2theta d_hkl hkl Intensity Multi 32.706 2.738 [ 1 1 1] 100.00 8 54.745 1.677 [ 2 2 0] 40.95 12 65.249 1.430 [ 3 1 1] 20.65 24 81.116 1.186 [ 4 0 0] 5.15 6 90.236 1.088 [ 3 3 1] 8.24 24 105.566 0.968 [ 4 2 2] 14.44 24 115.271 0.913 [ 5 1 1] 10.03 24 133.720 0.838 [ 4 4 0] 9.80 12 148.177 0.802 [ 5 3 1] 28.27 48
One can also try to get the transition path between two pyxtals that are symmetry related via the get_transition function
>>> s1 = pyxtal() >>> s2 = pyxtal() >>> s1.from_seed("pyxtal/database/cifs/0-G62.cif") #structure with low symmetry >>> s2.from_seed("pyxtal/database/cifs/2-G71.cif") #structure with high symmetry >>> strucs, _, _, _, _ = s2.get_transition(s1) # get the transition from high to low >>> strucs [ ------Crystal from Transition 0 0.000------ Dimension: 3 Composition: O24Mg4W4Pb8 Group: Pnma (62) orthorhombic lattice: 11.6075 8.0526 5.8010 90.0000 90.0000 90.0000 Wyckoff sites: Mg @ [ 0.8750 0.2500 0.7500], WP [4c] Site [.m.] Pb @ [ 0.6406 0.0053 0.7856], WP [8d] Site [1] W @ [ 0.6119 0.2500 0.2483], WP [4c] Site [.m.] O @ [ 0.6292 0.0083 0.2235], WP [8d] Site [1] O @ [ 0.4966 0.2500 0.0093], WP [4c] Site [.m.] O @ [ 0.5055 0.2500 0.4897], WP [4c] Site [.m.] O @ [ 0.7308 0.2500 0.9717], WP [4c] Site [.m.] O @ [ 0.7467 0.2500 0.4570], WP [4c] Site [.m.], ------Crystal from Transition 1 0.323------ Dimension: 3 Composition: O24Mg4W4Pb8 Group: Pnma (62) orthorhombic lattice: 11.6020 8.0526 5.8038 90.0000 90.0000 90.0000 Wyckoff sites: Mg @ [ 0.8750 0.2500 0.7500], WP [4c] Site [.m.] Pb @ [ 0.6250 -0.0053 0.7500], WP [8d] Site [1] W @ [ 0.6250 0.2500 0.2500], WP [4c] Site [.m.] O @ [ 0.6250 0.0083 0.2500], WP [8d] Site [1] O @ [ 0.5158 0.2500 -0.0068], WP [4c] Site [.m.] O @ [ 0.5158 0.2500 0.5068], WP [4c] Site [.m.] O @ [ 0.7342 0.2500 0.9932], WP [4c] Site [.m.] O @ [ 0.7342 0.2500 0.5068], WP [4c] Site [.m.]]
Finally, the structure can be saved to different formats
>>> struc.to_file('my.cif') >>> struc.to_file('my_poscar', fmt='poscar')
or to Pymatgen/ASE structure object
>>> pmg_struc = struc.to_pymatgen() >>> ase_struc = struc.to_ase()
or to json file
>>> struc.to_json('1.json')
- apply_perturbation(d_lat=0.05, d_coor=0.05, d_rot=1)[source]
perturb the structure without breaking the symmetry
- Parameters:
d_coor – magnitude of perturbation on atomic coordinates (in A)
d_lat – magnitude of perturbation on lattice (in percentage)
- build(group, species, numIons, lattice, sites, tol=0.01, use_hall=False)[source]
Build a atomic crystal based on the necessary input
- Parameters:
group – 225
species – [‘Na’, ‘Cl’]
numIons – [4, 4]
lattice – lattice object
sites – [[{“4a”: [0.0, 0.0, 0.0]}], [{“4b”: [0.5, 0.5, 0.5]}]]
- check_H_coordination(r=1.12)[source]
A function to check short if H is connected to more than one atom Mainly used for debug, powered by pymatgen
- Parameters:
r – the given cutoff distances
- Returns:
True or False
- check_mapping(ref_struc)[source]
Compute the displacement w.r.t. the reference structure
- Parameters:
ref_struc – reference pyxtal structure (assuming the same atom order)
- Returns:
True or False
- check_short_distances(r=0.7, exclude_H=True)[source]
A function to check short distance pairs Mainly used for debug, powered by pymatgen
- Parameters:
r – the given cutoff distances
exclude_H – whether or not exclude the H atoms
- Returns:
list of pairs within the cutoff
- check_short_distances_by_dict(dicts)[source]
A function to check short distance pairs Mainly used for debug, powered by pymatgen
- Parameters:
dicts – e.g., {“H-H”: 1.0, “O-O”: 2.0}
- Returns:
number of atomic pairs within the cutoff
- Return type:
N_pairs
- find_matched_lattice(ref_struc, d_tol=2.0, f_tol=0.15)[source]
Compute the displacement w.r.t. the reference structure
- Parameters:
ref_struc – reference pyxtal structure (assuming the same atomic ordering)
d_tol – tolerence of mismatch in the absolute scale
f_tol – tolerence of mismatch in the fractional scale
- Returns:
ref_struc with matched lattice
- from_CSD(csd_code)[source]
Download the crystal from CCDC if csd_code is given, return the single pyxtal object if csd_family is given, do group analysis and ignore high pressure form
- Parameters:
csd_code – e.g.,
ACSALA01
- from_random(dim=3, group=None, species=None, numIons=None, factor=1.1, thickness=None, area=None, lattice=None, sites=None, conventional=True, t_factor=1.0, max_count=10, torsions=None, force_pass=False, block=None, num_block=None, seed=None, tm=None, use_hall=False)[source]
- from_seed(seed, molecules=None, tol=0.0001, a_tol=5.0, ignore_HH=True, add_H=False, backend='pymatgen', style='pyxtal', hn=None, standard=False)[source]
Load the seed structure from Pymatgen/ASE/POSCAR/CIFs Internally they will be handled by Pymatgen
- Parameters:
seed – cif/poscar file or a Pymatgen Structure object
molecules – a list of reference molecule (xyz file or Pyxtal molecule)
tol – scale factor for covalent bond distance
ignore_HH – whether or not ignore short H-H distance in molecules
add_H – whether or not add H atoms
backend – structure parser, default is pymatgen
style – pyxtal for spglib
standard – whether or not optimize lattice
- get_XRD(**kwargs)[source]
Compute the PXRD object.
- ** kwargs include
wavelength (1.54184)
thetas [0, 180]
preferred_orientation: False
march_parameter: None
- get_alternatives(include_self=True, same_letters=False, ref_lat=None, d_tol=2.0, f_tol=0.15)[source]
Get alternative structure representations
- Parameters:
include_self (bool) – return the original structure
- Returns:
list of structures
- get_dimensionality(cutoff=None)[source]
A quick wrapper to compute dimensionality from pymatgen https://pymatgen.org/pymatgen.analysis.dimensionality.html The dimensionality of the structure can be 1/2/3
- get_disps_optim(ref_struc, trans, d_tol)[source]
- Parameters:
ref_struc – reference pyxtal structure (assuming the same atom order)
trans – translation vector
d_tol – tolerence of mismatch
- Returns:
Atomic displacements in np.array translation:
- get_disps_sets(ref_struc, d_tol, d_tol2=0.3, ld_tol=2.0, fd_tol=0.15, keep_lattice=False)[source]
Compute the displacement w.r.t. a reference structure (considering all wycsets)
- Parameters:
ref_struc – reference pyxtal structure (assuming the same atomic ordering)
d_tol – maximally allowed atomic displacement
d_tol2 – displacement that allows early termination
kepp_lattice – whether or not change the WP sets
- Returns:
Atomic displacements in np.array
- get_disps_single(ref_struc, trans, d_tol=1.2)[source]
Compute the displacement w.r.t. the reference structure
- Parameters:
ref_struc – reference pyxtal structure (assuming the same atom order)
trans – translation vector
d_tol – tolerence of mismatch
- Returns:
Atomic displacements in np.array translation:
- get_forcefield(ff_style='openff', code='lammps', chargemethod='am1bcc', parameters=None)[source]
An interface to create forcefield for molecular simulation with - Charmm - LAMMPS Note that the current approach generates charge with its own conformer, need to provide the option to use the conformer from the given molecule
- Parameters:
ff_style (-) – ‘gaff’ or ‘openff’
code (-) – ‘lammps’ or ‘charmm’
charge_method (-) – ‘am1bcc’, ‘am1-mulliken’, ‘mmff94’, ‘gasteiger’
parameters (-) – 1D-array of user-specified FF parameters
- Returns:
An ase_atoms_objects with force field information
- get_init_translations(ref_struc, tol=0.75)[source]
Compute the displacement w.r.t. the reference structure
- Parameters:
ref_struc – reference pyxtal structure (assuming the same atom order)
- Returns:
list of possible translations
- get_intermolecular_energy(factor=2.0, max_d=10.0)[source]
For molecular crystals, get the intermolecular interactions from Gavezzotti, A., Filippini, G., J. Phys. Chem., 1994, 98 (18), 4831-4837
- Returns:
Total energy
- get_neighboring_dists(site_id=0, factor=1.5, max_d=5.0)[source]
For molecular crystals, get the neighboring molecules for a given WP
- Parameters:
site_id – the index of reference site
factor – factor of vdw tolerance
max_d – maximum distances
- Returns:
list of short contact pairs engs: list of energies from atom-atom potential
- Return type:
pairs
- get_neighboring_molecules(site_id=0, factor=1.5, max_d=5.0, ignore_E=True)[source]
For molecular crystals, get the neighboring molecules for a given WP
- Parameters:
site_id – the index of reference site
factor – factor of vdw tolerance
max_d –
ignore_E –
- Returns:
list of shortest distances neighs: list of neighboring molecular xyzs comps: list of molecular types Ps: list of [0, 1] to distinguish self and other molecules engs: list of energies from atom-atom potential
- Return type:
min_ds
- get_spherical_images(**kwargs)[source]
get the spherical image representation
- Parameters:
model – either ‘molecule’ or ‘contacts’
- Returns:
the sph class
- get_std_representation(trans)[source]
Perform cell transformation so that the symmetry operations follow standard space group notation
- get_structure_factor(hkl, coeffs=None)[source]
Compute the structure factor for a given hkl plane
- Parameters:
hkl (-) – three indices hkl plane
coeffs (-) – Atomic scatering factors
- get_transition(ref_struc, d_tol=1.0, d_tol2=0.3, N_images=2, max_path=30, both=False)[source]
Get the splitted wyckoff information along a given path:
- Parameters:
ref_struc – structure with subgroup symmetry
d_tol – maximally allowed atomic displacement
d_tol2 – displacement that allows early termination
N_images – number of intermediate images
max_path – maximum number of paths
both – whether or not do interpolation along both sides
- Returns:
displacements:
cell translation:
the list of space groups along the path
the list of splitters along the path
- Return type:
strucs
- get_transition_by_path(ref_struc, path, d_tol, d_tol2=0.5, N_images=2, both=False)[source]
Get the splitted wyckoff information along a given path:
- Parameters:
ref_struc – structure with subgroup symmetry
path – a list of transition path
d_tol – maximally allowed atomic displacement
d_tol2 – displacement that allows early termination
N_images – number of intermediate images
both – interpolation on both sides
- Returns:
displacements:
cell translation:
- Return type:
strucs
- make_transitions(disps, lattice=None, translation=None, N_images=3, both=False)[source]
make the pyxtals by following the atomic displacements
- Parameters:
disps – N*3 atomic displacements in fractional coordinates
lattice – 3*3 cell matrix (self.lattice.matrix if None)
translation – overall translation
N_images – number of images
both – whether or not interpolar on both sides
- optimize_lattice(iterations=5, force=False, standard=False)[source]
Optimize the lattice if the cell has a bad inclination angles We first optimize the angle to some good-looking range. If standard, force the structure to have the standard setting This only applies to monoclinic systems
- Parameters:
iterations – maximum number of iterations
force – whether or not do the early termination
standard – True or False
- resort_species(species)[source]
resort the atomic species
- Parameters:
species – list of elements, e.g. [‘Si’, ‘O’]
- set_site_coordination(cutoff=None, verbose=False, exclude_ii=False)[source]
Compute the coordination number from each atomic site
- show_mol_cluster(id, factor=1.5, max_d=4.0, plot=True, ignore_E=False, cmap='YlGn', **kwargs)[source]
display the local packing environment for a selected molecule
- subgroup(perms=None, H=None, eps=0.05, idx=None, group_type='t', max_cell=4, min_cell=0)[source]
Generate a structure with lower symmetry
- Parameters:
perms – e.g., {“Si”: “C”}
H – space group number (int)
eps – pertubation term (float)
idx – list
group_type – t, k or t+k
max_cell – maximum cell reconstruction (float)
- Returns:
a list of pyxtal structures with lower symmetries
- subgroup_by_path(gtypes, ids, eps=0, mut_lat=False)[source]
Generate a structure with lower symmetry (for atomic crystals only)
- Parameters:
g_types – [‘t’, ‘k’]
idx – list of ids for the splitter
eps – degree of displacement
mut_lat – mutate the lattice of not
- Returns:
a pyxtal structure with lower symmetries list of splitters
- subgroup_once(eps=0.1, H=None, perms=None, group_type='t', max_cell=4, min_cell=0, mut_lat=True, ignore_special=False)[source]
Generate a structure with lower symmetry (for atomic crystals only)
- Parameters:
perms – e.g., {“Si”: “C”}
H – space group number (int)
idx – list
group_type – t or k
max_cell – maximum cell reconstruction (float)
- Returns:
a pyxtal structure with lower symmetries
- substitute(dicts)[source]
A quick function to apply substitution
- Parameters:
dicts – e.g., {“F”: “Cl”}
- substitute_linear(dicts)[source]
This is mainly designed for substitution between single atom and the linear block e.g., we want to make Zn(CN)2 from SiO2 :param dicts: e.g., {“Si”: [“Zn”], “O”: [“C”,”N”]}
- supergroup(G=None, d_tol=1.0)[source]
Generate a structure with higher symmetry
- Parameters:
G – super space group number (list of integers)
d_tol – maximum tolerance
- Returns:
a list of pyxtal structures with minimum super group symmetries
- supergroups(G=None, d_tol=1.0)[source]
Generate the structures with higher symmetry
- Parameters:
G – super space group number (list of integers)
d_tol – maximum tolerance
- Returns:
a list of pyxtal structures with minimum super group symmetries
- to_file(filename=None, fmt=None, permission='w', sym_num=None, header='from_pyxtal')[source]
Creates a file with the given ame and type to store the structure. By default, creates cif files for crystals and xyz files for clusters. For other formats, Pymatgen is used
- Parameters:
filename (string) – the file path
fmt (string) – the file type (cif, xyz, etc.)
permission (string) – w or a+
sym_num (int) – number of sym_ops, None means writing all symops
header (string) – header
- Returns:
Nothing. Creates a file at the specified path
- to_molecular_xtal(molecules, oris=None, reflects=None)[source]
Convert the atomic xtal to molecular xtal the input molecules must have the same length of the self.atom_sites
- to_subgroup(path=None, t_only=True, iterate=False, species=None)[source]
Transform a crystal with speical sites to subgroup represenatation with general sites
- Parameters:
Path – list of path to get the general sites
iterate (bool) – whether or not do it iteratively
Subpackages
- pyxtal.database package
- Submodules
- pyxtal.database.collection module
- pyxtal.database.element module
Element
Element.all_covalent_radii()
Element.all_long_names()
Element.all_metallic_radii()
Element.all_short_names()
Element.all_valence_electrons()
Element.all_valences()
Element.all_vdw_radii()
Element.all_z()
Element.covalent_radius
Element.elements_list
Element.get_all()
Element.get_sf()
Element.long_name
Element.metallic_radius
Element.number_from_specie()
Element.sf
Element.short_name
Element.valence
Element.valence_electrons
Element.vdw_radius
Element.z
- Submodules
- pyxtal.interface package
Submodules
- pyxtal.block_crystal module
- pyxtal.crystal module
- pyxtal.descriptor module
- pyxtal.io module
- pyxtal.lattice module
Lattice
Lattice.add_vacuum()
Lattice.apply_transformation()
Lattice.check_mismatch()
Lattice.copy()
Lattice.encode()
Lattice.find_transition_to_orthoslab()
Lattice.from_1d_representation()
Lattice.from_matrix()
Lattice.from_para()
Lattice.generate_matrix()
Lattice.generate_para()
Lattice.generate_point()
Lattice.get_diff()
Lattice.get_dofs()
Lattice.get_lengths()
Lattice.get_matrix()
Lattice.get_para()
Lattice.get_permutation_matrices()
Lattice.get_transformation_matrices()
Lattice.get_worst_angle()
Lattice.is_valid_matrix()
Lattice.mutate()
Lattice.optimize_multi()
Lattice.optimize_once()
Lattice.reset_matrix()
Lattice.scale()
Lattice.search_transformation()
Lattice.search_transformations()
Lattice.set_matrix()
Lattice.set_para()
Lattice.set_volume()
Lattice.standardize()
Lattice.swap_angle()
Lattice.swap_axis()
Lattice.transform()
Lattice.transform_multi()
gaussian()
generate_cellpara()
generate_cellpara_0D()
generate_cellpara_1D()
generate_cellpara_2D()
matrix2para()
para2matrix()
random_shear_matrix()
random_vector()
- pyxtal.molecular_crystal module
- pyxtal.molecule module
Box
Orientation
compare_mol_connectivity()
find_rotor_from_smile()
generate_molecules()
get_inertia_tensor()
is_compatible_symmetry()
make_graph()
pyxtal_molecule
pyxtal_molecule.align()
pyxtal_molecule.apply_inversion()
pyxtal_molecule.copy()
pyxtal_molecule.get_box()
pyxtal_molecule.get_box_coordinates()
pyxtal_molecule.get_center()
pyxtal_molecule.get_coefs_matrix()
pyxtal_molecule.get_energy()
pyxtal_molecule.get_orientation()
pyxtal_molecule.get_orientations_in_wp()
pyxtal_molecule.get_orientations_in_wps()
pyxtal_molecule.get_principle_axes()
pyxtal_molecule.get_radius()
pyxtal_molecule.get_rmsd()
pyxtal_molecule.get_rmsd2()
pyxtal_molecule.get_symbols()
pyxtal_molecule.get_symmetry()
pyxtal_molecule.get_tols_matrix()
pyxtal_molecule.get_torsion_angles()
pyxtal_molecule.list_molecules()
pyxtal_molecule.load_str()
pyxtal_molecule.perturb_torsion()
pyxtal_molecule.rdkit_mol()
pyxtal_molecule.rdkit_mol_init()
pyxtal_molecule.relax()
pyxtal_molecule.reset_positions()
pyxtal_molecule.save_str()
pyxtal_molecule.set_labels()
pyxtal_molecule.set_torsion_angles()
pyxtal_molecule.show()
pyxtal_molecule.show_box()
pyxtal_molecule.swap_axis()
pyxtal_molecule.to_ase()
random()
reoriented_molecule()
- pyxtal.operations module
OperationAnalyzer
aa2matrix()
angle()
apply_ops()
apply_ops_diagonal()
are_equal()
check_distance()
check_images()
create_matrix()
distance()
distance_matrix()
distance_matrix_no_PBC()
filtered_coords()
filtered_coords_euclidean()
find_ids()
get_best_match()
get_inverse()
get_inverse_ops()
is_orthogonal()
rotate_vector()
verify_distances()
- pyxtal.representation module
- pyxtal.supergroup module
find_mapping()
find_mapping_per_element()
find_xyz()
new_path()
new_structure()
search_G1()
search_G2()
supergroup
supergroup.calc_disps()
supergroup.get_coord_H()
supergroup.get_initial_mask()
supergroup.make_pyxtal_in_supergroup()
supergroup.make_pyxtals_in_subgroup()
supergroup.make_supergroup()
supergroup.print_detail()
supergroup.print_wp()
supergroup.search_supergroup()
supergroup.sort_solutions()
supergroup.symmetrize()
supergroup.symmetrize_dist()
supergroup.symmetrize_site_double_k()
supergroup.symmetrize_site_double_t()
supergroup.symmetrize_site_multi()
supergroup.symmetrize_site_single()
supergroups
write_poscars()
- pyxtal.symmetry module
Group
Group.add_k_transitions()
Group.cellsize()
Group.check_compatible()
Group.clean_lists()
Group.get_alternatives()
Group.get_ferroelectric_groups()
Group.get_free_axis()
Group.get_index_by_letter()
Group.get_lattice_dof()
Group.get_lists()
Group.get_lists_mol()
Group.get_max_k_subgroup()
Group.get_max_subgroup()
Group.get_max_subgroup_numbers()
Group.get_max_t_subgroup()
Group.get_min_supergroup()
Group.get_site_dof()
Group.get_splitters_from_relation()
Group.get_splitters_from_structure()
Group.get_valid_solutions()
Group.get_wp_by_letter()
Group.get_wp_list()
Group.get_wyckoff_position()
Group.get_wyckoff_position_from_xyz()
Group.is_valid_combination()
Group.list_groups()
Group.list_wyckoff_combinations()
Group.path_to_general_wp()
Group.path_to_subgroup()
Group.search_subgroup_paths()
Group.search_supergroup_paths()
Group.short_path_to_general_wp()
Hall
Wyckoff_position
Wyckoff_position.apply_ops()
Wyckoff_position.are_equivalent_pts()
Wyckoff_position.copy()
Wyckoff_position.distance_check()
Wyckoff_position.equivalent_set()
Wyckoff_position.from_dict()
Wyckoff_position.from_group_and_index()
Wyckoff_position.from_group_and_letter()
Wyckoff_position.from_index_quick()
Wyckoff_position.from_symops()
Wyckoff_position.from_symops_wo_group()
Wyckoff_position.gen_pos()
Wyckoff_position.get_all_positions()
Wyckoff_position.get_dof()
Wyckoff_position.get_euclidean_generator()
Wyckoff_position.get_euclidean_symmetries()
Wyckoff_position.get_free_xyzs()
Wyckoff_position.get_frozen_axis()
Wyckoff_position.get_hm_number()
Wyckoff_position.get_hm_symbol()
Wyckoff_position.get_label()
Wyckoff_position.get_ops_from_transformation()
Wyckoff_position.get_position_from_free_xyzs()
Wyckoff_position.get_site_symm_wo_translation()
Wyckoff_position.get_site_symmetry()
Wyckoff_position.has_equivalent_ops()
Wyckoff_position.is_pure_translation()
Wyckoff_position.is_standard_setting()
Wyckoff_position.load_dict()
Wyckoff_position.merge()
Wyckoff_position.print_ops()
Wyckoff_position.process_ops()
Wyckoff_position.project()
Wyckoff_position.save_dict()
Wyckoff_position.search_all_generators()
Wyckoff_position.search_generator()
Wyckoff_position.search_generator_dist()
Wyckoff_position.set_euclidean()
Wyckoff_position.set_generators()
Wyckoff_position.set_ops()
Wyckoff_position.short_distances()
Wyckoff_position.swap_axis()
Wyckoff_position.transform_from_matrices()
Wyckoff_position.transform_from_matrix()
Wyckoff_position.update()
Wyckoff_position.update_hall()
Wyckoff_position.update_index()
abc2matrix()
are_equivalent_ops()
check_symmetry_and_dim()
check_wyckoff_position()
choose_wyckoff()
choose_wyckoff_mol()
get_all_polar_space_groups()
get_close_packed_groups()
get_generators()
get_pbc_and_lattice()
get_point_group()
get_symbol_and_number()
get_symmetry_from_ops()
get_wyckoff_symmetry()
get_wyckoffs()
i_from_jk()
identity_ops()
index_from_letter()
jk_from_i()
letter_from_index()
op_transform()
op_translation()
organized_wyckoffs()
para2ferro()
search_cloest_wp()
site_symm()
ss_string_from_ops()
swap_xyz_ops()
swap_xyz_string()
symmetry_element_from_axis()
transform_ops()
trim_ops()
- pyxtal.tolerance module
- pyxtal.viz module
- pyxtal.wyckoff_site module
atom_site
atom_site.check_with_ws2()
atom_site.copy()
atom_site.encode()
atom_site.equivalent_set()
atom_site.get_disp()
atom_site.get_translations()
atom_site.load_dict()
atom_site.perturbate()
atom_site.save_dict()
atom_site.search_position()
atom_site.shift_by_swap()
atom_site.substitute_with_linear()
atom_site.substitute_with_single()
atom_site.swap_axis()
atom_site.to_mol_site()
atom_site.update()
mol_site
mol_site.encode()
mol_site.from_1D_dicts()
mol_site.get_coords_and_species()
mol_site.get_distances()
mol_site.get_dists_WP()
mol_site.get_dists_auto()
mol_site.get_ijk_lists()
mol_site.get_min_dist()
mol_site.get_mol_object()
mol_site.get_neighbors_auto()
mol_site.get_neighbors_wp2()
mol_site.is_valid_orientation()
mol_site.load_dict()
mol_site.perturbate()
mol_site.rotate()
mol_site.save_dict()
mol_site.short_dist()
mol_site.short_dist_with_wp2()
mol_site.show()
mol_site.show_molecule_in_box()
mol_site.to_1D_dicts()
mol_site.to_atom_site()
mol_site.translate()
mol_site.update()
mol_site.update_lattice()
mol_site.update_molecule()
mol_site.update_orientation()
- pyxtal.wyckoff_split module
- pyxtal.XRD module