diff --git a/.gitignore b/.gitignore index 86ba101..ad49ab0 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.pyc *.egg-info *.egg +*scratch* # PyPI-specific dirs dist/ @@ -8,7 +9,9 @@ build/ dist-old/ # test stuff -*.log +*.log* +/tests/*.out* +/tests/*.err* /tests/__pycache__/ /tests/*/__pycache__/ -/tests/output/ +/tests/output*/ diff --git a/kim_tools/aflow_util/core.py b/kim_tools/aflow_util/core.py index 439bc36..707dc18 100644 --- a/kim_tools/aflow_util/core.py +++ b/kim_tools/aflow_util/core.py @@ -17,7 +17,8 @@ from sympy import parse_expr,matrix2numpy,linear_eq_to_matrix,Symbol from dataclasses import dataclass from ..symmetry_util import are_in_same_wyckoff_set, space_group_numbers_are_enantiomorphic, \ - WYCK_POS_XFORM_UNDER_NORMALIZER, WYCKOFF_MULTIPLICITIES, CENTERING_DIVISORS, C_CENTERED_ORTHORHOMBIC_GROUPS, A_CENTERED_ORTHORHOMBIC_GROUPS + WYCK_POS_XFORM_UNDER_NORMALIZER, WYCKOFF_MULTIPLICITIES, CENTERING_DIVISORS, C_CENTERED_ORTHORHOMBIC_GROUPS, A_CENTERED_ORTHORHOMBIC_GROUPS, \ + POSSIBLE_PRIMITIVE_SHIFTS from operator import attrgetter from math import cos, acos, sqrt, radians, degrees import logging @@ -53,6 +54,14 @@ "AFLOW" ] +CENTROSYMMETRIC_SPACE_GROUPS_WITH_MORE_THAN_ONE_SETTING = ( + 48 , 50 , 59 , 68 , 70 , + 85 , 86 , 88 , 125 , 126 , + 129 , 130 , 133 , 134 , 137 , + 138 , 141 , 142 , 201 , 203 , + 222 , 224 , 227 , 228) + + class incorrectNumAtomsException(Exception): """ Raised when the number of atoms in the atoms object or in the WYCCAR returned by aflow --sgdata does not match the number of atoms in the Pearson symbol of the prototype label @@ -1200,7 +1209,6 @@ def solve_for_prototype_params(self, atoms: Atoms, equation_set_list: List[Equiv if not prototype_labels_are_equivalent(prototype_label,prototype_label_detected): logger.info(f'Redetected prototype label {prototype_label_detected} does not match nominal {prototype_label}, probably due to rounding.') - return None # I believe we want the negative of the origin shift from atoms_rebuilt to atoms, because # the origin shift is the last operation to happen, so it will be in the "atoms" frame @@ -1215,18 +1223,15 @@ def solve_for_prototype_params(self, atoms: Atoms, equation_set_list: List[Equiv # to a high-symmetry origin first atoms_shifted = atoms.copy() atoms_shifted.translate(-origin_shift) - logger.info(f'Shifting atoms by an initial shift {-origin_shift}') + logger.info(f'Shifting atoms by an initial cartesian shift {-origin_shift}') - # It's possible that the mapping between the rebuilt cell and the original cell included an internal translation. - # So we have to search over all of these as well to ensure the original equations match - internal_cartesian_translations = self.get_unique_internal_cartesian_translations_from_atoms(atoms_shifted) + space_group_number = get_space_group_number_from_prototype(prototype_label) - for internal_translation in internal_cartesian_translations: - + for prim_shift in POSSIBLE_PRIMITIVE_SHIFTS[space_group_number]: atoms_shifted = atoms.copy() atoms_shifted.translate(-origin_shift) - atoms_shifted.translate(internal_translation) - logger.info(f'Shifting atoms by internal translation {internal_translation}') + atoms_shifted.translate(prim_shift@atoms_shifted.cell) + logger.info(f'Shifting atoms by internal fractional translation {prim_shift}') atoms_shifted.wrap() @@ -1235,7 +1240,6 @@ def solve_for_prototype_params(self, atoms: Atoms, equation_set_list: List[Equiv if len(position_set_list) != len(equation_set_list): raise inconsistentWyckoffException('Number of equivalent positions detected in Atoms object did not match the number of equivalent equations given') - space_group_number = get_space_group_number_from_prototype(prototype_label) free_params_dict = {} position_set_matched_list = [False]*len(position_set_list) diff --git a/kim_tools/symmetry_util/core.py b/kim_tools/symmetry_util/core.py index d12e5cc..9f73b56 100644 --- a/kim_tools/symmetry_util/core.py +++ b/kim_tools/symmetry_util/core.py @@ -3,7 +3,7 @@ """ from numpy.typing import ArrayLike -from typing import Optional,List +from typing import Optional,List,Union import logging import numpy as np from ase.atoms import Atoms @@ -25,7 +25,11 @@ "CENTERING_DIVISORS", "C_CENTERED_ORTHORHOMBIC_GROUPS", "A_CENTERED_ORTHORHOMBIC_GROUPS", - "WYCK_POS_XFORM_UNDER_NORMALIZER" + "WYCK_POS_XFORM_UNDER_NORMALIZER", + "SPACE_GROUPS_FOR_EACH_PEARSON", + "get_pearson_from_space_group", + "get_formal_pearson_from_space_group", + "POSSIBLE_PRIMITIVE_SHIFTS" ] C_CENTERED_ORTHORHOMBIC_GROUPS = (20,21,35,36,37,63,64,65,66,67,68) @@ -441,7 +445,6 @@ def space_group_numbers_are_enantiomorphic(sg_1: int, sg_2: int) -> bool: return True else: return False - WYCKOFF_MULTIPLICITIES = { 1: { @@ -3990,3 +3993,2136 @@ def space_group_numbers_are_enantiomorphic(sg_1: int, sg_2: int) -> bool: ["a", "b", "c", "d", "e", "f", "g", "h"] ] } + +SPACE_GROUPS_FOR_EACH_PEARSON = { + "aP":[1,2], + "mP":[3,4,6,7,10,11,13,14], + "mC":[5,8,9,12,15], + "oP":[6,17,18,19,25,26,27,28,29,30,31,32,33,34,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62], + "oC":[20,21,35,36,37,38,39,40,41,63,64,65,66,67,68], + "oI":[23,24,44,45,46,71,72,73,74], + "oF":[22,42,43,69,70], + "tP":[75,76,77,78,81,83,84,85,86,89,90,91,92,93,94,95,96,99,100,101,102,103,104,105,106,111,112,113,114,115,116,117,118,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138], + "tI":[79,80,82,87,88,97,98,107,108,109,110,119,120,121,122,139,140,141,142], + "hP":[143,144,145,147,149,150,151,152,153,154,156,157,158,159,162,163,164,165,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194], + "hR":[146,148,155,160,161,166,167], + "cP":[195,198,200,201,205,207,208,212,213,215,218,221,222,223,224], + "cF":[196,202,203,209,210,216,219,225,226,227,228], + "cI":[197,199,204,206,211,214,217,220,229,230] +} + +def get_pearson_from_space_group(sgnum:Union[int,str]): + for pearson in SPACE_GROUPS_FOR_EACH_PEARSON: + if int(sgnum) in SPACE_GROUPS_FOR_EACH_PEARSON[pearson]: + return pearson + +def get_formal_pearson_from_space_group(sgnum:Union[int,str]): + """ + same as above, except distinguish between "oA" and "oC" + """ + pearson = get_pearson_from_space_group(sgnum) + if pearson == "oC": + if sgnum in A_CENTERED_ORTHORHOMBIC_GROUPS: + return "oA" + return pearson + +POSSIBLE_PRIMITIVE_SHIFTS = { + 1: [ + [0,0,0] + ], + 2: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 3: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + 4: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 5: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 6: [ + [0,0,0], + [0,0.5,0] + ], + 7: [ + [0,0,0], + [0,0.5,0], + [0,0,0.5], + [0,0.5,0.5] + ], + 8: [ + [0,0,0], + [0.5,0.5,0] + ], + 9: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 10: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 11: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 12: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + 13: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 14: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 15: [ + [0,0,0], + [0,0,0.5], + [0.25,0.25,0], + [0.25,0.25,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.75,0.25,0], + [0.75,0.25,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.75,0], + [0.75,0.75,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.75,0], + [0.25,0.75,0.5] + ], + 16: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 17: [ + [0,0,0], + [0,0,0.25], + [0,0,0.5], + [0,0,0.75], + [0,0.5,0], + [0,0.5,0.25], + [0,0.5,0.5], + [0,0.5,0.75], + [0.5,0,0], + [0.5,0,0.25], + [0.5,0,0.5], + [0.5,0,0.75], + [0.5,0.5,0], + [0.5,0.5,0.25], + [0.5,0.5,0.5], + [0.5,0.5,0.75] + ], + 18: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 19: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + 20: [ + [0,0,0], + [0,0,0.25], + [0,0,0.5], + [0,0,0.75], + [0.5,0,0], + [0.5,0,0.25], + [0.5,0,0.5], + [0.5,0,0.75], + [0.5,0.5,0], + [0.5,0.5,0.25], + [0.5,0.5,0.5], + [0.5,0.5,0.75], + [0,0.5,0], + [0,0.5,0.25], + [0,0.5,0.5], + [0,0.5,0.75] + ], + 21: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + 22: [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0,0.5], + [0.25,0.25,0.75] + ], + 23: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0,0.5], + [0,0.5,0.5], + [0,0,0.5] + ], + 24: [ + [0,0,0], + [0,0.5,0], + [0.25,0.25,0.25], + [0.25,0.75,0.25], + [0.5,0,0], + [0.5,0.5,0], + [0.75,0.25,0.25], + [0.75,0.75,0.25], + [0,0,0.5], + [0,0.5,0.5], + [0.25,0.25,0.75], + [0.25,0.75,0.75], + [0.5,0,0.5], + [0.5,0.5,0.5], + [0.75,0.25,0.75], + [0.75,0.75,0.75] + ], + 25: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + 26: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + 27: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + 28: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + 29: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + 30: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0.5,0.5], + [0,0,0.5], + [0.5,0.5,0.5], + [0.5,0,0.5] + ], + 31: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0.5,0,0.5], + [0.5,0.5,0.5], + [0,0,0.5], + [0,0.5,0.5] + ], + 32: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + 33: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + 34: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0,0.5], + [0,0.5,0.5], + [0,0,0.5] + ], + 35: [ + [0,0,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0.5,0] + ], + 36: [ + [0,0,0], + [0.5,0,0], + [0,0,0.5], + [0.5,0,0.5], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + 37: [ + [0,0,0], + [0.5,0,0], + [0,0,0.5], + [0.5,0,0.5], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + 38: [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.5], + [0.5,0.5,0.5] + ], + 39: [ + [0,0,0], + [0.5,0,0], + [0,0,0.5], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0.5,0.5], + [0.5,0.5,0.5] + ], + 40: [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.5], + [0.5,0.5,0.5] + ], + 41: [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.5], + [0.5,0.5,0.5], + [0.5,0,0.5], + [0,0,0.5], + [0.5,0.5,0], + [0,0.5,0] + ], + 42: [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + 43: [ + [0,0,0], + [0.25,0.25,0], + [0,0.5,0.5], + [0.25,0.75,0.5], + [0.25,0.25,0.25], + [0.5,0.5,0.25], + [0.25,0.75,0.75], + [0.5,0,0.75], + [0.5,0,0.5], + [0.75,0.25,0.5], + [0.5,0.5,0], + [0.75,0.75,0], + [0.75,0.25,0.75], + [0,0.5,0.75], + [0.75,0.75,0.25], + [0,0,0.25] + ], + 44: [ + [0,0,0], + [0.5,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + 45: [ + [0,0,0], + [0.5,0,0], + [0,0,0.5], + [0.5,0,0.5], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + 46: [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.5], + [0.5,0.5,0.5] + ], + 47: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 48: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 49: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 50: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 51: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 52: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 53: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 54: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 55: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 56: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 57: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 58: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 59: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 60: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 61: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 62: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 63: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + 64: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0.5], + [0,0.5,0], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + 65: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + 66: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + 67: [ + [0,0,0], + [0,0,0.5], + [0.25,0.75,0], + [0.25,0.75,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.75,0.75,0], + [0.75,0.75,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0], + [0.25,0.25,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0], + [0.75,0.25,0.5] + ], + 68: [ + [0,0,0], + [0,0,0.5], + [0.25,0.75,0], + [0.25,0.75,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.75,0.75,0], + [0.75,0.75,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0], + [0.25,0.25,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0], + [0.75,0.25,0.5] + ], + 69: [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.5], + [0.5,0.5,0.5], + [0.5,0,0.5], + [0,0,0.5], + [0.5,0.5,0], + [0,0.5,0] + ], + 70: [ + [0,0,0], + [0.5,0,0], + [0,0.25,0.25], + [0.5,0.25,0.25], + [0,0.5,0.5], + [0.5,0.5,0.5], + [0,0.75,0.75], + [0.5,0.75,0.75], + [0.25,0,0.25], + [0.75,0,0.25], + [0.25,0.25,0], + [0.75,0.25,0], + [0.25,0.5,0.75], + [0.75,0.5,0.75], + [0.25,0.75,0.5], + [0.75,0.75,0.5], + [0.5,0,0.5], + [0,0,0.5], + [0.5,0.25,0.75], + [0,0.25,0.75], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0.75,0.25], + [0,0.75,0.25], + [0.75,0,0.75], + [0.25,0,0.75], + [0.75,0.25,0.5], + [0.25,0.25,0.5], + [0.75,0.5,0.25], + [0.25,0.5,0.25], + [0.75,0.75,0], + [0.25,0.75,0] + ], + 71: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0,0.5], + [0,0.5,0.5], + [0,0,0.5] + ], + 72: [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + 73: [ + [0,0,0], + [0,0.5,0], + [0.25,0.25,0.25], + [0.25,0.75,0.25], + [0.5,0,0], + [0.5,0.5,0], + [0.75,0.25,0.25], + [0.75,0.75,0.25], + [0,0,0.5], + [0,0.5,0.5], + [0.25,0.25,0.75], + [0.25,0.75,0.75], + [0.5,0,0.5], + [0.5,0.5,0.5], + [0.75,0.25,0.75], + [0.75,0.75,0.75] + ], + 74: [ + [0,0,0], + [0,0.5,0], + [0.25,0.75,0.25], + [0.25,0.25,0.25], + [0.5,0,0], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0.75,0.25,0.75], + [0,0,0.5], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.25,0.25,0.75] + ], + 75: [ + [0,0,0], + [0.5,0.5,0] + ], + 76: [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.25], + [0.5,0.5,0.25], + [0,0,0.5], + [0.5,0.5,0.5], + [0,0,0.75], + [0.5,0.5,0.75] + ], + 77: [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.5,0.5] + ], + 78: [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.25], + [0.5,0.5,0.25], + [0,0,0.5], + [0.5,0.5,0.5], + [0,0,0.75], + [0.5,0.5,0.75] + ], + 79: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 80: [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.25], + [0.5,0.5,0.25], + [0.5,0,0.75], + [0,0,0.75], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + 81: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 82: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0.25], + [0.5,0,0.75], + [0.5,0.5,0.5], + [0.5,0.5,0], + [0,0.5,0.75], + [0,0.5,0.25] + ], + 83: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 84: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 85: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + 86: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0,0.5,0], + [0.5,0,0.5], + [0.5,0,0] + ], + 87: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + 88: [ + [0,0,0], + [0,0,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0.5,0.5], + [0.5,0.5,0], + [0.5,0,0], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0.75,0.25,0.25], + [0.75,0.75,0.75], + [0.75,0.75,0.25] + ], + 89: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 90: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 91: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0,0.25], + [0,0,0.75], + [0.5,0.5,0.25], + [0.5,0.5,0.75] + ], + 92: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0.5,0.25], + [0.5,0.5,0.75], + [0,0,0.25], + [0,0,0.75] + ], + 93: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 94: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 95: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0,0.25], + [0,0,0.75], + [0.5,0.5,0.25], + [0.5,0.5,0.75] + ], + 96: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0.5,0.25], + [0.5,0.5,0.75], + [0,0,0.25], + [0,0,0.75] + ], + 97: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + 98: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0.25], + [0.5,0,0.75], + [0,0.5,0.25], + [0,0.5,0.75], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + 99: [ + [0,0,0], + [0.5,0.5,0] + ], + 100: [ + [0,0,0], + [0.5,0.5,0] + ], + 101: [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.5,0.5] + ], + 102: [ + [0,0,0], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0,0.5] + ], + 103: [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.5,0.5] + ], + 104: [ + [0,0,0], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0,0.5] + ], + 105: [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.5,0.5] + ], + 106: [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.5,0.5] + ], + 107: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 108: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 109: [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.25], + [0.5,0.5,0.25], + [0.5,0,0.75], + [0,0,0.75], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + 110: [ + [0,0,0], + [0.5,0,0], + [0,0,0.5], + [0.5,0,0.5], + [0,0.5,0.25], + [0.5,0.5,0.25], + [0,0.5,0.75], + [0.5,0.5,0.75], + [0.5,0,0.25], + [0,0,0.25], + [0.5,0,0.75], + [0,0,0.75], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + 111: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 112: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 113: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 114: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 115: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 116: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 117: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 118: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 119: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0.25], + [0.5,0,0.75], + [0.5,0.5,0.5], + [0.5,0.5,0], + [0,0.5,0.75], + [0,0.5,0.25] + ], + 120: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0.25], + [0.5,0,0.75], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.25], + [0,0.5,0.75] + ], + 121: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + 122: [ + [0,0,0], + [0,0,0.5], + [0.5,0,0.25], + [0.5,0,0.75], + [0,0.5,0.25], + [0,0.5,0.75], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + 123: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 124: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 125: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + 126: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + 127: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 128: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 129: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + 130: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + 131: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 132: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 133: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + 134: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0,0.5,0], + [0.5,0,0.5], + [0.5,0,0] + ], + 135: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 136: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 137: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + 138: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0,0.5,0], + [0.5,0,0.5], + [0.5,0,0] + ], + 139: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + 140: [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + 141: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.75], + [0.25,0.25,0.25], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0.5], + [0.5,0,0], + [0.5,0.5,0.5], + [0.5,0.5,0], + [0.75,0.25,0.75], + [0.75,0.25,0.25], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + 142: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + 143: [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0], + [0.6666666666666666,0.3333333333333333,0] + ], + 144: [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0], + [0.6666666666666666,0.3333333333333333,0], + [0,0,0.3333333333333333], + [0.3333333333333333,0.6666666666666666,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0,0,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.6666666666666666] + ], + 145: [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0], + [0.6666666666666666,0.3333333333333333,0], + [0,0,0.3333333333333333], + [0.3333333333333333,0.6666666666666666,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0,0,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.6666666666666666] + ], + 146: [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333] + ], + 147: [ + [0,0,0], + [0,0,0.5] + ], + 148: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.16666666666666652], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333] + ], + 149: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5] + ], + 150: [ + [0,0,0], + [0,0,0.5] + ], + 151: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0.3333333333333333,0.6666666666666666,0.3333333333333333], + [0.3333333333333333,0.6666666666666666,0.8333333333333333], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.16666666666666652], + [0.6666666666666666,0.3333333333333333,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.16666666666666652] + ], + 152: [ + [0,0,0], + [0,0,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652] + ], + 153: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0.3333333333333333,0.6666666666666666,0.3333333333333333], + [0.3333333333333333,0.6666666666666666,0.8333333333333333], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.16666666666666652], + [0.6666666666666666,0.3333333333333333,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.16666666666666652] + ], + 154: [ + [0,0,0], + [0,0,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652] + ], + 155: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.16666666666666652], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333] + ], + 156: [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0], + [0.6666666666666666,0.3333333333333333,0] + ], + 157: [ + [0,0,0] + ], + 158: [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0], + [0.6666666666666666,0.3333333333333333,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0.5] + ], + 159: [ + [0,0,0], + [0,0,0.5] + ], + 160: [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333] + ], + 161: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.16666666666666666], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333334] + ], + 162: [ + [0,0,0], + [0,0,0.5] + ], + 163: [ + [0,0,0], + [0,0,0.5] + ], + 164: [ + [0,0,0], + [0,0,0.5] + ], + 165: [ + [0,0,0], + [0,0,0.5] + ], + 166: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.16666666666666652], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333] + ], + 167: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.16666666666666666], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333] + ], + 168: [ + [0,0,0] + ], + 169: [ + [0,0,0], + [0,0,0.16666666666666666], + [0,0,0.3333333333333333], + [0,0,0.5], + [0,0,0.6666666666666666], + [0,0,0.8333333333333334] + ], + 170: [ + [0,0,0], + [0,0,0.16666666666666666], + [0,0,0.3333333333333333], + [0,0,0.5], + [0,0,0.6666666666666666], + [0,0,0.8333333333333334] + ], + 171: [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + 172: [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + 173: [ + [0,0,0], + [0,0,0.5] + ], + 174: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5] + ], + 175: [ + [0,0,0], + [0,0,0.5] + ], + 176: [ + [0,0,0], + [0,0,0.5] + ], + 177: [ + [0,0,0], + [0,0,0.5] + ], + 178: [ + [0,0,0], + [0,0,0.5], + [0,0,0.16666666666666666], + [0,0,0.6666666666666666], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333] + ], + 179: [ + [0,0,0], + [0,0,0.5], + [0,0,0.16666666666666666], + [0,0,0.6666666666666666], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333] + ], + 180: [ + [0,0,0], + [0,0,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652] + ], + 181: [ + [0,0,0], + [0,0,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652] + ], + 182: [ + [0,0,0], + [0,0,0.5] + ], + 183: [ + [0,0,0] + ], + 184: [ + [0,0,0], + [0,0,0.5] + ], + 185: [ + [0,0,0], + [0,0,0.5] + ], + 186: [ + [0,0,0], + [0,0,0.5] + ], + 187: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5] + ], + 188: [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5] + ], + 189: [ + [0,0,0], + [0,0,0.5] + ], + 190: [ + [0,0,0], + [0,0,0.5] + ], + 191: [ + [0,0,0], + [0,0,0.5] + ], + 192: [ + [0,0,0], + [0,0,0.5] + ], + 193: [ + [0,0,0], + [0,0,0.5] + ], + 194: [ + [0,0,0], + [0,0,0.5] + ], + 195: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 196: [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0,0.5], + [0.25,0.25,0.75] + ], + 197: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 198: [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0,0.5], + [0.25,0.25,0.75] + ], + 199: [ + [0,0,0], + [0.25,0.25,0.25], + [0,0,0.5], + [0.25,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75] + ], + 200: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 201: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + 202: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + 203: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.25,0.25], + [0.5,0.75,0.75], + [0,0.5,0.5], + [0.5,0,0], + [0,0.75,0.75], + [0.5,0.25,0.25], + [0.25,0,0.25], + [0.75,0.5,0.75], + [0.25,0.25,0], + [0.75,0.75,0.5], + [0.25,0.5,0.75], + [0.75,0,0.25], + [0.25,0.75,0.5], + [0.75,0.25,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.25,0.75], + [0,0.75,0.25], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.75,0.25], + [0,0.25,0.75], + [0.75,0,0.75], + [0.25,0.5,0.25], + [0.75,0.25,0.5], + [0.25,0.75,0], + [0.75,0.5,0.25], + [0.25,0,0.75], + [0.75,0.75,0], + [0.25,0.25,0.5] + ], + 204: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 205: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + 206: [ + [0,0,0], + [0.25,0.25,0.25], + [0,0,0.5], + [0.25,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75] + ], + 207: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 208: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 209: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + 210: [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0,0.5], + [0.25,0.25,0.75] + ], + 211: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 212: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.25,0.25,0.25], + [0.75,0.75,0.75], + [0.25,0.75,0.75], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5], + [0.75,0.25,0.75], + [0.25,0.75,0.25], + [0.75,0.75,0.25], + [0.25,0.25,0.75] + ], + 213: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.25,0.25,0.75], + [0.75,0.75,0.25], + [0.25,0.75,0.25], + [0.75,0.25,0.75], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5], + [0.75,0.25,0.25], + [0.25,0.75,0.75], + [0.75,0.75,0.75], + [0.25,0.25,0.25] + ], + 214: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + 215: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 216: [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0,0.5], + [0.25,0.25,0.75] + ], + 217: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 218: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 219: [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0,0.5], + [0.25,0.25,0.75], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25] + ], + 220: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + 221: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 222: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0,0.5], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0,0.5], + [0,0.5,0.5], + [0.5,0,0] + ], + 223: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 224: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + 225: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + 226: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0,0.5], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0,0.5], + [0,0.5,0.5], + [0.5,0,0] + ], + 227: [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.25,0.25], + [0.5,0.75,0.75], + [0,0.5,0.5], + [0.5,0,0], + [0,0.75,0.75], + [0.5,0.25,0.25], + [0.25,0,0.25], + [0.75,0.5,0.75], + [0.25,0.25,0], + [0.75,0.75,0.5], + [0.25,0.5,0.75], + [0.75,0,0.25], + [0.25,0.75,0.5], + [0.75,0.25,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.25,0.75], + [0,0.75,0.25], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.75,0.25], + [0,0.25,0.75], + [0.75,0,0.75], + [0.25,0.5,0.25], + [0.75,0.25,0.5], + [0.25,0.75,0], + [0.75,0.5,0.25], + [0.25,0,0.75], + [0.75,0.75,0], + [0.25,0.25,0.5] + ], + 228: [ + [0,0,0], + [0,0,0.5], + [0,0.25,0.25], + [0,0.25,0.75], + [0,0.5,0], + [0,0.5,0.5], + [0,0.75,0.25], + [0,0.75,0.75], + [0.25,0,0.25], + [0.25,0,0.75], + [0.25,0.25,0], + [0.25,0.25,0.5], + [0.25,0.5,0.25], + [0.25,0.5,0.75], + [0.25,0.75,0], + [0.25,0.75,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.25,0.25], + [0.5,0.25,0.75], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0.75,0.25], + [0.5,0.75,0.75], + [0.75,0,0.25], + [0.75,0,0.75], + [0.75,0.25,0], + [0.75,0.25,0.5], + [0.75,0.5,0.25], + [0.75,0.5,0.75], + [0.75,0.75,0], + [0.75,0.75,0.5] + ], + 229: [ + [0,0,0], + [0.5,0.5,0.5] + ], + 230: [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ] +} diff --git a/kim_tools/test_driver/core.py b/kim_tools/test_driver/core.py index 342f9c1..e90a24d 100644 --- a/kim_tools/test_driver/core.py +++ b/kim_tools/test_driver/core.py @@ -82,7 +82,7 @@ '- $PWD/local_props/**/') def minimize_wrapper(supercell:Atoms, fmax:float=1e-5, steps:int=10000, \ - variable_cell:bool=True, logfile:Optional[Union[str,IO]]='-', + variable_cell:bool=True, logfile:Optional[Union[str,IO]]='kim-tools.log', algorithm: Optimizer = LBFGSLineSearch, CellFilter: UnitCellFilter = ExpCellFilter, fix_symmetry: bool = False, @@ -145,25 +145,22 @@ def minimize_wrapper(supercell:Atoms, fmax:float=1e-5, steps:int=10000, \ except Exception as e: minimization_stalled = True iteration_limits_reached = False - print() - print("The following exception was caught during minimization:") - print(repr(e)) - print() + logger.info("The following exception was caught during minimization:") + logger.info(repr(e)) - print("Minimization "+ + logger.info("Minimization "+ ("stalled" if minimization_stalled else "stopped" if iteration_limits_reached else "converged")+ " after "+ (("hitting the maximum of "+str(steps)) if iteration_limits_reached else str(opt.nsteps))+ " steps.") if minimization_stalled or iteration_limits_reached: - print() - print("Final forces:") - print(supercell.get_forces()) - print() - print("Final stress:") - print(supercell.get_stress()) - print() + logger.info("Final forces:") + logger.info(supercell.get_forces()) + logger.info("Final stress:") + logger.info(supercell.get_stress()) + + del supercell.constraints ################################################################################ class KIMTestDriverError(Exception): diff --git a/scripts/data_generation.ipynb b/scripts/data_generation.ipynb new file mode 100644 index 0000000..766cfee --- /dev/null +++ b/scripts/data_generation.ipynb @@ -0,0 +1,297 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The default settings in Bilbac ccincide with the 'aflow' settings, except for Bilbao = hex, aflow = rhomb" + ] + }, + { + "cell_type": "code", + "execution_count": 34, + "metadata": {}, + "outputs": [], + "source": [ + "# Scrape the unique translation vectors found in the general positions\n", + "\n", + "\n", + "import requests\n", + "import html2text\n", + "from sympy import parse_expr,symbols\n", + "import json\n", + "x,y,z,r,s,t = symbols(\"x y z r s t\")\n", + "\n", + "translation_parts={}\n", + "\n", + "for i in range(230):\n", + " unique_translations = set()\n", + " sgnum = i+1 \n", + " data = html2text.html2text(requests.get(f\"https://www.cryst.ehu.es/cgi-bin/cryst/programs/nph-getgen?what=text&gnum={sgnum}\").text)\n", + " for line in data.splitlines():\n", + " line_split = line.split()\n", + " try:\n", + " assert(str(int(line_split[0])) == line_split[0])\n", + " except Exception as e:\n", + " continue\n", + " operations = [parse_expr(coord) for coord in line_split[1].split(',')]\n", + " translations = [float(op.evalf(subs={x: 0, y: 0, z: 0, r: 0, s: 0, t: 0})) for op in operations]\n", + " unique_translations.add(tuple(translations))\n", + " translation_parts[sgnum] = sorted(list(unique_translations))\n", + " \n", + "with open('translation_parts.json','w') as f:\n", + " json.dump(translation_parts,f)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Scrape the unique translation vectors found in the coset representatives of the space group in its normalizer\n", + "\n", + "import pandas as pd\n", + "from sympy import parse_expr,symbols\n", + "import json\n", + "x,y,z,r,s,t = symbols(\"x y z r s t\")\n", + "\n", + "translation_parts={}\n", + "\n", + "for i in range(227):\n", + " unique_translations = set()\n", + " sgnum = i+1 \n", + " data = pd.read_html(f\"https://www.cryst.ehu.es/cgi-bin/cryst/programs/nph-normsets?from=wycksets&gnum={sgnum}\",match=\"Coset Representative\",encoding='utf8')\n", + " for frame in data:\n", + " for datum in frame[\"Coset Representative\"]:\n", + " operations = [parse_expr(coord) for coord in datum.split(',')]\n", + " translations = [op.evalf(subs={x: 0, y: 0, z: 0, r: 0, s: 0, t: 0}) for op in operations]\n", + " unique_translations.add(tuple(translations))\n", + " translation_parts[sgnum] = sorted(list(unique_translations))\n", + " \n", + "for sgnum in translation_parts:\n", + " for i,translation in enumerate(translation_parts[sgnum]):\n", + " for j,component in enumerate(translation_parts[sgnum][i]):\n", + " translation_parts[sgnum][i][j] = float(translation_parts[sgnum][i][j])\n", + " \n", + "with open('translation_coset_representatives.json','w') as f:\n", + " json.dump(translation_parts,f)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 41, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from sympy import symbols, cos, sin, Matrix, matrix2numpy, sqrt\n", + "a,b,c,alpha,beta,gamma = symbols('a b c alpha beta gamma')\n", + "import json\n", + "\n", + "# using row vectors\n", + "primitivize_fractional_vector = {}\n", + "\n", + "# mP\n", + "mP_cell = Matrix([\n", + " [a,0,0],\n", + " [0,b,0],\n", + " [c*cos(beta),0,c*sin(beta)]\n", + " ])\n", + "\n", + "# mC\n", + "mC_cell = Matrix([\n", + " [a/2,-b/2,0],\n", + " [a/2,b/2,0],\n", + " [c*cos(beta),0,c*sin(beta)]\n", + "])\n", + "\n", + "primitivize_fractional_vector[\"mC\"] = matrix2numpy(mP_cell@(mC_cell**-1),dtype=float).tolist()\n", + "\n", + "# oP\n", + "oP_cell = Matrix([\n", + " [a,0,0],\n", + " [0,b,0],\n", + " [0,0,c],\n", + "])\n", + "\n", + "# oC\n", + "oC_cell = Matrix([\n", + " [a/2,-b/2,0],\n", + " [a/2,b/2,0],\n", + " [0,0,c]\n", + "])\n", + "\n", + "primitivize_fractional_vector[\"oC\"] = matrix2numpy(oP_cell@(oC_cell**-1),dtype=float).tolist()\n", + "\n", + "# oA\n", + "oA_cell = Matrix([\n", + " [a,0,0],\n", + " [0,b/2,-c/2],\n", + " [0,b/2,c/2]\n", + "])\n", + "\n", + "primitivize_fractional_vector[\"oA\"] = matrix2numpy(oP_cell@(oA_cell**-1),dtype=float).tolist()\n", + "\n", + "# oI\n", + "oI_cell = Matrix([\n", + " [-a/2,b/2,c/2],\n", + " [a/2,-b/2,c/2],\n", + " [a/2,b/2,-c/2]\n", + "])\n", + "\n", + "primitivize_fractional_vector[\"oI\"] = matrix2numpy(oP_cell@(oI_cell**-1),dtype=float).tolist()\n", + "\n", + "# oF\n", + "oF_cell = Matrix([\n", + " [0,b/2,c/2],\n", + " [a/2,0,c/2],\n", + " [a/2,b/2,0]\n", + "])\n", + "\n", + "primitivize_fractional_vector[\"oF\"] = matrix2numpy(oP_cell@(oF_cell**-1),dtype=float).tolist()\n", + "\n", + "# tP\n", + "tP_cell = Matrix([\n", + " [a,0,0],\n", + " [0,a,0],\n", + " [0,0,c]\n", + "])\n", + "\n", + "# tI\n", + "tI_cell = Matrix([\n", + " [-a/2,a/2,c/2],\n", + " [a/2,-a/2,c/2],\n", + " [a/2,a/2,-c/2]\n", + "])\n", + "\n", + "primitivize_fractional_vector[\"tI\"] = matrix2numpy(tP_cell@(tI_cell**-1),dtype=float).tolist()\n", + "\n", + "# hP\n", + "hP_cell = Matrix([\n", + " [a/2,-sqrt(3)*a/2,0],\n", + " [a/2,sqrt(3)*a/2,0],\n", + " [0,0,c]\n", + "])\n", + "\n", + "# hR\n", + "hR_cell = Matrix([\n", + " [a/2,-a/(2*sqrt(3)),c/3],\n", + " [0,a/sqrt(3),c/3],\n", + " [-a/2,-a/(2*sqrt(3)),c/3],\n", + "])\n", + "\n", + "primitivize_fractional_vector[\"hR\"] = matrix2numpy(hP_cell@(hR_cell**-1),dtype=float).tolist()\n", + "\n", + "# cP\n", + "cP_cell = Matrix([\n", + " [a,0,0],\n", + " [0,a,0],\n", + " [0,0,a],\n", + "])\n", + "\n", + "# cI\n", + "cI_cell = Matrix([\n", + " [-a/2,a/2,a/2],\n", + " [a/2,-a/2,a/2],\n", + " [a/2,a/2,-a/2]\n", + "])\n", + "\n", + "primitivize_fractional_vector[\"cI\"] = matrix2numpy(cP_cell@(cI_cell**-1),dtype=float).tolist()\n", + "\n", + "# cF\n", + "cF_cell = Matrix([\n", + " [0,a/2,a/2],\n", + " [a/2,0,a/2],\n", + " [a/2,a/2,0]\n", + "])\n", + "\n", + "primitivize_fractional_vector[\"cF\"] = matrix2numpy(cP_cell@(cF_cell**-1),dtype=float).tolist()\n", + "\n", + "with open(\"primitivize_fractional_vector.json\",\"w\") as f:\n", + " json.dump(primitivize_fractional_vector,f)" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "import json\n", + "from kim_tools import get_formal_pearson_from_space_group\n", + "import numpy as np\n", + "\n", + "with open(\"primitivize_fractional_vector.json\") as f:\n", + " primitivize_fractional_vector = json.load(f)\n", + "with open(\"translation_parts.json\") as f:\n", + " translation_parts = json.load(f)\n", + "with open(\"translation_coset_representatives.json\") as f:\n", + " translation_coset_representatives = json.load(f)\n", + " \n", + "possible_primitive_shifts = {}\n", + "\n", + "for i in range(230):\n", + " sgnum = str(i+1)\n", + " possible_primitive_shifts_for_this_sg = []\n", + " translation_parts_for_this_sg = translation_parts[sgnum]\n", + " translation_coset_representatives_for_this_sg = translation_coset_representatives[sgnum]\n", + " formal_pearson = get_formal_pearson_from_space_group(sgnum)\n", + " # primitive cells aren't in the dict\n", + " if formal_pearson in primitivize_fractional_vector:\n", + " prim_matrix = np.asarray(primitivize_fractional_vector[formal_pearson])\n", + " else:\n", + " prim_matrix = np.eye(3) #just so it's homogeneous at this point, since the above is a list\n", + " \n", + " for translation_part in translation_parts_for_this_sg:\n", + " translation_part_prim = translation_part@prim_matrix\n", + " for coset_rep in translation_coset_representatives_for_this_sg:\n", + " coset_rep_prim = coset_rep@prim_matrix\n", + " primitive_shift = translation_part_prim+coset_rep_prim\n", + " primitive_shift = [component%1 for component in primitive_shift]\n", + " already_exists = False\n", + " for existing_prim_shift in possible_primitive_shifts_for_this_sg:\n", + " if np.allclose(primitive_shift,existing_prim_shift):\n", + " already_exists = True\n", + " break\n", + " if already_exists:\n", + " continue\n", + " else:\n", + " possible_primitive_shifts_for_this_sg.append(primitive_shift)\n", + " possible_primitive_shifts[sgnum] = possible_primitive_shifts_for_this_sg\n", + "\n", + "with open(\"possible_primitive_shifts.json\",\"w\") as f:\n", + " json.dump(possible_primitive_shifts,f)\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.12" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/scripts/possible_primitive_shifts.json b/scripts/possible_primitive_shifts.json new file mode 100644 index 0000000..21b2593 --- /dev/null +++ b/scripts/possible_primitive_shifts.json @@ -0,0 +1,2100 @@ +{ + "1": [ + [0,0,0] + ], + "2": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "3": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + "4": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "5": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "6": [ + [0,0,0], + [0,0.5,0] + ], + "7": [ + [0,0,0], + [0,0.5,0], + [0,0,0.5], + [0,0.5,0.5] + ], + "8": [ + [0,0,0], + [0.5,0.5,0] + ], + "9": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "10": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "11": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "12": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + "13": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "14": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "15": [ + [0,0,0], + [0,0,0.5], + [0.25,0.25,0], + [0.25,0.25,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.75,0.25,0], + [0.75,0.25,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.75,0], + [0.75,0.75,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.75,0], + [0.25,0.75,0.5] + ], + "16": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "17": [ + [0,0,0], + [0,0,0.25], + [0,0,0.5], + [0,0,0.75], + [0,0.5,0], + [0,0.5,0.25], + [0,0.5,0.5], + [0,0.5,0.75], + [0.5,0,0], + [0.5,0,0.25], + [0.5,0,0.5], + [0.5,0,0.75], + [0.5,0.5,0], + [0.5,0.5,0.25], + [0.5,0.5,0.5], + [0.5,0.5,0.75] + ], + "18": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "19": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + "20": [ + [0,0,0], + [0,0,0.25], + [0,0,0.5], + [0,0,0.75], + [0.5,0,0], + [0.5,0,0.25], + [0.5,0,0.5], + [0.5,0,0.75], + [0.5,0.5,0], + [0.5,0.5,0.25], + [0.5,0.5,0.5], + [0.5,0.5,0.75], + [0,0.5,0], + [0,0.5,0.25], + [0,0.5,0.5], + [0,0.5,0.75] + ], + "21": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + "22": [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0,0.5], + [0.25,0.25,0.75] + ], + "23": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0,0.5], + [0,0.5,0.5], + [0,0,0.5] + ], + "24": [ + [0,0,0], + [0,0.5,0], + [0.25,0.25,0.25], + [0.25,0.75,0.25], + [0.5,0,0], + [0.5,0.5,0], + [0.75,0.25,0.25], + [0.75,0.75,0.25], + [0,0,0.5], + [0,0.5,0.5], + [0.25,0.25,0.75], + [0.25,0.75,0.75], + [0.5,0,0.5], + [0.5,0.5,0.5], + [0.75,0.25,0.75], + [0.75,0.75,0.75] + ], + "25": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + "26": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + "27": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + "28": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + "29": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + "30": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0.5,0.5], + [0,0,0.5], + [0.5,0.5,0.5], + [0.5,0,0.5] + ], + "31": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0.5,0,0.5], + [0.5,0.5,0.5], + [0,0,0.5], + [0,0.5,0.5] + ], + "32": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + "33": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + "34": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0,0.5], + [0,0.5,0.5], + [0,0,0.5] + ], + "35": [ + [0,0,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0.5,0] + ], + "36": [ + [0,0,0], + [0.5,0,0], + [0,0,0.5], + [0.5,0,0.5], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + "37": [ + [0,0,0], + [0.5,0,0], + [0,0,0.5], + [0.5,0,0.5], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + "38": [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.5], + [0.5,0.5,0.5] + ], + "39": [ + [0,0,0], + [0.5,0,0], + [0,0,0.5], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0.5,0.5], + [0.5,0.5,0.5] + ], + "40": [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.5], + [0.5,0.5,0.5] + ], + "41": [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.5], + [0.5,0.5,0.5], + [0.5,0,0.5], + [0,0,0.5], + [0.5,0.5,0], + [0,0.5,0] + ], + "42": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "43": [ + [0,0,0], + [0.25,0.25,0], + [0,0.5,0.5], + [0.25,0.75,0.5], + [0.25,0.25,0.25], + [0.5,0.5,0.25], + [0.25,0.75,0.75], + [0.5,0,0.75], + [0.5,0,0.5], + [0.75,0.25,0.5], + [0.5,0.5,0], + [0.75,0.75,0], + [0.75,0.25,0.75], + [0,0.5,0.75], + [0.75,0.75,0.25], + [0,0,0.25] + ], + "44": [ + [0,0,0], + [0.5,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + "45": [ + [0,0,0], + [0.5,0,0], + [0,0,0.5], + [0.5,0,0.5], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + "46": [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.5], + [0.5,0.5,0.5] + ], + "47": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "48": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "49": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "50": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "51": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "52": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "53": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "54": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "55": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "56": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "57": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "58": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "59": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "60": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "61": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "62": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "63": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + "64": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0.5], + [0,0.5,0], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + "65": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + "66": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + "67": [ + [0,0,0], + [0,0,0.5], + [0.25,0.75,0], + [0.25,0.75,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.75,0.75,0], + [0.75,0.75,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0], + [0.25,0.25,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0], + [0.75,0.25,0.5] + ], + "68": [ + [0,0,0], + [0,0,0.5], + [0.25,0.75,0], + [0.25,0.75,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.75,0.75,0], + [0.75,0.75,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0], + [0.25,0.25,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0], + [0.75,0.25,0.5] + ], + "69": [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.5], + [0.5,0.5,0.5], + [0.5,0,0.5], + [0,0,0.5], + [0.5,0.5,0], + [0,0.5,0] + ], + "70": [ + [0,0,0], + [0.5,0,0], + [0,0.25,0.25], + [0.5,0.25,0.25], + [0,0.5,0.5], + [0.5,0.5,0.5], + [0,0.75,0.75], + [0.5,0.75,0.75], + [0.25,0,0.25], + [0.75,0,0.25], + [0.25,0.25,0], + [0.75,0.25,0], + [0.25,0.5,0.75], + [0.75,0.5,0.75], + [0.25,0.75,0.5], + [0.75,0.75,0.5], + [0.5,0,0.5], + [0,0,0.5], + [0.5,0.25,0.75], + [0,0.25,0.75], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0.75,0.25], + [0,0.75,0.25], + [0.75,0,0.75], + [0.25,0,0.75], + [0.75,0.25,0.5], + [0.25,0.25,0.5], + [0.75,0.5,0.25], + [0.25,0.5,0.25], + [0.75,0.75,0], + [0.25,0.75,0] + ], + "71": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0,0.5], + [0,0.5,0.5], + [0,0,0.5] + ], + "72": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + "73": [ + [0,0,0], + [0,0.5,0], + [0.25,0.25,0.25], + [0.25,0.75,0.25], + [0.5,0,0], + [0.5,0.5,0], + [0.75,0.25,0.25], + [0.75,0.75,0.25], + [0,0,0.5], + [0,0.5,0.5], + [0.25,0.25,0.75], + [0.25,0.75,0.75], + [0.5,0,0.5], + [0.5,0.5,0.5], + [0.75,0.25,0.75], + [0.75,0.75,0.75] + ], + "74": [ + [0,0,0], + [0,0.5,0], + [0.25,0.75,0.25], + [0.25,0.25,0.25], + [0.5,0,0], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0.75,0.25,0.75], + [0,0,0.5], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.25,0.25,0.75] + ], + "75": [ + [0,0,0], + [0.5,0.5,0] + ], + "76": [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.25], + [0.5,0.5,0.25], + [0,0,0.5], + [0.5,0.5,0.5], + [0,0,0.75], + [0.5,0.5,0.75] + ], + "77": [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.5,0.5] + ], + "78": [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.25], + [0.5,0.5,0.25], + [0,0,0.5], + [0.5,0.5,0.5], + [0,0,0.75], + [0.5,0.5,0.75] + ], + "79": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "80": [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.25], + [0.5,0.5,0.25], + [0.5,0,0.75], + [0,0,0.75], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + "81": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "82": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0.25], + [0.5,0,0.75], + [0.5,0.5,0.5], + [0.5,0.5,0], + [0,0.5,0.75], + [0,0.5,0.25] + ], + "83": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "84": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "85": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + "86": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0,0.5,0], + [0.5,0,0.5], + [0.5,0,0] + ], + "87": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + "88": [ + [0,0,0], + [0,0,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0.5,0.5], + [0.5,0.5,0], + [0.5,0,0], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0.75,0.25,0.25], + [0.75,0.75,0.75], + [0.75,0.75,0.25] + ], + "89": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "90": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "91": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0,0.25], + [0,0,0.75], + [0.5,0.5,0.25], + [0.5,0.5,0.75] + ], + "92": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0.5,0.25], + [0.5,0.5,0.75], + [0,0,0.25], + [0,0,0.75] + ], + "93": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "94": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "95": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0,0.25], + [0,0,0.75], + [0.5,0.5,0.25], + [0.5,0.5,0.75] + ], + "96": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0.5,0.25], + [0.5,0.5,0.75], + [0,0,0.25], + [0,0,0.75] + ], + "97": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + "98": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0.25], + [0.5,0,0.75], + [0,0.5,0.25], + [0,0.5,0.75], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + "99": [ + [0,0,0], + [0.5,0.5,0] + ], + "100": [ + [0,0,0], + [0.5,0.5,0] + ], + "101": [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.5,0.5] + ], + "102": [ + [0,0,0], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0,0.5] + ], + "103": [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.5,0.5] + ], + "104": [ + [0,0,0], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0,0.5] + ], + "105": [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.5,0.5] + ], + "106": [ + [0,0,0], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.5,0.5] + ], + "107": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "108": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "109": [ + [0,0,0], + [0.5,0,0], + [0,0.5,0.25], + [0.5,0.5,0.25], + [0.5,0,0.75], + [0,0,0.75], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + "110": [ + [0,0,0], + [0.5,0,0], + [0,0,0.5], + [0.5,0,0.5], + [0,0.5,0.25], + [0.5,0.5,0.25], + [0,0.5,0.75], + [0.5,0.5,0.75], + [0.5,0,0.25], + [0,0,0.25], + [0.5,0,0.75], + [0,0,0.75], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5] + ], + "111": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "112": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "113": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "114": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "115": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "116": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "117": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "118": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "119": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0.25], + [0.5,0,0.75], + [0.5,0.5,0.5], + [0.5,0.5,0], + [0,0.5,0.75], + [0,0.5,0.25] + ], + "120": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0.25], + [0.5,0,0.75], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.25], + [0,0.5,0.75] + ], + "121": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + "122": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0.25], + [0.5,0,0.75], + [0,0.5,0.25], + [0,0.5,0.75], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + "123": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "124": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "125": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + "126": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + "127": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "128": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "129": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + "130": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + "131": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "132": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "133": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + "134": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0,0.5,0], + [0.5,0,0.5], + [0.5,0,0] + ], + "135": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "136": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "137": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + "138": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0,0.5,0], + [0.5,0,0.5], + [0.5,0,0] + ], + "139": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0.5], + [0.5,0.5,0] + ], + "140": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "141": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.75], + [0.25,0.25,0.25], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0.5], + [0.5,0,0], + [0.5,0.5,0.5], + [0.5,0.5,0], + [0.75,0.25,0.75], + [0.75,0.25,0.25], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + "142": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + "143": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0], + [0.6666666666666666,0.3333333333333333,0] + ], + "144": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0], + [0.6666666666666666,0.3333333333333333,0], + [0,0,0.3333333333333333], + [0.3333333333333333,0.6666666666666666,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0,0,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.6666666666666666] + ], + "145": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0], + [0.6666666666666666,0.3333333333333333,0], + [0,0,0.3333333333333333], + [0.3333333333333333,0.6666666666666666,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0,0,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.6666666666666666] + ], + "146": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333] + ], + "147": [ + [0,0,0], + [0,0,0.5] + ], + "148": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.16666666666666652], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333] + ], + "149": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5] + ], + "150": [ + [0,0,0], + [0,0,0.5] + ], + "151": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0.3333333333333333,0.6666666666666666,0.3333333333333333], + [0.3333333333333333,0.6666666666666666,0.8333333333333333], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.16666666666666652], + [0.6666666666666666,0.3333333333333333,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.16666666666666652] + ], + "152": [ + [0,0,0], + [0,0,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652] + ], + "153": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0.3333333333333333,0.6666666666666666,0.3333333333333333], + [0.3333333333333333,0.6666666666666666,0.8333333333333333], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.16666666666666652], + [0.6666666666666666,0.3333333333333333,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.16666666666666652] + ], + "154": [ + [0,0,0], + [0,0,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652] + ], + "155": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.16666666666666652], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333] + ], + "156": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0], + [0.6666666666666666,0.3333333333333333,0] + ], + "157": [ + [0,0,0] + ], + "158": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0], + [0.6666666666666666,0.3333333333333333,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0.5] + ], + "159": [ + [0,0,0], + [0,0,0.5] + ], + "160": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333] + ], + "161": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.16666666666666666], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333334] + ], + "162": [ + [0,0,0], + [0,0,0.5] + ], + "163": [ + [0,0,0], + [0,0,0.5] + ], + "164": [ + [0,0,0], + [0,0,0.5] + ], + "165": [ + [0,0,0], + [0,0,0.5] + ], + "166": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.3333333333333333,0.6666666666666666,0.16666666666666652], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333] + ], + "167": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.16666666666666666], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333333] + ], + "168": [ + [0,0,0] + ], + "169": [ + [0,0,0], + [0,0,0.16666666666666666], + [0,0,0.3333333333333333], + [0,0,0.5], + [0,0,0.6666666666666666], + [0,0,0.8333333333333334] + ], + "170": [ + [0,0,0], + [0,0,0.16666666666666666], + [0,0,0.3333333333333333], + [0,0,0.5], + [0,0,0.6666666666666666], + [0,0,0.8333333333333334] + ], + "171": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "172": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "173": [ + [0,0,0], + [0,0,0.5] + ], + "174": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5] + ], + "175": [ + [0,0,0], + [0,0,0.5] + ], + "176": [ + [0,0,0], + [0,0,0.5] + ], + "177": [ + [0,0,0], + [0,0,0.5] + ], + "178": [ + [0,0,0], + [0,0,0.5], + [0,0,0.16666666666666666], + [0,0,0.6666666666666666], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333] + ], + "179": [ + [0,0,0], + [0,0,0.5], + [0,0,0.16666666666666666], + [0,0,0.6666666666666666], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333] + ], + "180": [ + [0,0,0], + [0,0,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652] + ], + "181": [ + [0,0,0], + [0,0,0.5], + [0,0,0.3333333333333333], + [0,0,0.8333333333333333], + [0,0,0.6666666666666666], + [0,0,0.16666666666666652] + ], + "182": [ + [0,0,0], + [0,0,0.5] + ], + "183": [ + [0,0,0] + ], + "184": [ + [0,0,0], + [0,0,0.5] + ], + "185": [ + [0,0,0], + [0,0,0.5] + ], + "186": [ + [0,0,0], + [0,0,0.5] + ], + "187": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5] + ], + "188": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0], + [0.3333333333333333,0.6666666666666666,0.5], + [0.6666666666666666,0.3333333333333333,0], + [0.6666666666666666,0.3333333333333333,0.5] + ], + "189": [ + [0,0,0], + [0,0,0.5] + ], + "190": [ + [0,0,0], + [0,0,0.5] + ], + "191": [ + [0,0,0], + [0,0,0.5] + ], + "192": [ + [0,0,0], + [0,0,0.5] + ], + "193": [ + [0,0,0], + [0,0,0.5] + ], + "194": [ + [0,0,0], + [0,0,0.5] + ], + "195": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "196": [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0,0.5], + [0.25,0.25,0.75] + ], + "197": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "198": [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0,0.5], + [0.25,0.25,0.75] + ], + "199": [ + [0,0,0], + [0.25,0.25,0.25], + [0,0,0.5], + [0.25,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75] + ], + "200": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "201": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + "202": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + "203": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.25,0.25], + [0.5,0.75,0.75], + [0,0.5,0.5], + [0.5,0,0], + [0,0.75,0.75], + [0.5,0.25,0.25], + [0.25,0,0.25], + [0.75,0.5,0.75], + [0.25,0.25,0], + [0.75,0.75,0.5], + [0.25,0.5,0.75], + [0.75,0,0.25], + [0.25,0.75,0.5], + [0.75,0.25,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.25,0.75], + [0,0.75,0.25], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.75,0.25], + [0,0.25,0.75], + [0.75,0,0.75], + [0.25,0.5,0.25], + [0.75,0.25,0.5], + [0.25,0.75,0], + [0.75,0.5,0.25], + [0.25,0,0.75], + [0.75,0.75,0], + [0.25,0.25,0.5] + ], + "204": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "205": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + "206": [ + [0,0,0], + [0.25,0.25,0.25], + [0,0,0.5], + [0.25,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75] + ], + "207": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "208": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "209": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + "210": [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0,0.5], + [0.25,0.25,0.75] + ], + "211": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "212": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.25,0.25,0.25], + [0.75,0.75,0.75], + [0.25,0.75,0.75], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5], + [0.75,0.25,0.75], + [0.25,0.75,0.25], + [0.75,0.75,0.25], + [0.25,0.25,0.75] + ], + "213": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.25,0.25,0.75], + [0.75,0.75,0.25], + [0.25,0.75,0.25], + [0.75,0.25,0.75], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5], + [0.75,0.25,0.25], + [0.25,0.75,0.75], + [0.75,0.75,0.75], + [0.25,0.25,0.25] + ], + "214": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + "215": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "216": [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0,0.5], + [0.25,0.25,0.75] + ], + "217": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "218": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "219": [ + [0,0,0], + [0.25,0.25,0.25], + [0.5,0.5,0.5], + [0.75,0.75,0.75], + [0,0,0.5], + [0.25,0.25,0.75], + [0.5,0.5,0], + [0.75,0.75,0.25], + [0,0.5,0], + [0.25,0.75,0.25], + [0.5,0,0.5], + [0.75,0.25,0.75], + [0,0.5,0.5], + [0.25,0.75,0.75], + [0.5,0,0], + [0.75,0.25,0.25] + ], + "220": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + "221": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "222": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0,0.5], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0,0.5], + [0,0.5,0.5], + [0.5,0,0] + ], + "223": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "224": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + "225": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.5,0], + [0,0,0.5] + ], + "226": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0,0.5], + [0.5,0.5,0], + [0,0.5,0], + [0.5,0,0.5], + [0,0.5,0.5], + [0.5,0,0] + ], + "227": [ + [0,0,0], + [0.5,0.5,0.5], + [0,0.25,0.25], + [0.5,0.75,0.75], + [0,0.5,0.5], + [0.5,0,0], + [0,0.75,0.75], + [0.5,0.25,0.25], + [0.25,0,0.25], + [0.75,0.5,0.75], + [0.25,0.25,0], + [0.75,0.75,0.5], + [0.25,0.5,0.75], + [0.75,0,0.25], + [0.25,0.75,0.5], + [0.75,0.25,0], + [0.5,0,0.5], + [0,0.5,0], + [0.5,0.25,0.75], + [0,0.75,0.25], + [0.5,0.5,0], + [0,0,0.5], + [0.5,0.75,0.25], + [0,0.25,0.75], + [0.75,0,0.75], + [0.25,0.5,0.25], + [0.75,0.25,0.5], + [0.25,0.75,0], + [0.75,0.5,0.25], + [0.25,0,0.75], + [0.75,0.75,0], + [0.25,0.25,0.5] + ], + "228": [ + [0,0,0], + [0,0,0.5], + [0,0.25,0.25], + [0,0.25,0.75], + [0,0.5,0], + [0,0.5,0.5], + [0,0.75,0.25], + [0,0.75,0.75], + [0.25,0,0.25], + [0.25,0,0.75], + [0.25,0.25,0], + [0.25,0.25,0.5], + [0.25,0.5,0.25], + [0.25,0.5,0.75], + [0.25,0.75,0], + [0.25,0.75,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.25,0.25], + [0.5,0.25,0.75], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0.75,0.25], + [0.5,0.75,0.75], + [0.75,0,0.25], + [0.75,0,0.75], + [0.75,0.25,0], + [0.75,0.25,0.5], + [0.75,0.5,0.25], + [0.75,0.5,0.75], + [0.75,0.75,0], + [0.75,0.75,0.5] + ], + "229": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "230": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ] +} \ No newline at end of file diff --git a/scripts/primitivize_fractional_vector.json b/scripts/primitivize_fractional_vector.json new file mode 100644 index 0000000..1e6cda5 --- /dev/null +++ b/scripts/primitivize_fractional_vector.json @@ -0,0 +1,47 @@ +{ + "mC": [ + [1,1,0], + [-1,1,0], + [0,0,1] + ], + "oC": [ + [1,1,0], + [-1,1,0], + [0,0,1] + ], + "oA": [ + [1,0,0], + [0,1,1], + [0,-1,1] + ], + "oI": [ + [0,1,1], + [1,0,1], + [1,1,0] + ], + "oF": [ + [-1,1,1], + [1,-1,1], + [1,1,-1] + ], + "tI": [ + [0,1,1], + [1,0,1], + [1,1,0] + ], + "hR": [ + [1,-1,0], + [0,1,-1], + [1,1,1] + ], + "cI": [ + [0,1,1], + [1,0,1], + [1,1,0] + ], + "cF": [ + [-1,1,1], + [1,-1,1], + [1,1,-1] + ] +} \ No newline at end of file diff --git a/scripts/translation_coset_representatives.json b/scripts/translation_coset_representatives.json new file mode 100644 index 0000000..7aa0ecd --- /dev/null +++ b/scripts/translation_coset_representatives.json @@ -0,0 +1,1033 @@ +{"1": +[[0.0, 0.0, 0.0]], +"2": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"3": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5]], +"4": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5]], +"5": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"6": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0]], +"7": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0]], +"8": +[[0.0, 0.0, 0.0]], +"9": +[[0.0, 0.0, 0.0]], +"10": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"11": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"12": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5]], +"13": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"14": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"15": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.25, 0.25, 0.0], +[0.25, 0.25, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.75, 0.25, 0.0], +[0.75, 0.25, 0.5]], +"16": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"17": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.25], +[0.0, 0.0, 0.5], +[0.0, 0.0, 0.75], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.25], +[0.0, 0.5, 0.5], +[0.0, 0.5, 0.75], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.25], +[0.5, 0.0, 0.5], +[0.5, 0.0, 0.75], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.25], +[0.5, 0.5, 0.5], +[0.5, 0.5, 0.75]], +"18": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"19": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.25, 0.25, 0.25], +[0.25, 0.25, 0.75], +[0.25, 0.75, 0.25], +[0.25, 0.75, 0.75], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5], +[0.75, 0.25, 0.25], +[0.75, 0.25, 0.75], +[0.75, 0.75, 0.25], +[0.75, 0.75, 0.75]], +"20": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.25], +[0.0, 0.0, 0.5], +[0.0, 0.0, 0.75], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.25], +[0.5, 0.0, 0.5], +[0.5, 0.0, 0.75]], +"21": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5]], +"22": +[[0.0, 0.0, 0.0], +[0.25, 0.25, 0.25], +[0.5, 0.5, 0.5], +[0.75, 0.75, 0.75]], +"23": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"24": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.25, 0.25, 0.25], +[0.25, 0.75, 0.25], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0], +[0.75, 0.25, 0.25], +[0.75, 0.75, 0.25]], +"25": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"26": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"27": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"28": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"29": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"30": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"31": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"32": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"33": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"34": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"35": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"36": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"37": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"38": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"39": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"40": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"41": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"42": +[[0.0, 0.0, 0.0]], +"43": +[[0.0, 0.0, 0.0], +[0.25, 0.25, 0.0]], +"44": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"45": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"46": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"47": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"48": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"49": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"50": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"51": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"52": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"53": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"54": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"55": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"56": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"57": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"58": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"59": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"60": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"61": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"62": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.0, 0.5, 0.0], +[0.0, 0.5, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"63": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5]], +"64": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5]], +"65": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5]], +"66": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5]], +"67": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.25, -0.25, 0.0], +[0.25, -0.25, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.75, -0.25, 0.0], +[0.75, -0.25, 0.5]], +"68": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.25, -0.25, 0.0], +[0.25, -0.25, 0.5], +[0.5, 0.0, 0.0], +[0.5, 0.0, 0.5], +[0.75, -0.25, 0.0], +[0.75, -0.25, 0.5]], +"69": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"70": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"71": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"72": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"73": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.25, 0.25, 0.25], +[0.25, 0.75, 0.25], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0], +[0.75, 0.25, 0.25], +[0.75, 0.75, 0.25]], +"74": +[[0.0, 0.0, 0.0], +[0.0, 0.5, 0.0], +[0.25, -0.25, 0.25], +[0.25, 0.25, 0.25], +[0.5, 0.0, 0.0], +[0.5, 0.5, 0.0], +[0.75, -0.25, 0.25], +[0.75, 0.25, 0.25]], +"75": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"76": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"77": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"78": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"79": +[[0.0, 0.0, 0.0]], +"80": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"81": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"82": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.25], +[0.5, 0.0, 0.75]], +"83": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"84": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"85": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"86": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"87": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"88": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.25, 0.25, 0.25], +[0.25, 0.25, 0.75]], +"89": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"90": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"91": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"92": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"93": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"94": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"95": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"96": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"97": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"98": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.25], +[0.5, 0.0, 0.75]], +"99": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"100": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"101": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"102": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"103": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"104": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"105": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"106": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.0]], +"107": +[[0.0, 0.0, 0.0]], +"108": +[[0.0, 0.0, 0.0]], +"109": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"110": +[[0.0, 0.0, 0.0], +[0.5, 0.0, 0.0]], +"111": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"112": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"113": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"114": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"115": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"116": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"117": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"118": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"119": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.25], +[0.5, 0.0, 0.75]], +"120": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.25], +[0.5, 0.0, 0.75]], +"121": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"122": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.0, 0.25], +[0.5, 0.0, 0.75]], +"123": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"124": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"125": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"126": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"127": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"128": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"129": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"130": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"131": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"132": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"133": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"134": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"135": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"136": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"137": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"138": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.5, 0.5, 0.0], +[0.5, 0.5, 0.5]], +"139": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"140": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"141": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"142": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"143": +[[0.0, 0.0, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.0]], +"144": +[[0.0, 0.0, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.0]], +"145": +[[0.0, 0.0, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.0]], +"146": +[[0.0, 0.0, 0.0]], +"147": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"148": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"149": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.5], +[0.6666666666666666, 0.3333333333333333, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.5]], +"150": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"151": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.5], +[0.6666666666666666, 0.3333333333333333, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.5]], +"152": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"153": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.5], +[0.6666666666666666, 0.3333333333333333, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.5]], +"154": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"155": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"156": +[[0.0, 0.0, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.0]], +"157": +[[0.0, 0.0, 0.0]], +"158": +[[0.0, 0.0, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.0]], +"159": +[[0.0, 0.0, 0.0]], +"160": +[[0.0, 0.0, 0.0]], +"161": +[[0.0, 0.0, 0.0]], +"162": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"163": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"164": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"165": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"166": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"167": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"168": +[[0.0, 0.0, 0.0]], +"169": +[[0.0, 0.0, 0.0]], +"170": +[[0.0, 0.0, 0.0]], +"171": +[[0.0, 0.0, 0.0]], +"172": +[[0.0, 0.0, 0.0]], +"173": +[[0.0, 0.0, 0.0]], +"174": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.5], +[0.6666666666666666, 0.3333333333333333, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.5]], +"175": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"176": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"177": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"178": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"179": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"180": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"181": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"182": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"183": +[[0.0, 0.0, 0.0]], +"184": +[[0.0, 0.0, 0.0]], +"185": +[[0.0, 0.0, 0.0]], +"186": +[[0.0, 0.0, 0.0]], +"187": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.5], +[0.6666666666666666, 0.3333333333333333, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.5]], +"188": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5], +[0.3333333333333333, 0.6666666666666666, 0.0], +[0.3333333333333333, 0.6666666666666666, 0.5], +[0.6666666666666666, 0.3333333333333333, 0.0], +[0.6666666666666666, 0.3333333333333333, 0.5]], +"189": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"190": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"191": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"192": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"193": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"194": +[[0.0, 0.0, 0.0], +[0.0, 0.0, 0.5]], +"195": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"196": +[[0.0, 0.0, 0.0], +[0.25, 0.25, 0.25], +[0.5, 0.5, 0.5], +[0.75, 0.75, 0.75]], +"197": +[[0.0, 0.0, 0.0]], +"198": +[[0.0, 0.0, 0.0], +[0.25, 0.25, 0.25], +[0.5, 0.5, 0.5], +[0.75, 0.75, 0.75]], +"199": +[[0.0, 0.0, 0.0], +[0.25, 0.25, 0.25]], +"200": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"201": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"202": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"203": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"204": +[[0.0, 0.0, 0.0]], +"205": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"206": +[[0.0, 0.0, 0.0], +[0.25, 0.25, 0.25]], +"207": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"208": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"209": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"210": +[[0.0, 0.0, 0.0], +[0.25, 0.25, 0.25], +[0.5, 0.5, 0.5], +[0.75, 0.75, 0.75]], +"211": +[[0.0, 0.0, 0.0]], +"212": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"213": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"214": +[[0.0, 0.0, 0.0]], +"215": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"216": +[[0.0, 0.0, 0.0], +[0.25, 0.25, 0.25], +[0.5, 0.5, 0.5], +[0.75, 0.75, 0.75]], +"217": +[[0.0, 0.0, 0.0]], +"218": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"219": +[[0.0, 0.0, 0.0], +[0.25, 0.25, 0.25], +[0.5, 0.5, 0.5], +[0.75, 0.75, 0.75]], +"220": +[[0.0, 0.0, 0.0]], +"221": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"222": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"223": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"224": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"225": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"226": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"227": +[[0.0, 0.0, 0.0], +[0.5, 0.5, 0.5]], +"228":[[0.0, 0.0, 0.0]], +"229":[[0.0, 0.0, 0.0]], +"230":[[0.0, 0.0, 0.0]]} \ No newline at end of file diff --git a/scripts/translation_parts.json b/scripts/translation_parts.json new file mode 100644 index 0000000..cf67bbd --- /dev/null +++ b/scripts/translation_parts.json @@ -0,0 +1,1290 @@ +{ + "1": [ + [0,0,0] + ], + "2": [ + [0,0,0] + ], + "3": [ + [0,0,0] + ], + "4": [ + [0,0,0], + [0,0.5,0] + ], + "5": [ + [0,0,0], + [0.5,0.5,0] + ], + "6": [ + [0,0,0] + ], + "7": [ + [0,0,0], + [0,0,0.5] + ], + "8": [ + [0,0,0], + [0.5,0.5,0] + ], + "9": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "10": [ + [0,0,0] + ], + "11": [ + [0,0,0], + [0,0.5,0] + ], + "12": [ + [0,0,0], + [0.5,0.5,0] + ], + "13": [ + [0,0,0], + [0,0,0.5] + ], + "14": [ + [0,0,0], + [0,0.5,0.5] + ], + "15": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "16": [ + [0,0,0] + ], + "17": [ + [0,0,0], + [0,0,0.5] + ], + "18": [ + [0,0,0], + [0.5,0.5,0] + ], + "19": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "20": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "21": [ + [0,0,0], + [0.5,0.5,0] + ], + "22": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "23": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "24": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "25": [ + [0,0,0] + ], + "26": [ + [0,0,0], + [0,0,0.5] + ], + "27": [ + [0,0,0], + [0,0,0.5] + ], + "28": [ + [0,0,0], + [0.5,0,0] + ], + "29": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + "30": [ + [0,0,0], + [0,0.5,0.5] + ], + "31": [ + [0,0,0], + [0.5,0,0.5] + ], + "32": [ + [0,0,0], + [0.5,0.5,0] + ], + "33": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "34": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "35": [ + [0,0,0], + [0.5,0.5,0] + ], + "36": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "37": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "38": [ + [0,0,0], + [0,0.5,0.5] + ], + "39": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + "40": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0.5,0.5] + ], + "41": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "42": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "43": [ + [0,0,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.75,0.75], + [0.5,0,0.5], + [0.5,0.5,0], + [0.75,0.25,0.75], + [0.75,0.75,0.25] + ], + "44": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "45": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "46": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0.5,0.5] + ], + "47": [ + [0,0,0] + ], + "48": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "49": [ + [0,0,0], + [0,0,0.5] + ], + "50": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + "51": [ + [0,0,0], + [0.5,0,0] + ], + "52": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0.5,0.5] + ], + "53": [ + [0,0,0], + [0.5,0,0.5] + ], + "54": [ + [0,0,0], + [0,0,0.5], + [0.5,0,0], + [0.5,0,0.5] + ], + "55": [ + [0,0,0], + [0.5,0.5,0] + ], + "56": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "57": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5] + ], + "58": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "59": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + "60": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "61": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "62": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + "63": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "64": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "65": [ + [0,0,0], + [0.5,0.5,0] + ], + "66": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "67": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + "68": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "69": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "70": [ + [0,0,0], + [0,0.25,0.25], + [0,0.5,0.5], + [0,0.75,0.75], + [0.25,0,0.25], + [0.25,0.25,0], + [0.25,0.5,0.75], + [0.25,0.75,0.5], + [0.5,0,0.5], + [0.5,0.25,0.75], + [0.5,0.5,0], + [0.5,0.75,0.25], + [0.75,0,0.75], + [0.75,0.25,0.5], + [0.75,0.5,0.25], + [0.75,0.75,0] + ], + "71": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "72": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "73": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "74": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0.5], + [0.5,0.5,0.5] + ], + "75": [ + [0,0,0] + ], + "76": [ + [0,0,0], + [0,0,0.25], + [0,0,0.5], + [0,0,0.75] + ], + "77": [ + [0,0,0], + [0,0,0.5] + ], + "78": [ + [0,0,0], + [0,0,0.25], + [0,0,0.5], + [0,0,0.75] + ], + "79": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "80": [ + [0,0,0], + [0,0.5,0.25], + [0.5,0,0.75], + [0.5,0.5,0.5] + ], + "81": [ + [0,0,0] + ], + "82": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "83": [ + [0,0,0] + ], + "84": [ + [0,0,0], + [0,0,0.5] + ], + "85": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + "86": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "87": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "88": [ + [0,0,0], + [0,0.5,0], + [0.25,0.25,0.25], + [0.25,0.75,0.75], + [0.5,0,0.5], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.75,0.75] + ], + "89": [ + [0,0,0] + ], + "90": [ + [0,0,0], + [0.5,0.5,0] + ], + "91": [ + [0,0,0], + [0,0,0.25], + [0,0,0.5], + [0,0,0.75] + ], + "92": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0.25], + [0.5,0.5,0.75] + ], + "93": [ + [0,0,0], + [0,0,0.5] + ], + "94": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "95": [ + [0,0,0], + [0,0,0.25], + [0,0,0.5], + [0,0,0.75] + ], + "96": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0.25], + [0.5,0.5,0.75] + ], + "97": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "98": [ + [0,0,0], + [0,0.5,0.25], + [0.5,0,0.75], + [0.5,0.5,0.5] + ], + "99": [ + [0,0,0] + ], + "100": [ + [0,0,0], + [0.5,0.5,0] + ], + "101": [ + [0,0,0], + [0,0,0.5] + ], + "102": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "103": [ + [0,0,0], + [0,0,0.5] + ], + "104": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "105": [ + [0,0,0], + [0,0,0.5] + ], + "106": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "107": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "108": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "109": [ + [0,0,0], + [0,0.5,0.25], + [0.5,0,0.75], + [0.5,0.5,0.5] + ], + "110": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0.25], + [0,0.5,0.75], + [0.5,0,0.25], + [0.5,0,0.75], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "111": [ + [0,0,0] + ], + "112": [ + [0,0,0], + [0,0,0.5] + ], + "113": [ + [0,0,0], + [0.5,0.5,0] + ], + "114": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "115": [ + [0,0,0] + ], + "116": [ + [0,0,0], + [0,0,0.5] + ], + "117": [ + [0,0,0], + [0.5,0.5,0] + ], + "118": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "119": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "120": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "121": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "122": [ + [0,0,0], + [0,0.5,0.25], + [0.5,0,0.75], + [0.5,0.5,0.5] + ], + "123": [ + [0,0,0] + ], + "124": [ + [0,0,0], + [0,0,0.5] + ], + "125": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + "126": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "127": [ + [0,0,0], + [0.5,0.5,0] + ], + "128": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "129": [ + [0,0,0], + [0,0.5,0], + [0.5,0,0], + [0.5,0.5,0] + ], + "130": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "131": [ + [0,0,0], + [0,0,0.5] + ], + "132": [ + [0,0,0], + [0,0,0.5] + ], + "133": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "134": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "135": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "136": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "137": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "138": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "139": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "140": [ + [0,0,0], + [0,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "141": [ + [0,0,0], + [0,0.5,0], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.5,0,0.5], + [0.5,0.5,0.5], + [0.75,0.25,0.75], + [0.75,0.75,0.25] + ], + "142": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + "143": [ + [0,0,0] + ], + "144": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "145": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "146": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333] + ], + "147": [ + [0,0,0] + ], + "148": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333] + ], + "149": [ + [0,0,0] + ], + "150": [ + [0,0,0] + ], + "151": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "152": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "153": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "154": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "155": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333] + ], + "156": [ + [0,0,0] + ], + "157": [ + [0,0,0] + ], + "158": [ + [0,0,0], + [0,0,0.5] + ], + "159": [ + [0,0,0], + [0,0,0.5] + ], + "160": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333] + ], + "161": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.16666666666666666], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333334] + ], + "162": [ + [0,0,0] + ], + "163": [ + [0,0,0], + [0,0,0.5] + ], + "164": [ + [0,0,0] + ], + "165": [ + [0,0,0], + [0,0,0.5] + ], + "166": [ + [0,0,0], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333] + ], + "167": [ + [0,0,0], + [0,0,0.5], + [0.3333333333333333,0.6666666666666666,0.16666666666666666], + [0.3333333333333333,0.6666666666666666,0.6666666666666666], + [0.6666666666666666,0.3333333333333333,0.3333333333333333], + [0.6666666666666666,0.3333333333333333,0.8333333333333334] + ], + "168": [ + [0,0,0] + ], + "169": [ + [0,0,0], + [0,0,0.16666666666666666], + [0,0,0.3333333333333333], + [0,0,0.5], + [0,0,0.6666666666666666], + [0,0,0.8333333333333334] + ], + "170": [ + [0,0,0], + [0,0,0.16666666666666666], + [0,0,0.3333333333333333], + [0,0,0.5], + [0,0,0.6666666666666666], + [0,0,0.8333333333333334] + ], + "171": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "172": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "173": [ + [0,0,0], + [0,0,0.5] + ], + "174": [ + [0,0,0] + ], + "175": [ + [0,0,0] + ], + "176": [ + [0,0,0], + [0,0,0.5] + ], + "177": [ + [0,0,0] + ], + "178": [ + [0,0,0], + [0,0,0.16666666666666666], + [0,0,0.3333333333333333], + [0,0,0.5], + [0,0,0.6666666666666666], + [0,0,0.8333333333333334] + ], + "179": [ + [0,0,0], + [0,0,0.16666666666666666], + [0,0,0.3333333333333333], + [0,0,0.5], + [0,0,0.6666666666666666], + [0,0,0.8333333333333334] + ], + "180": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "181": [ + [0,0,0], + [0,0,0.3333333333333333], + [0,0,0.6666666666666666] + ], + "182": [ + [0,0,0], + [0,0,0.5] + ], + "183": [ + [0,0,0] + ], + "184": [ + [0,0,0], + [0,0,0.5] + ], + "185": [ + [0,0,0], + [0,0,0.5] + ], + "186": [ + [0,0,0], + [0,0,0.5] + ], + "187": [ + [0,0,0] + ], + "188": [ + [0,0,0], + [0,0,0.5] + ], + "189": [ + [0,0,0] + ], + "190": [ + [0,0,0], + [0,0,0.5] + ], + "191": [ + [0,0,0] + ], + "192": [ + [0,0,0], + [0,0,0.5] + ], + "193": [ + [0,0,0], + [0,0,0.5] + ], + "194": [ + [0,0,0], + [0,0,0.5] + ], + "195": [ + [0,0,0] + ], + "196": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "197": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "198": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "199": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "200": [ + [0,0,0] + ], + "201": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "202": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "203": [ + [0,0,0], + [0,0.25,0.25], + [0,0.5,0.5], + [0,0.75,0.75], + [0.25,0,0.25], + [0.25,0.25,0], + [0.25,0.5,0.75], + [0.25,0.75,0.5], + [0.5,0,0.5], + [0.5,0.25,0.75], + [0.5,0.5,0], + [0.5,0.75,0.25], + [0.75,0,0.75], + [0.75,0.25,0.5], + [0.75,0.5,0.25], + [0.75,0.75,0] + ], + "204": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "205": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "206": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "207": [ + [0,0,0] + ], + "208": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "209": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "210": [ + [0,0,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.75,0.75], + [0.5,0,0.5], + [0.5,0.5,0], + [0.75,0.25,0.75], + [0.75,0.75,0.25] + ], + "211": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "212": [ + [0,0,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.75,0.75], + [0.5,0,0.5], + [0.5,0.5,0], + [0.75,0.25,0.75], + [0.75,0.75,0.25] + ], + "213": [ + [0,0,0], + [0,0.5,0.5], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.5,0,0.5], + [0.5,0.5,0], + [0.75,0.25,0.25], + [0.75,0.75,0.75] + ], + "214": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + "215": [ + [0,0,0] + ], + "216": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "217": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "218": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "219": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "220": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ], + "221": [ + [0,0,0] + ], + "222": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "223": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "224": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "225": [ + [0,0,0], + [0,0.5,0.5], + [0.5,0,0.5], + [0.5,0.5,0] + ], + "226": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5] + ], + "227": [ + [0,0,0], + [0,0.25,0.25], + [0,0.5,0.5], + [0,0.75,0.75], + [0.25,0,0.25], + [0.25,0.25,0], + [0.25,0.5,0.75], + [0.25,0.75,0.5], + [0.5,0,0.5], + [0.5,0.25,0.75], + [0.5,0.5,0], + [0.5,0.75,0.25], + [0.75,0,0.75], + [0.75,0.25,0.5], + [0.75,0.5,0.25], + [0.75,0.75,0] + ], + "228": [ + [0,0,0], + [0,0,0.5], + [0,0.25,0.25], + [0,0.25,0.75], + [0,0.5,0], + [0,0.5,0.5], + [0,0.75,0.25], + [0,0.75,0.75], + [0.25,0,0.25], + [0.25,0,0.75], + [0.25,0.25,0], + [0.25,0.25,0.5], + [0.25,0.5,0.25], + [0.25,0.5,0.75], + [0.25,0.75,0], + [0.25,0.75,0.5], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.25,0.25], + [0.5,0.25,0.75], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.5,0.75,0.25], + [0.5,0.75,0.75], + [0.75,0,0.25], + [0.75,0,0.75], + [0.75,0.25,0], + [0.75,0.25,0.5], + [0.75,0.5,0.25], + [0.75,0.5,0.75], + [0.75,0.75,0], + [0.75,0.75,0.5] + ], + "229": [ + [0,0,0], + [0.5,0.5,0.5] + ], + "230": [ + [0,0,0], + [0,0,0.5], + [0,0.5,0], + [0,0.5,0.5], + [0.25,0.25,0.25], + [0.25,0.25,0.75], + [0.25,0.75,0.25], + [0.25,0.75,0.75], + [0.5,0,0], + [0.5,0,0.5], + [0.5,0.5,0], + [0.5,0.5,0.5], + [0.75,0.25,0.25], + [0.75,0.25,0.75], + [0.75,0.75,0.25], + [0.75,0.75,0.75] + ] +} \ No newline at end of file diff --git a/tests/test_AFLOW.py b/tests/test_AFLOW.py index 5e3ec7a..933cea3 100755 --- a/tests/test_AFLOW.py +++ b/tests/test_AFLOW.py @@ -4,7 +4,8 @@ get_crystal_genome_designation_from_atoms, get_wyckoff_lists_from_prototype, \ frac_pos_match_allow_permute_wrap, frac_pos_match_allow_wrap, get_real_to_virtual_species_map, \ shuffle_atoms, get_pearson_symbol_from_prototype, get_centering_from_prototype, \ - solve_for_cell_params + solve_for_cell_params, minimize_wrapper,incorrectSpaceGroupException +from ase.calculators.kim.kim import KIM from random import random import json from copy import copy @@ -104,7 +105,6 @@ def test_solve_for_internal_params(): equation_sets = equation_sets_cache[prototype_label] print(prototype_label) print(aflow.solve_for_prototype_params(atoms,equation_sets,prototype_label)) - def test_get_prototype( materials=[CRYSTAL_GENOME_INITIAL_STRUCTURES[test_case] for test_case in TEST_CASES] @@ -157,31 +157,32 @@ def test_get_prototype( atoms.rotate((random(),random(),random()),(random(),random(),random()),rotate_cell=True) - atoms.translate((random(),random(),random())) + atoms.translate((random()*1000,random()*1000,random()*1000)) + atoms.wrap() - + + atoms.calc = KIM('LJ_ElliottAkerson_2015_Universal__MO_959249795837_003') + minimize_wrapper(atoms,fix_symmetry=True,variable_cell=True,steps=2,opt_kwargs={"maxstep":0.05}) + + + + crystal_did_not_rotate = False try: redetected_parameter_values = aflow.solve_for_prototype_params(atoms,equation_sets,prototype_label) - if redetected_parameter_values is None: print(f'Was not able to solve for parameters of {prototype_label}') - filename = 'output/' + prototype_label + '.POSCAR' - print(f'Dumping atoms to {filename}') - atoms.write(filename,format='vasp',sort=True) - continue - - crystal_did_not_rotate = aflow.confirm_unrotated_prototype_designation( - atoms, - species, - prototype_label, - redetected_parameter_values - ) - except AFLOW.tooSymmetricException as e: + else: + crystal_did_not_rotate = aflow.confirm_unrotated_prototype_designation( + atoms, + species, + prototype_label, + redetected_parameter_values + ) + except (AFLOW.tooSymmetricException,AFLOW.failedToMatchException,incorrectSpaceGroupException) as e: print(e) - continue if not crystal_did_not_rotate: - print(f'Failed to confirm unrotated prototype designation for {prototype_label}') + print(f'Failed to solve for parameters or confirm unrotated prototype designation for {prototype_label}') match_counts_by_pearson[pearson]['nonmatch'] += 1 match_counts_by_spacegroup[spacegroup]['nonmatch'] += 1 filename = 'output/' + prototype_label + '.POSCAR'