Close Menu
    Facebook X (Twitter) Instagram
    • Privacy Policy
    • Terms Of Service
    • Social Media Disclaimer
    • DMCA Compliance
    • Anti-Spam Policy
    Facebook X (Twitter) Instagram
    Deep Tech Ledger
    • Home
    • Crypto News
      • Bitcoin
      • Ethereum
      • Altcoins
      • Blockchain
      • DeFi
    • AI News
    • Stock News
    • Learn
      • AI for Beginners
      • AI Tips
      • Make Money with AI
    • Reviews
    • Tools
      • Best AI Tools
      • Crypto Market Cap List
      • Stock Market Overview
      • Market Heatmap
    • Contact
    Deep Tech Ledger
    Home»AI News»A Coding Implementation for Building and Analyzing Crystal Structures Using Pymatgen for Symmetry Analysis, Phase Diagrams, Surface Generation, and Materials Project Integration
    A Coding Implementation for Building and Analyzing Crystal Structures Using Pymatgen for Symmetry Analysis, Phase Diagrams, Surface Generation, and Materials Project Integration
    AI News

    A Coding Implementation for Building and Analyzing Crystal Structures Using Pymatgen for Symmetry Analysis, Phase Diagrams, Surface Generation, and Materials Project Integration

    March 22, 20263 Mins Read
    Share
    Facebook Twitter LinkedIn Pinterest Email
    murf


    header(“11. DISORDERED STRUCTURE -> ORDERED APPROXIMATION”)

    disordered = Structure(
    Lattice.cubic(3.6),
    [{“Cu”: 0.5, “Au”: 0.5}],
    [[0, 0, 0]],
    )

    disordered.make_supercell([2, 2, 2])

    print(“Disordered composition:”, disordered.composition)

    coinbase

    try:
    disordered_oxi = disordered.copy()
    disordered_oxi.add_oxidation_state_by_element({“Cu”: 1, “Au”: 1})

    ordered_transform = OrderDisorderedStructureTransformation()

    ordered_candidates = ordered_transform.apply_transformation(
    disordered_oxi,
    return_ranked_list=3,
    )

    for idx, cand in enumerate(ordered_candidates):
    s = cand[“structure”].copy()
    s.remove_oxidation_states()
    print(f”Ordered candidate {idx+1}: formula={s.composition.formula}, sites={len(s)}”)

    except Exception as e:
    print(“Ordering step skipped due to transformation issue:”, e)

    header(“12. MOLECULE SUPPORT”)

    water = Molecule(
    [“O”, “H”, “H”],
    [
    [0.0, 0.0, 0.0],
    [0.7586, 0.0, 0.5043],
    [-0.7586, 0.0, 0.5043],
    ],
    )

    print(“Water formula:”, water.composition.formula)

    print(“Water center of mass:”, np.round(water.center_of_mass, 4))

    print(
    “O-H bond lengths:”,
    round(water.get_distance(0, 1), 4),
    round(water.get_distance(0, 2), 4),
    )

    header(“13. CIF EXPORT”)

    output_dir = “/content/pymatgen_tutorial_outputs”

    os.makedirs(output_dir, exist_ok=True)

    si_cif = os.path.join(output_dir, “si.cif”)
    nacl_cif = os.path.join(output_dir, “nacl.cif”)
    slab_cif = os.path.join(output_dir, “si_111_slab.cif”)

    CifWriter(si).write_file(si_cif)
    CifWriter(nacl).write_file(nacl_cif)
    CifWriter(slab).write_file(slab_cif)

    print(“Saved:”, si_cif)
    print(“Saved:”, nacl_cif)
    print(“Saved:”, slab_cif)

    header(“14. DATAFRAME SUMMARY”)

    rows = []

    for name, s in [
    (“Si”, si),
    (“NaCl”, nacl),
    (“LiFePO4-like”, li_fe_po4),
    (“Si slab”, slab),
    ]:

    sga = SpacegroupAnalyzer(s, symprec=0.1)

    rows.append(
    {
    “name”: name,
    “formula”: s.composition.reduced_formula,
    “sites”: len(s),
    “volume_A3”: round(s.volume, 4),
    “density_g_cm3”: round(float(s.density), 4),
    “spacegroup”: sga.get_space_group_symbol(),
    “sg_number”: sga.get_space_group_number(),
    }
    )

    df = pd.DataFrame(rows)

    print(df)

    header(“15. OPTIONAL MATERIALS PROJECT API ACCESS”)

    mp_api_key = None

    try:
    from google.colab import userdata
    mp_api_key = userdata.get(“MP_API_KEY”)
    except Exception:
    pass

    if not mp_api_key:
    mp_api_key = os.environ.get(“MP_API_KEY”, None)

    if mp_api_key:

    try:
    from pymatgen.ext.matproj import MPRester

    with MPRester(mp_api_key) as mpr:

    mp_struct = mpr.get_structure_by_material_id(“mp-149”)

    summary_docs = mpr.summary.search(
    material_ids=[“mp-149”],
    fields=[
    “material_id”,
    “formula_pretty”,
    “band_gap”,
    “energy_above_hull”,
    “is_stable”,
    ],
    )

    print(“Fetched mp-149 from Materials Project”)

    print(“Formula:”, mp_struct.composition.reduced_formula)

    print(“Sites:”, len(mp_struct))

    if len(summary_docs) > 0:

    doc = summary_docs[0]

    print(
    {
    “material_id”: str(doc.material_id),
    “formula_pretty”: doc.formula_pretty,
    “band_gap”: doc.band_gap,
    “energy_above_hull”: doc.energy_above_hull,
    “is_stable”: doc.is_stable,
    }
    )

    except Exception as e:
    print(“Materials Project API section skipped due to runtime/API issue:”, e)

    else:
    print(“No MP_API_KEY found. Skipping live Materials Project query.”)
    print(“In Colab, add a secret named MP_API_KEY or set os.environ[‘MP_API_KEY’].”)

    header(“16. SAVE SUMMARY JSON”)

    summary = {
    “structures”: {
    “Si”: {
    “formula”: si.composition.reduced_formula,
    “sites”: len(si),
    “spacegroup”: SpacegroupAnalyzer(si, symprec=0.1).get_space_group_symbol(),
    },
    “NaCl”: {
    “formula”: nacl.composition.reduced_formula,
    “sites”: len(nacl),
    “spacegroup”: SpacegroupAnalyzer(nacl, symprec=0.1).get_space_group_symbol(),
    },
    “LiFePO4-like”: {
    “formula”: li_fe_po4.composition.reduced_formula,
    “sites”: len(li_fe_po4),
    “spacegroup”: SpacegroupAnalyzer(li_fe_po4, symprec=0.1).get_space_group_symbol(),
    },
    },
    “phase_diagram”: {
    “target”: target.composition.reduced_formula,
    “energy_above_hull_eV_atom”: float(e_above_hull),
    },
    “files”: {
    “si_cif”: si_cif,
    “nacl_cif”: nacl_cif,
    “slab_cif”: slab_cif,
    },
    }

    json_path = os.path.join(output_dir, “summary.json”)

    with open(json_path, “w”) as f:
    json.dump(summary, f, indent=2)

    print(“Saved:”, json_path)

    header(“17. FINAL NOTES”)

    print(“Tutorial completed successfully.”)

    print(“Artifacts are saved in:”, output_dir)

    print(“You can now extend this notebook to parse VASP outputs, query MP at scale, or build defect/workflow pipelines.”)



    Source link

    notion
    Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
    CryptoExpert
    • Website

    I’m someone who’s deeply curious about crypto and artificial intelligence. I created this site to share what I’m learning, break down complex ideas, and keep people updated on what’s happening in crypto and AI—without the unnecessary hype.

    Related Posts

    When it comes to predicting people’s preferences, it pays to consider “the power of three” | MIT News

    June 16, 2026

    85% of IT teams claim every AI agent is under control. Only 42% actually know who owns them.

    June 15, 2026

    Automating portfolio trading with AI

    June 14, 2026

    Anthropic Disables Claude Fable 5 and Mythos 5 After US Government Order

    June 13, 2026
    Add A Comment
    Leave A Reply Cancel Reply

    notion
    Latest Posts

    Tesla’s AI5 Chip Recently Completed Tape-Out. Here’s Why This Could Be the Most Important Development in the Company’s Transition From Automaker to AI Giant.

    June 16, 2026

    When it comes to predicting people’s preferences, it pays to consider “the power of three” | MIT News

    June 16, 2026

    Bitcoin.com Wallet Adds FixedFloat as a Swap Provider for Flexible Crypto Swaps

    June 16, 2026

    Bybit Launches RWA Earn With Plume And DigiFT For Tokenized Yield Access

    June 16, 2026

    You’re Not Behind (Yet) : Master AI In Just 17 Minutes!

    June 16, 2026
    synthesia
    LEGAL INFORMATION
    • Privacy Policy
    • Terms Of Service
    • Social Media Disclaimer
    • DMCA Compliance
    • Anti-Spam Policy
    Top Insights

    I Tried 50+ AI Engineering Courses. Here Are the Top 5

    June 17, 2026

    5 Etsy + ChatGPT AI Hacks That Literally Save You Hours (Beginner Friendly Tutorial + Free Prompts)

    June 17, 2026
    frase
    Facebook X (Twitter) Instagram Pinterest
    © 2026 DeepTechLedger.com - All rights reserved.

    Type above and press Enter to search. Press Esc to cancel.