Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
121 changes: 49 additions & 72 deletions src/constants/referenceGeometries/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,22 +37,18 @@ function generateLinear() {
}

function generateVShape() {
// vT-2: Divacant Tetrahedron (V-shape, 109.47°) - Official CoSyMlib reference
// CORRECTED: Coordinates centered on metal position before normalization
// Metal center in cosymlib: [0, 0, -0.534522]
// vT-2: Divacant Tetrahedron (V-shape, 109.47°) - Official CoSyMlib reference (normalized)
return [
[0.801784, 0.801784, 0.801784],
[-0.801784, -0.801784, 0.801784]
[0.801784, 0.801784, 0.267261],
[-0.801784, -0.801784, 0.267261]
].map(normalize);
}

function generateLShape() {
// vOC-2: Tetravacant Octahedron (L-shape, 90°) - Official CoSyMlib reference
// CORRECTED: Coordinates centered on metal position before normalization
// Metal center in cosymlib: [-0.5, -0.5, 0]
// vOC-2: Tetravacant Octahedron (L-shape, 90°) - Official CoSyMlib reference (normalized)
return [
[1.500000, 0.000000, 0.000000],
[0.000000, 1.500000, 0.000000]
[1.000000, -0.500000, 0.000000],
[-0.500000, 1.000000, 0.000000]
].map(normalize);
}

Expand All @@ -67,35 +63,29 @@ function generateTrigonalPlanar() {
}

function generatePyramid() {
// vT-3: Vacant Tetrahedron (Trigonal Pyramid) - Official CoSyMlib reference
// CORRECTED: Coordinates centered on metal position before normalization
// Metal center in cosymlib: [0, 0, -0.301511]
// vT-3: Vacant Tetrahedron (Trigonal Pyramid) - Official CoSyMlib reference (normalized)
return [
[1.137070, 0.000000, 0.402015],
[-0.568535, 0.984732, 0.402015],
[-0.568535, -0.984732, 0.402015]
[1.137070, -0.000000, 0.100504],
[-0.568535, 0.984732, 0.100504],
[-0.568535, -0.984732, 0.100504]
].map(normalize);
}

function generateFacTrivacantOctahedron() {
// fac-vOC-3: fac-Trivacant Octahedron - Official CoSyMlib reference
// CORRECTED: Coordinates centered on metal position before normalization
// Metal center in cosymlib: [-0.333333, -0.333333, -0.333333]
// fac-vOC-3: fac-Trivacant Octahedron - Official CoSyMlib reference (normalized)
return [
[1.333333, 0.000000, 0.000000],
[0.000000, 1.333333, 0.000000],
[0.000000, 0.000000, 1.333333]
[1.000000, -0.333333, -0.333333],
[-0.333333, 1.000000, -0.333333],
[-0.333333, -0.333333, 1.000000]
].map(normalize);
}

function generateTShaped() {
// mer-vOC-3: mer-Trivacant Octahedron (T-shaped) - Official CoSyMlib reference
// CORRECTED: Coordinates centered on metal position before normalization
// Metal center in cosymlib: [0, -0.301511, 0]
// mer-vOC-3: mer-Trivacant Octahedron (T-shaped) - Official CoSyMlib reference (normalized)
return [
[1.206045, 0.000000, 0.000000],
[0.000000, 1.206045, 0.000000],
[-1.206045, 0.000000, 0.000000]
[1.206045, -0.301511, 0.000000],
[0.000000, 0.904534, 0.000000],
[-1.206045, -0.301511, 0.000000]
].map(normalize);
}

Expand All @@ -120,28 +110,22 @@ function generateSquarePlanar() {
}

function generateSeesaw() {
// SS-4: Seesaw (cis-divacant octahedron) - Official CoSyMlib reference
// CORRECTED: Coordinates centered on metal position before normalization
// Metal center in cosymlib: [-0.235702, -0.235702, 0]
// After centering: vertices form orthogonal seesaw geometry
// SS-4: Seesaw (cis-divacant octahedron) - Official CoSyMlib reference (normalized)
return [
[0.000000, 0.000000, -1.178511], // axial -z
[1.178511, 0.000000, 0.000000], // equatorial +x
[0.000000, 1.178511, 0.000000], // equatorial +y
[0.000000, 0.000000, 1.178511] // axial +z
[-0.235702, -0.235702, -1.178511],
[0.942809, -0.235702, 0.000000],
[-0.235702, 0.942809, 0.000000],
[-0.235702, -0.235702, 1.178511]
].map(normalize);
}

function generateAxialVacantTBPY() {
// vTBPY-4: Axially Vacant Trigonal Bipyramid - Official CoSyMlib reference
// CORRECTED: Coordinates centered on metal position before normalization
// Metal center in cosymlib: [0, 0, 0.229416]
// After centering: axial at -z, three equatorial in xy-plane
// vTBPY-4: Axially Vacant Trigonal Bipyramid - Official CoSyMlib reference (normalized)
return [
[0.000000, 0.000000, -1.147079], // axial -z
[1.147079, 0.000000, 0.000000], // equatorial +x
[-0.573539, 0.993399, 0.000000], // equatorial 120°
[-0.573539, -0.993399, 0.000000] // equatorial 240°
[0.000000, -0.000000, -0.917663],
[1.147079, -0.000000, 0.229416],
[-0.573539, 0.993399, 0.229416],
[-0.573539, -0.993399, 0.229416]
].map(normalize);
}

Expand All @@ -157,16 +141,13 @@ function generatePentagon() {
}

function generateSquarePyramid() {
// vOC-5: Vacant Octahedron (Johnson Square Pyramid J1) - Official CoSyMlib reference
// CORRECTED: Coordinates centered on metal position before normalization
// Metal center in cosymlib: [0, 0, 0.185695]
// After centering: apex at -z, four base vertices in xy-plane
// vOC-5: Vacant Octahedron (Johnson Square Pyramid J1) - Official CoSyMlib reference (normalized)
return [
[0.000000, 0.000000, -1.114172], // apex -z
[1.114172, 0.000000, 0.000000], // base +x
[0.000000, 1.114172, 0.000000], // base +y
[-1.114172, 0.000000, 0.000000], // base -x
[0.000000, -1.114172, 0.000000] // base -y
[0.000000, -0.000000, -0.928477],
[1.114172, -0.000000, 0.185695],
[0.000000, 1.114172, 0.185695],
[-1.114172, 0.000000, 0.185695],
[-0.000000, -1.114172, 0.185695]
].map(normalize);
}

Expand Down Expand Up @@ -215,16 +196,14 @@ function generateHexagon() {
}

function generatePentagonalPyramid() {
// PPY-6: Pentagonal Pyramid - Official CoSyMlib reference
// CORRECTED: Coordinates centered on metal position before normalization
// Metal center in cosymlib: [0, 0, 0.156174]
// PPY-6: Pentagonal Pyramid - Official CoSyMlib reference (normalized)
return [
[0.000000, 0.000000, -1.093217], // apex -z
[1.093216, 0.000000, 0.000000], // base vertex
[0.337822, 1.039711, 0.000000],
[-0.884431, 0.642576, 0.000000],
[-0.884431, -0.642576, 0.000000],
[0.337822, -1.039711, 0.000000]
[0.000000, -0.000000, -0.937043],
[1.093216, -0.000000, 0.156174],
[0.337822, 1.039711, 0.156174],
[-0.884431, 0.642576, 0.156174],
[-0.884431, -0.642576, 0.156174],
[0.337822, -1.039711, 0.156174]
].map(normalize);
}

Expand Down Expand Up @@ -253,16 +232,14 @@ function generateTrigonalPrism() {
}

function generateJohnsonPentagonalPyramid6() {
// JPPY-6: Johnson Pentagonal Pyramid (J2) - Official CoSyMlib reference
// CORRECTED: Coordinates centered on metal position before normalization
// Metal center in cosymlib: [0, 0, 0.101206]
return [
[1.146282, 0.000000, 0.000000], // base vertex
[0.354221, 1.090179, 0.000000],
[-0.927361, 0.673768, 0.000000],
[-0.927361, -0.673768, 0.000000],
[0.354221, -1.090179, 0.000000],
[0.000000, 0.000000, -0.708441] // apex -z
// JPPY-6: Johnson Pentagonal Pyramid (J2) - Official CoSyMlib reference (normalized)
return [
[1.146282, -0.000000, 0.101206],
[0.354221, 1.090179, 0.101206],
[-0.927361, 0.673768, 0.101206],
[-0.927361, -0.673768, 0.101206],
[0.354221, -1.090179, 0.101206],
[0.000000, -0.000000, -0.607235]
].map(normalize);
}

Expand Down
Loading