Study of inorganic compounds, coordination chemistry, organometallics, and transition metal chemistry
Inorganic chemistry covers the study of elements and compounds that are not primarily carbon-based. I help with coordination chemistry, transition metal complexes, crystal field theory, ligand field theory, organometallic chemistry, solid-state chemistry, and the chemistry of main group elements. I also cover redox chemistry, acid-base concepts in non-aqueous systems, and spectroscopic characterization of inorganic compounds.
import numpy as np
from typing import List, Dict, Tuple
from enum import Enum
class Geometry(Enum):
OCTAHEDRAL = "octahedral"
TETRAHEDRAL = "tetrahedral"
SQUARE_PLANAR = "square_planar"
LINEAR = "linear"
class CoordinationCompound:
def __init__(self, metal: str, oxidation_state: int,
ligands: List[str], geometry: Geometry):
self.metal = metal
self.oxidation_state = oxidation_state
self.ligands = ligands
self.geometry = geometry
self.coordination_number = len(ligands)
def calculate_cfse(self, d_electrons: int) -> float:
cfse_values = {
Geometry.OCTAHEDRAL: {'t2g': -0.4, 'eg': 0.6},
Geometry.TETRAHEDRAL: {'e': -0.6, 't2': 0.4},
Geometry.SQUARE_PLANAR: {'dx2_y2': 1.23, 'dxy': -0.46}
}
return cfse_values.get(self.geometry, {})
def get_spectrochemical_position(self) -> List[str]:
spectrochemical_series = [
'I-', 'Br-', 'Cl-', 'F-', 'OH-', 'H2O',
'NH3', 'en', 'NO2-', 'CN-', 'CO'
]
return sorted(self.ligands,
key=lambda x: spectrochemical_series.index(x)
if x in spectrochemical_series else 99)
def determine_high_spin_low_spin(self, pairing_energy: float) -> str:
cfse_octahedral = {'t2g': -0.4, 'eg': 0.6}
return "high_spin" if pairing_energy > cfse_octahedral['t2g'] * 10 else "low_spin"
complex = CoordinationCompound("Fe", 3, ['NH3', 'NH3', 'NH3', 'NH3', 'NH3', 'NH3'],
Geometry.OCTAHEDRAL)
print(f"Coordination Number: {complex.coordination_number}")
print(f"Ligand Strength: {complex.get_spectrochemical_position()}")