Close Menu
    Facebook X (Twitter) Instagram
    Articles Stock
    • Home
    • Technology
    • AI
    • Pages
      • About us
      • Contact us
      • Disclaimer For Articles Stock
      • Privacy Policy
      • Terms and Conditions
    Facebook X (Twitter) Instagram
    Articles Stock
    AI

    A Coding Implementation for Constructing and Analyzing Crystal Buildings Utilizing Pymatgen for Symmetry Evaluation, Part Diagrams, Floor Technology, and Supplies Venture Integration

    Naveed AhmadBy Naveed Ahmad22/03/2026Updated:22/03/2026No Comments3 Mins Read
    blog banner23 63


    header("11. DISORDERED STRUCTURE -> ORDERED APPROXIMATION")
    
    
    disordered = Construction(
       Lattice.cubic(3.6),
       [{"Cu": 0.5, "Au": 0.5}],
       [[0, 0, 0]],
    )
    
    
    disordered.make_supercell([2, 2, 2])
    
    
    print("Disordered composition:", disordered.composition)
    
    
    strive:
       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}: formulation={s.composition.formulation}, websites={len(s)}")
    
    
    besides Exception as e:
       print("Ordering step skipped because of transformation problem:", 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 formulation:", water.composition.formulation)
    
    
    print("Water heart of mass:", np.spherical(water.center_of_mass, 4))
    
    
    print(
       "O-H bond lengths:",
       spherical(water.get_distance(0, 1), 4),
       spherical(water.get_distance(0, 2), 4),
    )
    
    
    header("13. CIF EXPORT")
    
    
    output_dir = "/content material/pymatgen_tutorial_outputs"
    
    
    os.makedirs(output_dir, exist_ok=True)
    
    
    si_cif = os.path.be part of(output_dir, "si.cif")
    nacl_cif = os.path.be part of(output_dir, "nacl.cif")
    slab_cif = os.path.be part of(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 identify, s in [
       ("Si", si),
       ("NaCl", nacl),
       ("LiFePO4-like", li_fe_po4),
       ("Si slab", slab),
    ]:
    
    
       sga = SpacegroupAnalyzer(s, symprec=0.1)
    
    
       rows.append(
           {
               "identify": identify,
               "formulation": s.composition.reduced_formula,
               "websites": len(s),
               "volume_A3": spherical(s.quantity, 4),
               "density_g_cm3": spherical(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
    
    
    strive:
       from google.colab import userdata
       mp_api_key = userdata.get("MP_API_KEY")
    besides Exception:
       go
    
    
    if not mp_api_key:
       mp_api_key = os.environ.get("MP_API_KEY", None)
    
    
    if mp_api_key:
    
    
       strive:
           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.abstract.search(
                   material_ids=["mp-149"],
                   fields=[
                       "material_id",
                       "formula_pretty",
                       "band_gap",
                       "energy_above_hull",
                       "is_stable",
                   ],
               )
    
    
           print("Fetched mp-149 from Supplies Venture")
    
    
           print("Method:", mp_struct.composition.reduced_formula)
    
    
           print("Websites:", 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,
                   }
               )
    
    
       besides Exception as e:
           print("Supplies Venture API part skipped because of runtime/API problem:", e)
    
    
    else:
       print("No MP_API_KEY discovered. Skipping dwell Supplies Venture question.")
       print("In Colab, add a secret named MP_API_KEY or set os.environ['MP_API_KEY'].")
    
    
    header("16. SAVE SUMMARY JSON")
    
    
    abstract = {
       "constructions": {
           "Si": {
               "formulation": si.composition.reduced_formula,
               "websites": len(si),
               "spacegroup": SpacegroupAnalyzer(si, symprec=0.1).get_space_group_symbol(),
           },
           "NaCl": {
               "formulation": nacl.composition.reduced_formula,
               "websites": len(nacl),
               "spacegroup": SpacegroupAnalyzer(nacl, symprec=0.1).get_space_group_symbol(),
           },
           "LiFePO4-like": {
               "formulation": li_fe_po4.composition.reduced_formula,
               "websites": len(li_fe_po4),
               "spacegroup": SpacegroupAnalyzer(li_fe_po4, symprec=0.1).get_space_group_symbol(),
           },
       },
       "phase_diagram": {
           "goal": goal.composition.reduced_formula,
           "energy_above_hull_eV_atom": float(e_above_hull),
       },
       "recordsdata": {
           "si_cif": si_cif,
           "nacl_cif": nacl_cif,
           "slab_cif": slab_cif,
       },
    }
    
    
    json_path = os.path.be part of(output_dir, "abstract.json")
    
    
    with open(json_path, "w") as f:
       json.dump(abstract, f, indent=2)
    
    
    print("Saved:", json_path)
    
    
    header("17. FINAL NOTES")
    
    
    print("Tutorial accomplished efficiently.")
    
    
    print("Artifacts are saved in:", output_dir)
    
    
    print("Now you can prolong this pocket book to parse VASP outputs, question MP at scale, or construct defect/workflow pipelines.")



    Source link

    Naveed Ahmad

    Related Posts

    An unique tour of Amazon’s Trainium lab, the chip that is gained over Anthropic, OpenAI, even AppleĀ 

    22/03/2026

    Are AI tokens the brand new signing bonus or only a price of doing enterprise?

    22/03/2026

    Safely Deploying ML Fashions to Manufacturing: 4 Managed Methods (A/B, Canary, Interleaved, Shadow Testing)

    22/03/2026
    Leave A Reply Cancel Reply

    Categories
    • AI
    Recent Comments
      Facebook X (Twitter) Instagram Pinterest
      © 2026 ThemeSphere. Designed by ThemeSphere.

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