{"id":106991,"date":"2026-07-26T19:41:37","date_gmt":"2026-07-26T19:41:37","guid":{"rendered":"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/"},"modified":"2026-07-26T19:41:37","modified_gmt":"2026-07-26T19:41:37","slug":"fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics","status":"publish","type":"post","link":"https:\/\/youzum.net\/ja\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/","title":{"rendered":"FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics"},"content":{"rendered":"<p class=\"wp-block-paragraph\">In this tutorial, we explore<a href=\"https:\/\/github.com\/facebookresearch\/fairchem\"> <strong>FAIRChem v2<\/strong><\/a> and the UMA universal machine-learning interatomic potential as a unified framework for atomistic simulation across molecular chemistry, catalysis, and inorganic materials. We configure an environment, authenticate with Hugging Face to access the gated UMA model weights, and initialize task-specific calculators for the omol, oc20, and omat domains. We then apply the same pretrained potential to a broad set of computational chemistry workflows, including single-point energy and force prediction, molecular geometry optimization, spin-state comparison, reaction-energy estimation, vibrational analysis, surface adsorption, crystal-cell relaxation, equation-of-state fitting, molecular dynamics, and potential-energy surface scanning. Throughout the tutorial, we integrate FAIRChem with the Atomic Simulation Environment to manage atomic structures, optimizers, constraints, thermodynamic calculations, and trajectory analysis while using GPU acceleration whenever it is available.<\/p>\n<div class=\"dm-code-snippet dark dm-normal-version default no-background-mobile\">\n<div class=\"control-language\">\n<div class=\"dm-buttons\">\n<div class=\"dm-buttons-left\">\n<div class=\"dm-button-snippet red-button\"><\/div>\n<div class=\"dm-button-snippet orange-button\"><\/div>\n<div class=\"dm-button-snippet green-button\"><\/div>\n<\/div>\n<div class=\"dm-buttons-right\"><a><span class=\"dm-copy-text\">Copy Code<\/span><span class=\"dm-copy-confirmed\">Copied<\/span><span class=\"dm-error-message\">Use a different Browser<\/span><\/a><\/div>\n<\/div>\n<pre class=\"no-line-numbers\"><code class=\"no-wrap language-php\">import importlib.util, subprocess, sys, os\ndef _pip(*pkgs):\n   subprocess.check_call([sys.executable, \"-m\", \"pip\", \"install\", \"-q\", *pkgs])\nif importlib.util.find_spec(\"fairchem\") is None:\n   print(\"&gt;&gt; Installing fairchem-core, ase, and helpers (takes ~2-4 min)...\")\n   _pip(\"fairchem-core\", \"ase\", \"matplotlib\", \"huggingface_hub\")\n   print(\"&gt;&gt; Installation done.\")\nelse:\n   print(\"&gt;&gt; fairchem already installed.\")\nfrom huggingface_hub import login, whoami\ndef hf_authenticate():\n   token = None\n   try:\n       from google.colab import userdata\n       token = userdata.get(\"HF_TOKEN\")\n   except Exception:\n       pass\n   token = token or os.environ.get(\"HF_TOKEN\")\n   try:\n       whoami()\n       print(\"&gt;&gt; Already authenticated with Hugging Face.\")\n       return\n   except Exception:\n       pass\n   if token is None:\n       from getpass import getpass\n       token = getpass(\"Paste your Hugging Face access token: \").strip()\n   login(token=token)\n   print(\"&gt;&gt; Hugging Face login OK.\")\nhf_authenticate()\nimport numpy as np\nimport torch\nimport matplotlib.pyplot as plt\nfrom fairchem.core import pretrained_mlip, FAIRChemCalculator\nDEVICE = \"cuda\" if torch.cuda.is_available() else \"cpu\"\nprint(f\"&gt;&gt; Using device: {DEVICE}\")\nMODEL = \"uma-s-1p2\"\npredictor = pretrained_mlip.get_predict_unit(MODEL, device=DEVICE)\ncalc_mol  = FAIRChemCalculator(predictor, task_name=\"omol\")\ncalc_cat  = FAIRChemCalculator(predictor, task_name=\"oc20\")\ncalc_mat  = FAIRChemCalculator(predictor, task_name=\"omat\")\nprint(f\"&gt;&gt; Loaded {MODEL} with omol \/ oc20 \/ omat calculators.\")\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"wp-block-paragraph\">We install the required FAIRChem, ASE, visualization, and Hugging Face dependencies while ensuring the setup remains safe to rerun in Google Colab. We authenticate with Hugging Face to access the gated UMA model weights and automatically detect whether GPU acceleration is available. We then load the UMA predictor and create separate calculators for molecular, catalysis, and materials simulations.<\/p>\n<div class=\"dm-code-snippet dark dm-normal-version default no-background-mobile\">\n<div class=\"control-language\">\n<div class=\"dm-buttons\">\n<div class=\"dm-buttons-left\">\n<div class=\"dm-button-snippet red-button\"><\/div>\n<div class=\"dm-button-snippet orange-button\"><\/div>\n<div class=\"dm-button-snippet green-button\"><\/div>\n<\/div>\n<div class=\"dm-buttons-right\"><a><span class=\"dm-copy-text\">Copy Code<\/span><span class=\"dm-copy-confirmed\">Copied<\/span><span class=\"dm-error-message\">Use a different Browser<\/span><\/a><\/div>\n<\/div>\n<pre class=\"no-line-numbers\"><code class=\"no-wrap language-php\">from ase.build import molecule\nfrom ase import Atoms\nprint(\"n\" + \"=\"*70)\nprint(\"SECTION 2: Single-point energetics of water (omol task)\")\nprint(\"=\"*70)\nh2o = molecule(\"H2O\")\nh2o.info.update({\"charge\": 0, \"spin\": 1})\nh2o.calc = calc_mol\nE_h2o = h2o.get_potential_energy()\nF_h2o = h2o.get_forces()\nprint(f\"E(H2O)            = {E_h2o:.4f} eV\")\nprint(f\"Max |force|       = {np.abs(F_h2o).max():.4f} eV\/A\")\ndef atom_energy(symbol, spin):\n   a = Atoms(symbol, positions=[[0, 0, 0]])\n   a.info.update({\"charge\": 0, \"spin\": spin})\n   a.calc = calc_mol\n   return a.get_potential_energy()\nE_O = atom_energy(\"O\", spin=3)\nE_H = atom_energy(\"H\", spin=2)\nE_atomization = -(E_h2o - E_O - 2 * E_H)\nprint(f\"Atomization energy of H2O = {E_atomization:.3f} eV \"\n     f\"(experiment ~ 9.5 eV incl. ZPE effects)\")\nfrom ase.optimize import LBFGS\nprint(\"n\" + \"=\"*70)\nprint(\"SECTION 3: Relaxing a deliberately distorted water molecule\")\nprint(\"=\"*70)\nh2o_bad = molecule(\"H2O\")\nh2o_bad.positions[1] += [0.25, -0.10, 0.05]\nh2o_bad.info.update({\"charge\": 0, \"spin\": 1})\nh2o_bad.calc = calc_mol\nopt = LBFGS(h2o_bad, logfile=None)\nenergies_opt = []\nopt.attach(lambda: energies_opt.append(h2o_bad.get_potential_energy()))\nopt.run(fmax=0.01, steps=200)\nd_OH = h2o_bad.get_distance(0, 1)\nang  = h2o_bad.get_angle(1, 0, 2)\nprint(f\"Converged in {opt.get_number_of_steps()} steps\")\nprint(f\"O-H bond length   = {d_OH:.3f} A   (expt ~0.958 A)\")\nprint(f\"H-O-H angle       = {ang:.1f} deg (expt ~104.5 deg)\")\nplt.figure(figsize=(5, 3.2))\nplt.plot(energies_opt, \"o-\")\nplt.xlabel(\"Optimizer step\"); plt.ylabel(\"Energy (eV)\")\nplt.title(\"H2O geometry optimization\"); plt.tight_layout(); plt.show()\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"wp-block-paragraph\">We use the molecular UMA calculator to evaluate the energy, atomic forces, and atomization energy of a water molecule. We define isolated hydrogen and oxygen reference atoms with the correct spin multiplicities to construct the atomization-energy calculation. We then distort the water geometry, relax it with the LBFGS optimizer, and analyze the converged bond length, bond angle, and energy trajectory.<\/p>\n<div class=\"dm-code-snippet dark dm-normal-version default no-background-mobile\">\n<div class=\"control-language\">\n<div class=\"dm-buttons\">\n<div class=\"dm-buttons-left\">\n<div class=\"dm-button-snippet red-button\"><\/div>\n<div class=\"dm-button-snippet orange-button\"><\/div>\n<div class=\"dm-button-snippet green-button\"><\/div>\n<\/div>\n<div class=\"dm-buttons-right\"><a><span class=\"dm-copy-text\">Copy Code<\/span><span class=\"dm-copy-confirmed\">Copied<\/span><span class=\"dm-error-message\">Use a different Browser<\/span><\/a><\/div>\n<\/div>\n<pre class=\"no-line-numbers\"><code class=\"no-wrap language-php\">print(\"n\" + \"=\"*70)\nprint(\"SECTION 4: CH2 singlet-triplet gap (UMA is spin-aware!)\")\nprint(\"=\"*70)\nsinglet = molecule(\"CH2_s1A1d\"); singlet.info.update({\"charge\": 0, \"spin\": 1})\ntriplet = molecule(\"CH2_s3B1d\"); triplet.info.update({\"charge\": 0, \"spin\": 3})\nsinglet.calc = FAIRChemCalculator(predictor, task_name=\"omol\")\ntriplet.calc = FAIRChemCalculator(predictor, task_name=\"omol\")\ngap = triplet.get_potential_energy() - singlet.get_potential_energy()\nprint(f\"E(triplet) - E(singlet) = {gap:.3f} eV  \"\n     f\"(negative =&gt; triplet ground state; expt ~ -0.39 eV)\")\nprint(\"n\" + \"=\"*70)\nprint(\"SECTION 5: Reaction energy of CH4 + 2 O2 -&gt; CO2 + 2 H2O\")\nprint(\"=\"*70)\ndef relaxed_energy(name, spin=1):\n   m = molecule(name)\n   m.info.update({\"charge\": 0, \"spin\": spin})\n   m.calc = FAIRChemCalculator(predictor, task_name=\"omol\")\n   LBFGS(m, logfile=None).run(fmax=0.02, steps=200)\n   return m.get_potential_energy()\nE = {\n   \"CH4\": relaxed_energy(\"CH4\"),\n   \"O2\":  relaxed_energy(\"O2\", spin=3),\n   \"CO2\": relaxed_energy(\"CO2\"),\n   \"H2O\": relaxed_energy(\"H2O\"),\n}\ndE_rxn = (E[\"CO2\"] + 2*E[\"H2O\"]) - (E[\"CH4\"] + 2*E[\"O2\"])\nprint(f\"Delta E (electronic) = {dE_rxn:.2f} eV = {dE_rxn*96.485:.0f} kJ\/mol\")\nprint(\"Experimental combustion enthalpy ~ -890 kJ\/mol (ZPE\/thermal not included here)\")\nfrom ase.vibrations import Vibrations\nprint(\"n\" + \"=\"*70)\nprint(\"SECTION 6: Vibrational frequencies of relaxed H2O\")\nprint(\"=\"*70)\nvib = Vibrations(h2o_bad, name=\"vib_h2o\")\nvib.run()\nfreqs = np.real(vib.get_frequencies())\nreal_modes = [f for f in freqs if f &gt; 200]\nprint(\"Vibrational modes (cm^-1):\", \", \".join(f\"{f:.0f}\" for f in real_modes))\nprint(\"Experimental H2O: 1595 (bend), 3657 (sym stretch), 3756 (asym stretch)\")\nprint(f\"Zero-point energy = {vib.get_zero_point_energy():.3f} eV\")\nvib.clean()\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"wp-block-paragraph\">We compare the singlet and triplet electronic states of methylene to calculate its spin-state energy gap. We relax methane, oxygen, carbon dioxide, and water before combining their predicted energies to estimate the electronic reaction energy of methane combustion. We also perform a finite-difference vibrational analysis of relaxed water to obtain its normal-mode frequencies and zero-point energy.<\/p>\n<div class=\"dm-code-snippet dark dm-normal-version default no-background-mobile\">\n<div class=\"control-language\">\n<div class=\"dm-buttons\">\n<div class=\"dm-buttons-left\">\n<div class=\"dm-button-snippet red-button\"><\/div>\n<div class=\"dm-button-snippet orange-button\"><\/div>\n<div class=\"dm-button-snippet green-button\"><\/div>\n<\/div>\n<div class=\"dm-buttons-right\"><a><span class=\"dm-copy-text\">Copy Code<\/span><span class=\"dm-copy-confirmed\">Copied<\/span><span class=\"dm-error-message\">Use a different Browser<\/span><\/a><\/div>\n<\/div>\n<pre class=\"no-line-numbers\"><code class=\"no-wrap language-php\">from ase.build import fcc100, add_adsorbate\nfrom ase.constraints import FixAtoms\nprint(\"n\" + \"=\"*70)\nprint(\"SECTION 7: CO\/Cu(100) relaxation + adsorption energy (oc20 task)\")\nprint(\"=\"*70)\nslab = fcc100(\"Cu\", size=(3, 3, 3), vacuum=8.0, periodic=True)\nslab.set_constraint(FixAtoms(mask=[a.tag &gt; 1 for a in slab]))\nadd_adsorbate(slab, molecule(\"CO\"), height=2.0, position=\"bridge\")\nslab.calc = calc_cat\nopt = LBFGS(slab, logfile=None)\nopt.run(fmax=0.05, steps=300)\nE_slab_ads = slab.get_potential_energy()\nprint(f\"Relaxed CO\/Cu(100) in {opt.get_number_of_steps()} steps, \"\n     f\"E = {E_slab_ads:.3f} eV\")\nclean = fcc100(\"Cu\", size=(3, 3, 3), vacuum=8.0, periodic=True)\nclean.set_constraint(FixAtoms(mask=[a.tag &gt; 1 for a in clean]))\nclean.calc = FAIRChemCalculator(predictor, task_name=\"oc20\")\nLBFGS(clean, logfile=None).run(fmax=0.05, steps=300)\nE_clean = clean.get_potential_energy()\nco = molecule(\"CO\"); co.info.update({\"charge\": 0, \"spin\": 1})\nco.calc = FAIRChemCalculator(predictor, task_name=\"omol\")\nLBFGS(co, logfile=None).run(fmax=0.02, steps=100)\nE_co = co.get_potential_energy()\nE_ads = E_slab_ads - E_clean - E_co\nprint(f\"E(clean slab) = {E_clean:.3f} eV, E(CO gas) = {E_co:.3f} eV\")\nprint(f\"Adsorption energy (naive cycle) = {E_ads:.3f} eV\")\nprint(\"(oc20 uses its own DFT reference scheme; for publication-grade numbers\")\nprint(\" keep all species within a consistent task\/reference framework.)\")\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"wp-block-paragraph\">We construct a periodic Cu(100) slab, place a carbon monoxide molecule at a bridge adsorption site, and constrain the lower copper layers. We relax the adsorbate\u2013surface system with the OC20 calculator and separately optimize the clean slab and gas-phase carbon monoxide references. We then evaluate a pedagogical adsorption-energy cycle while recognizing that OC20 uses a task-specific energy reference convention.<\/p>\n<div class=\"dm-code-snippet dark dm-normal-version default no-background-mobile\">\n<div class=\"control-language\">\n<div class=\"dm-buttons\">\n<div class=\"dm-buttons-left\">\n<div class=\"dm-button-snippet red-button\"><\/div>\n<div class=\"dm-button-snippet orange-button\"><\/div>\n<div class=\"dm-button-snippet green-button\"><\/div>\n<\/div>\n<div class=\"dm-buttons-right\"><a><span class=\"dm-copy-text\">Copy Code<\/span><span class=\"dm-copy-confirmed\">Copied<\/span><span class=\"dm-error-message\">Use a different Browser<\/span><\/a><\/div>\n<\/div>\n<pre class=\"no-line-numbers\"><code class=\"no-wrap language-php\">from ase.build import bulk\nfrom ase.optimize import FIRE\nfrom ase.filters import FrechetCellFilter\nfrom ase.eos import EquationOfState\nprint(\"n\" + \"=\"*70)\nprint(\"SECTION 8: BCC iron \u2014 full cell relaxation and bulk modulus (omat)\")\nprint(\"=\"*70)\nfe = bulk(\"Fe\", \"bcc\", a=2.9)\nfe.calc = calc_mat\nFIRE(FrechetCellFilter(fe), logfile=None).run(fmax=0.02, steps=300)\na_relaxed = fe.cell.cellpar()[0]\nprint(f\"Relaxed BCC Fe lattice constant = {a_relaxed:.3f} A (expt ~2.866 A)\")\nvolumes, energies = [], []\ncell0 = fe.get_cell()\nfor scale in np.linspace(0.94, 1.06, 9):\n   s = fe.copy()\n   s.set_cell(cell0 * scale, scale_atoms=True)\n   s.calc = FAIRChemCalculator(predictor, task_name=\"omat\")\n   volumes.append(s.get_volume())\n   energies.append(s.get_potential_energy())\neos = EquationOfState(volumes, energies, eos=\"birchmurnaghan\")\nv0, e0, B = eos.fit()\nfrom ase.units import GPa as _GPa\nB_GPa = B \/ _GPa\nprint(f\"Equilibrium volume = {v0:.2f} A^3\/cell\")\nprint(f\"Bulk modulus       = {B_GPa:.0f} GPa (expt ~170 GPa for Fe)\")\nplt.figure(figsize=(5, 3.2))\nplt.plot(volumes, energies, \"o\", label=\"UMA points\")\nvfit = np.linspace(min(volumes), max(volumes), 100)\nplt.plot(vfit, [eos.func(v, *eos.eos_parameters) for v in vfit], \"-\", label=\"BM fit\")\nplt.xlabel(\"Volume (A^3)\"); plt.ylabel(\"Energy (eV)\")\nplt.title(\"BCC Fe equation of state\"); plt.legend(); plt.tight_layout(); plt.show()\nfrom ase import units\nfrom ase.md.langevin import Langevin\nfrom ase.md.velocitydistribution import MaxwellBoltzmannDistribution\nprint(\"n\" + \"=\"*70)\nprint(\"SECTION 9: 0.5 ps Langevin MD of a water molecule at 300 K\")\nprint(\"=\"*70)\nmd_atoms = molecule(\"H2O\")\nmd_atoms.info.update({\"charge\": 0, \"spin\": 1})\nseed = int(np.random.randint(0, np.iinfo(np.int32).max))\nmd_predictor = pretrained_mlip.get_predict_unit(MODEL, device=DEVICE, seed=seed)\nmd_atoms.calc = FAIRChemCalculator(md_predictor, task_name=\"omol\")\nMaxwellBoltzmannDistribution(md_atoms, temperature_K=300)\ndyn = Langevin(md_atoms, timestep=0.5 * units.fs,\n              temperature_K=300, friction=0.01 \/ units.fs)\ntimes, temps, epots, d_oh1 = [], [], [], []\ndef log_md():\n   t = dyn.get_number_of_steps() * 0.5\n   times.append(t)\n   temps.append(md_atoms.get_temperature())\n   epots.append(md_atoms.get_potential_energy())\n   d_oh1.append(md_atoms.get_distance(0, 1))\ndyn.attach(log_md, interval=5)\ndyn.run(steps=1000)\nprint(f\"MD done. &lt;T&gt; = {np.mean(temps[10:]):.0f} K, \"\n     f\"&lt;d(O-H)&gt; = {np.mean(d_oh1):.3f} A\")\nfig, ax = plt.subplots(1, 3, figsize=(12, 3.2))\nax[0].plot(times, temps);  ax[0].set_title(\"Temperature (K)\")\nax[1].plot(times, epots);  ax[1].set_title(\"Potential energy (eV)\")\nax[2].plot(times, d_oh1);  ax[2].set_title(\"O-H bond length (A)\")\nfor a in ax: a.set_xlabel(\"time (fs)\")\nplt.tight_layout(); plt.show()\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"wp-block-paragraph\">We relax the atomic positions and simulation cell of BCC iron using the materials-domain UMA calculator and a Frechet cell filter. We sample energies across a range of compressed and expanded volumes, fit a Birch\u2013Murnaghan equation of state, and estimate the equilibrium volume and bulk modulus. We also run Langevin molecular dynamics for water at 300 K and track its temperature, potential energy, and O\u2013H bond length over time.<\/p>\n<div class=\"dm-code-snippet dark dm-normal-version default no-background-mobile\">\n<div class=\"control-language\">\n<div class=\"dm-buttons\">\n<div class=\"dm-buttons-left\">\n<div class=\"dm-button-snippet red-button\"><\/div>\n<div class=\"dm-button-snippet orange-button\"><\/div>\n<div class=\"dm-button-snippet green-button\"><\/div>\n<\/div>\n<div class=\"dm-buttons-right\"><a><span class=\"dm-copy-text\">Copy Code<\/span><span class=\"dm-copy-confirmed\">Copied<\/span><span class=\"dm-error-message\">Use a different Browser<\/span><\/a><\/div>\n<\/div>\n<pre class=\"no-line-numbers\"><code class=\"no-wrap language-php\">print(\"n\" + \"=\"*70)\nprint(\"SECTION 10: O-H bond stretch scan in water\")\nprint(\"=\"*70)\ndistances = np.linspace(0.7, 2.5, 25)\npes = []\nfor d in distances:\n   a = molecule(\"H2O\")\n   a.info.update({\"charge\": 0, \"spin\": 1})\n   vec = a.positions[1] - a.positions[0]\n   a.positions[1] = a.positions[0] + vec \/ np.linalg.norm(vec) * d\n   a.calc = FAIRChemCalculator(predictor, task_name=\"omol\")\n   pes.append(a.get_potential_energy())\npes = np.array(pes) - min(pes)\nplt.figure(figsize=(5.5, 3.4))\nplt.plot(distances, pes, \"o-\")\nplt.axvline(0.958, ls=\"--\", c=\"gray\", label=\"expt r_e\")\nplt.xlabel(\"O-H distance (A)\"); plt.ylabel(\"Relative energy (eV)\")\nplt.title(\"O-H stretch PES from UMA\"); plt.legend()\nplt.tight_layout(); plt.show()\nprint(\"n\" + \"=\"*70)\nprint(\"TUTORIAL COMPLETE!\")\nprint(\"=\"*70)\nprint(\"\"\"\nNext steps to explore:\n * Swap MODEL to \"uma-m-1p1\" for higher accuracy (needs more GPU memory).\n * Try task_name=\"odac\" with a MOF CIF, or \"omc\" for molecular crystals.\n * Larger MD: fairchem supports multi-GPU inference via workers=N\n   (pip install fairchem-core[extras]).\n * Docs: https:\/\/fair-chem.github.io\/\n\"\"\")\n<\/code><\/pre>\n<\/div>\n<\/div>\n<p class=\"wp-block-paragraph\">We scan the potential-energy surface of water by systematically stretching one O\u2013H bond across a selected distance range. We evaluate the molecular energy at each geometry, normalize the energies relative to the minimum, and visualize the resulting dissociation profile. We conclude the tutorial by identifying higher-accuracy UMA models, additional chemical domains, and larger multi-GPU simulations as possible extensions.<\/p>\n<p class=\"wp-block-paragraph\">In conclusion, we built a complete atomistic simulation workflow around FAIRChem v2 and demonstrated how UMA provides a shared learned potential across chemically distinct domains without requiring a separate model for every task. We used molecular calculations to evaluate energies, forces, atomization behavior, spin gaps, reaction energetics, vibrational modes, and bond-stretch profiles; we used the catalysis domain to relax CO on a Cu(100) surface and examine adsorption energetics; and we used the materials domain to relax BCC iron and estimate its bulk modulus from an equation-of-state fit. We also ran Langevin molecular dynamics to observe finite-temperature structural and energetic fluctuations over time. By combining UMA inference with ASE structure builders, optimizers, filters, vibrational tools, and molecular-dynamics utilities, we established a reusable foundation for extending the workflow to larger molecules, catalytic interfaces, crystalline materials, metal-organic frameworks, molecular crystals, and higher-accuracy UMA model variants.<\/p>\n<p class=\"wp-block-paragraph\">\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n<\/p><p class=\"wp-block-paragraph\">\n<\/p><p class=\"wp-block-paragraph\">Check out the\u00a0<strong><a href=\"https:\/\/github.com\/MARKTECHPOST-AI-MEDIA-INC\/AI-Agents-Projects-Tutorials\/blob\/main\/ML%20Project%20Codes\/fairchem_v2_uma_multidomain_atomistic_simulation_Marktechpost.ipynb\" target=\"_blank\" rel=\"noreferrer noopener\">Full Code here<\/a>.\u00a0<\/strong>Also,\u00a0feel free to follow us on\u00a0<strong><a href=\"https:\/\/x.com\/intent\/follow?screen_name=marktechpost\" target=\"_blank\" rel=\"noreferrer noopener\"><mark>Twitter<\/mark><\/a><\/strong>\u00a0and don\u2019t forget to join our\u00a0<strong><a href=\"https:\/\/www.reddit.com\/r\/machinelearningnews\/\" target=\"_blank\" rel=\"noreferrer noopener\">150k+ML SubReddit<\/a><\/strong>\u00a0and Subscribe to\u00a0<strong><a href=\"https:\/\/www.aidevsignals.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">our Newsletter<\/a><\/strong>. Wait! are you on telegram?\u00a0<strong><a href=\"https:\/\/t.me\/machinelearningresearchnews\" target=\"_blank\" rel=\"noreferrer noopener\">now you can join us on telegram as well.<\/a><\/strong><\/p>\n<p class=\"wp-block-paragraph\">Need to partner with us for promoting your GitHub Repo OR Hugging Face Page OR Product Release OR Webinar etc.?\u00a0<strong><a href=\"https:\/\/forms.gle\/wbash1wF6efRj8G58\" target=\"_blank\" rel=\"noreferrer noopener\"><mark>Connect with us<\/mark><\/a><\/strong><\/p>\n<p>The post <a href=\"https:\/\/www.marktechpost.com\/2026\/07\/26\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/\">FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics<\/a> appeared first on <a href=\"https:\/\/www.marktechpost.com\/\">MarkTechPost<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>In this tutorial, we explore FAIRChem v2 and the UMA universal machine-learning interatomic potential as a unified framework for atomistic simulation across molecular chemistry, catalysis, and inorganic materials. We configure an environment, authenticate with Hugging Face to access the gated UMA model weights, and initialize task-specific calculators for the omol, oc20, and omat domains. We then apply the same pretrained potential to a broad set of computational chemistry workflows, including single-point energy and force prediction, molecular geometry optimization, spin-state comparison, reaction-energy estimation, vibrational analysis, surface adsorption, crystal-cell relaxation, equation-of-state fitting, molecular dynamics, and potential-energy surface scanning. Throughout the tutorial, we integrate FAIRChem with the Atomic Simulation Environment to manage atomic structures, optimizers, constraints, thermodynamic calculations, and trajectory analysis while using GPU acceleration whenever it is available. Copy CodeCopiedUse a different Browser import importlib.util, subprocess, sys, os def _pip(*pkgs): subprocess.check_call([sys.executable, &#8220;-m&#8221;, &#8220;pip&#8221;, &#8220;install&#8221;, &#8220;-q&#8221;, *pkgs]) if importlib.util.find_spec(&#8220;fairchem&#8221;) is None: print(&#8220;&gt;&gt; Installing fairchem-core, ase, and helpers (takes ~2-4 min)&#8230;&#8221;) _pip(&#8220;fairchem-core&#8221;, &#8220;ase&#8221;, &#8220;matplotlib&#8221;, &#8220;huggingface_hub&#8221;) print(&#8220;&gt;&gt; Installation done.&#8221;) else: print(&#8220;&gt;&gt; fairchem already installed.&#8221;) from huggingface_hub import login, whoami def hf_authenticate(): token = None try: from google.colab import userdata token = userdata.get(&#8220;HF_TOKEN&#8221;) except Exception: pass token = token or os.environ.get(&#8220;HF_TOKEN&#8221;) try: whoami() print(&#8220;&gt;&gt; Already authenticated with Hugging Face.&#8221;) return except Exception: pass if token is None: from getpass import getpass token = getpass(&#8220;Paste your Hugging Face access token: &#8220;).strip() login(token=token) print(&#8220;&gt;&gt; Hugging Face login OK.&#8221;) hf_authenticate() import numpy as np import torch import matplotlib.pyplot as plt from fairchem.core import pretrained_mlip, FAIRChemCalculator DEVICE = &#8220;cuda&#8221; if torch.cuda.is_available() else &#8220;cpu&#8221; print(f&#8221;&gt;&gt; Using device: {DEVICE}&#8221;) MODEL = &#8220;uma-s-1p2&#8243; predictor = pretrained_mlip.get_predict_unit(MODEL, device=DEVICE) calc_mol = FAIRChemCalculator(predictor, task_name=&#8221;omol&#8221;) calc_cat = FAIRChemCalculator(predictor, task_name=&#8221;oc20&#8243;) calc_mat = FAIRChemCalculator(predictor, task_name=&#8221;omat&#8221;) print(f&#8221;&gt;&gt; Loaded {MODEL} with omol \/ oc20 \/ omat calculators.&#8221;) We install the required FAIRChem, ASE, visualization, and Hugging Face dependencies while ensuring the setup remains safe to rerun in Google Colab. We authenticate with Hugging Face to access the gated UMA model weights and automatically detect whether GPU acceleration is available. We then load the UMA predictor and create separate calculators for molecular, catalysis, and materials simulations. Copy CodeCopiedUse a different Browser from ase.build import molecule from ase import Atoms print(&#8220;n&#8221; + &#8220;=&#8221;*70) print(&#8220;SECTION 2: Single-point energetics of water (omol task)&#8221;) print(&#8220;=&#8221;*70) h2o = molecule(&#8220;H2O&#8221;) h2o.info.update({&#8220;charge&#8221;: 0, &#8220;spin&#8221;: 1}) h2o.calc = calc_mol E_h2o = h2o.get_potential_energy() F_h2o = h2o.get_forces() print(f&#8221;E(H2O) = {E_h2o:.4f} eV&#8221;) print(f&#8221;Max |force| = {np.abs(F_h2o).max():.4f} eV\/A&#8221;) def atom_energy(symbol, spin): a = Atoms(symbol, positions=[[0, 0, 0]]) a.info.update({&#8220;charge&#8221;: 0, &#8220;spin&#8221;: spin}) a.calc = calc_mol return a.get_potential_energy() E_O = atom_energy(&#8220;O&#8221;, spin=3) E_H = atom_energy(&#8220;H&#8221;, spin=2) E_atomization = -(E_h2o &#8211; E_O &#8211; 2 * E_H) print(f&#8221;Atomization energy of H2O = {E_atomization:.3f} eV &#8221; f&#8221;(experiment ~ 9.5 eV incl. ZPE effects)&#8221;) from ase.optimize import LBFGS print(&#8220;n&#8221; + &#8220;=&#8221;*70) print(&#8220;SECTION 3: Relaxing a deliberately distorted water molecule&#8221;) print(&#8220;=&#8221;*70) h2o_bad = molecule(&#8220;H2O&#8221;) h2o_bad.positions[1] += [0.25, -0.10, 0.05] h2o_bad.info.update({&#8220;charge&#8221;: 0, &#8220;spin&#8221;: 1}) h2o_bad.calc = calc_mol opt = LBFGS(h2o_bad, logfile=None) energies_opt = [] opt.attach(lambda: energies_opt.append(h2o_bad.get_potential_energy())) opt.run(fmax=0.01, steps=200) d_OH = h2o_bad.get_distance(0, 1) ang = h2o_bad.get_angle(1, 0, 2) print(f&#8221;Converged in {opt.get_number_of_steps()} steps&#8221;) print(f&#8221;O-H bond length = {d_OH:.3f} A (expt ~0.958 A)&#8221;) print(f&#8221;H-O-H angle = {ang:.1f} deg (expt ~104.5 deg)&#8221;) plt.figure(figsize=(5, 3.2)) plt.plot(energies_opt, &#8220;o-&#8220;) plt.xlabel(&#8220;Optimizer step&#8221;); plt.ylabel(&#8220;Energy (eV)&#8221;) plt.title(&#8220;H2O geometry optimization&#8221;); plt.tight_layout(); plt.show() We use the molecular UMA calculator to evaluate the energy, atomic forces, and atomization energy of a water molecule. We define isolated hydrogen and oxygen reference atoms with the correct spin multiplicities to construct the atomization-energy calculation. We then distort the water geometry, relax it with the LBFGS optimizer, and analyze the converged bond length, bond angle, and energy trajectory. Copy CodeCopiedUse a different Browser print(&#8220;n&#8221; + &#8220;=&#8221;*70) print(&#8220;SECTION 4: CH2 singlet-triplet gap (UMA is spin-aware!)&#8221;) print(&#8220;=&#8221;*70) singlet = molecule(&#8220;CH2_s1A1d&#8221;); singlet.info.update({&#8220;charge&#8221;: 0, &#8220;spin&#8221;: 1}) triplet = molecule(&#8220;CH2_s3B1d&#8221;); triplet.info.update({&#8220;charge&#8221;: 0, &#8220;spin&#8221;: 3}) singlet.calc = FAIRChemCalculator(predictor, task_name=&#8221;omol&#8221;) triplet.calc = FAIRChemCalculator(predictor, task_name=&#8221;omol&#8221;) gap = triplet.get_potential_energy() &#8211; singlet.get_potential_energy() print(f&#8221;E(triplet) &#8211; E(singlet) = {gap:.3f} eV &#8221; f&#8221;(negative =&gt; triplet ground state; expt ~ -0.39 eV)&#8221;) print(&#8220;n&#8221; + &#8220;=&#8221;*70) print(&#8220;SECTION 5: Reaction energy of CH4 + 2 O2 -&gt; CO2 + 2 H2O&#8221;) print(&#8220;=&#8221;*70) def relaxed_energy(name, spin=1): m = molecule(name) m.info.update({&#8220;charge&#8221;: 0, &#8220;spin&#8221;: spin}) m.calc = FAIRChemCalculator(predictor, task_name=&#8221;omol&#8221;) LBFGS(m, logfile=None).run(fmax=0.02, steps=200) return m.get_potential_energy() E = { &#8220;CH4&#8221;: relaxed_energy(&#8220;CH4&#8221;), &#8220;O2&#8221;: relaxed_energy(&#8220;O2&#8221;, spin=3), &#8220;CO2&#8221;: relaxed_energy(&#8220;CO2&#8221;), &#8220;H2O&#8221;: relaxed_energy(&#8220;H2O&#8221;), } dE_rxn = (E[&#8220;CO2&#8221;] + 2*E[&#8220;H2O&#8221;]) &#8211; (E[&#8220;CH4&#8221;] + 2*E[&#8220;O2&#8243;]) print(f&#8221;Delta E (electronic) = {dE_rxn:.2f} eV = {dE_rxn*96.485:.0f} kJ\/mol&#8221;) print(&#8220;Experimental combustion enthalpy ~ -890 kJ\/mol (ZPE\/thermal not included here)&#8221;) from ase.vibrations import Vibrations print(&#8220;n&#8221; + &#8220;=&#8221;*70) print(&#8220;SECTION 6: Vibrational frequencies of relaxed H2O&#8221;) print(&#8220;=&#8221;*70) vib = Vibrations(h2o_bad, name=&#8221;vib_h2o&#8221;) vib.run() freqs = np.real(vib.get_frequencies()) real_modes = [f for f in freqs if f &gt; 200] print(&#8220;Vibrational modes (cm^-1):&#8221;, &#8220;, &#8220;.join(f&#8221;{f:.0f}&#8221; for f in real_modes)) print(&#8220;Experimental H2O: 1595 (bend), 3657 (sym stretch), 3756 (asym stretch)&#8221;) print(f&#8221;Zero-point energy = {vib.get_zero_point_energy():.3f} eV&#8221;) vib.clean() We compare the singlet and triplet electronic states of methylene to calculate its spin-state energy gap. We relax methane, oxygen, carbon dioxide, and water before combining their predicted energies to estimate the electronic reaction energy of methane combustion. We also perform a finite-difference vibrational analysis of relaxed water to obtain its normal-mode frequencies and zero-point energy. Copy CodeCopiedUse a different Browser from ase.build import fcc100, add_adsorbate from ase.constraints import FixAtoms print(&#8220;n&#8221; + &#8220;=&#8221;*70) print(&#8220;SECTION 7: CO\/Cu(100) relaxation + adsorption energy (oc20 task)&#8221;) print(&#8220;=&#8221;*70) slab = fcc100(&#8220;Cu&#8221;, size=(3, 3, 3), vacuum=8.0, periodic=True) slab.set_constraint(FixAtoms(mask=[a.tag &gt; 1 for a in slab])) add_adsorbate(slab, molecule(&#8220;CO&#8221;), height=2.0, position=&#8221;bridge&#8221;) slab.calc = calc_cat opt = LBFGS(slab, logfile=None) opt.run(fmax=0.05, steps=300) E_slab_ads = slab.get_potential_energy() print(f&#8221;Relaxed CO\/Cu(100) in {opt.get_number_of_steps()} steps, &#8221; f&#8221;E = {E_slab_ads:.3f} eV&#8221;) clean = fcc100(&#8220;Cu&#8221;, size=(3, 3, 3), vacuum=8.0, periodic=True) clean.set_constraint(FixAtoms(mask=[a.tag &gt; 1 for a in clean])) clean.calc = FAIRChemCalculator(predictor, task_name=&#8221;oc20&#8243;) LBFGS(clean, logfile=None).run(fmax=0.05, steps=300) E_clean = clean.get_potential_energy() co = molecule(&#8220;CO&#8221;); co.info.update({&#8220;charge&#8221;: 0, &#8220;spin&#8221;: 1}) co.calc = FAIRChemCalculator(predictor, task_name=&#8221;omol&#8221;) LBFGS(co, logfile=None).run(fmax=0.02, steps=100) E_co = co.get_potential_energy() E_ads = E_slab_ads &#8211; E_clean &#8211; E_co print(f&#8221;E(clean slab) = {E_clean:.3f} eV, E(CO gas) = {E_co:.3f} eV&#8221;) print(f&#8221;Adsorption energy (naive cycle) = {E_ads:.3f} eV&#8221;) print(&#8220;(oc20 uses its own DFT reference scheme; for publication-grade numbers&#8221;) print(&#8221; keep all species within a consistent task\/reference framework.)&#8221;) We construct a periodic<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"pmpro_default_level":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_pvb_checkbox_block_on_post":false,"footnotes":""},"categories":[52,5,7,1],"tags":[],"class_list":["post-106991","post","type-post","status-publish","format-standard","hentry","category-ai-club","category-committee","category-news","category-uncategorized","pmpro-has-access"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics - YouZum<\/title>\n<meta name=\"description\" content=\"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/youzum.net\/ja\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/\" \/>\n<meta property=\"og:locale\" content=\"ja_JP\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics - YouZum\" \/>\n<meta property=\"og:description\" content=\"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19\" \/>\n<meta property=\"og:url\" content=\"https:\/\/youzum.net\/ja\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/\" \/>\n<meta property=\"og:site_name\" content=\"YouZum\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DroneAssociationTH\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-07-26T19:41:37+00:00\" \/>\n<meta name=\"author\" content=\"admin NU\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u57f7\u7b46\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin NU\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593\" \/>\n\t<meta name=\"twitter:data2\" content=\"11\u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/\"},\"author\":{\"name\":\"admin NU\",\"@id\":\"https:\/\/yousum.gpucore.co\/#\/schema\/person\/97fa48242daf3908e4d9a5f26f4a059c\"},\"headline\":\"FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics\",\"datePublished\":\"2026-07-26T19:41:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/\"},\"wordCount\":775,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/yousum.gpucore.co\/#organization\"},\"articleSection\":[\"AI\",\"Committee\",\"News\",\"Uncategorized\"],\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/\",\"url\":\"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/\",\"name\":\"FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics - YouZum\",\"isPartOf\":{\"@id\":\"https:\/\/yousum.gpucore.co\/#website\"},\"datePublished\":\"2026-07-26T19:41:37+00:00\",\"description\":\"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19\",\"breadcrumb\":{\"@id\":\"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/#breadcrumb\"},\"inLanguage\":\"ja\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/youzum.net\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/yousum.gpucore.co\/#website\",\"url\":\"https:\/\/yousum.gpucore.co\/\",\"name\":\"YouSum\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/yousum.gpucore.co\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/yousum.gpucore.co\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"ja\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/yousum.gpucore.co\/#organization\",\"name\":\"Drone Association Thailand\",\"url\":\"https:\/\/yousum.gpucore.co\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/yousum.gpucore.co\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/youzum.net\/wp-content\/uploads\/2024\/11\/tranparent-logo.png\",\"contentUrl\":\"https:\/\/youzum.net\/wp-content\/uploads\/2024\/11\/tranparent-logo.png\",\"width\":300,\"height\":300,\"caption\":\"Drone Association Thailand\"},\"image\":{\"@id\":\"https:\/\/yousum.gpucore.co\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/DroneAssociationTH\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/yousum.gpucore.co\/#\/schema\/person\/97fa48242daf3908e4d9a5f26f4a059c\",\"name\":\"admin NU\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"ja\",\"@id\":\"https:\/\/yousum.gpucore.co\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/youzum.net\/wp-content\/uploads\/avatars\/2\/1746849356-bpfull.png\",\"contentUrl\":\"https:\/\/youzum.net\/wp-content\/uploads\/avatars\/2\/1746849356-bpfull.png\",\"caption\":\"admin NU\"},\"url\":\"https:\/\/youzum.net\/ja\/members\/adminnu\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics - YouZum","description":"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/youzum.net\/ja\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/","og_locale":"ja_JP","og_type":"article","og_title":"FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics - YouZum","og_description":"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19","og_url":"https:\/\/youzum.net\/ja\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/","og_site_name":"YouZum","article_publisher":"https:\/\/www.facebook.com\/DroneAssociationTH\/","article_published_time":"2026-07-26T19:41:37+00:00","author":"admin NU","twitter_card":"summary_large_image","twitter_misc":{"\u57f7\u7b46\u8005":"admin NU","\u63a8\u5b9a\u8aad\u307f\u53d6\u308a\u6642\u9593":"11\u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/#article","isPartOf":{"@id":"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/"},"author":{"name":"admin NU","@id":"https:\/\/yousum.gpucore.co\/#\/schema\/person\/97fa48242daf3908e4d9a5f26f4a059c"},"headline":"FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics","datePublished":"2026-07-26T19:41:37+00:00","mainEntityOfPage":{"@id":"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/"},"wordCount":775,"commentCount":0,"publisher":{"@id":"https:\/\/yousum.gpucore.co\/#organization"},"articleSection":["AI","Committee","News","Uncategorized"],"inLanguage":"ja","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/","url":"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/","name":"FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics - YouZum","isPartOf":{"@id":"https:\/\/yousum.gpucore.co\/#website"},"datePublished":"2026-07-26T19:41:37+00:00","description":"\u0e01\u0e34\u0e08\u0e01\u0e23\u0e23\u0e21\u0e40\u0e01\u0e35\u0e48\u0e22\u0e27\u0e01\u0e31\u0e1a\u0e42\u0e14\u0e23\u0e19","breadcrumb":{"@id":"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/#breadcrumb"},"inLanguage":"ja","potentialAction":[{"@type":"ReadAction","target":["https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/youzum.net\/fairchem-v2-uma-for-multidomain-atomistic-simulation-across-molecules-catalysts-materials-vibrations-and-molecular-dynamics\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/youzum.net\/"},{"@type":"ListItem","position":2,"name":"FAIRChem v2 UMA for Multidomain Atomistic Simulation across Molecules, Catalysts, Materials, Vibrations, and Molecular Dynamics"}]},{"@type":"WebSite","@id":"https:\/\/yousum.gpucore.co\/#website","url":"https:\/\/yousum.gpucore.co\/","name":"YouSum","description":"","publisher":{"@id":"https:\/\/yousum.gpucore.co\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/yousum.gpucore.co\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"ja"},{"@type":"Organization","@id":"https:\/\/yousum.gpucore.co\/#organization","name":"Drone Association Thailand","url":"https:\/\/yousum.gpucore.co\/","logo":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/yousum.gpucore.co\/#\/schema\/logo\/image\/","url":"https:\/\/youzum.net\/wp-content\/uploads\/2024\/11\/tranparent-logo.png","contentUrl":"https:\/\/youzum.net\/wp-content\/uploads\/2024\/11\/tranparent-logo.png","width":300,"height":300,"caption":"Drone Association Thailand"},"image":{"@id":"https:\/\/yousum.gpucore.co\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DroneAssociationTH\/"]},{"@type":"Person","@id":"https:\/\/yousum.gpucore.co\/#\/schema\/person\/97fa48242daf3908e4d9a5f26f4a059c","name":"admin NU","image":{"@type":"ImageObject","inLanguage":"ja","@id":"https:\/\/yousum.gpucore.co\/#\/schema\/person\/image\/","url":"https:\/\/youzum.net\/wp-content\/uploads\/avatars\/2\/1746849356-bpfull.png","contentUrl":"https:\/\/youzum.net\/wp-content\/uploads\/avatars\/2\/1746849356-bpfull.png","caption":"admin NU"},"url":"https:\/\/youzum.net\/ja\/members\/adminnu\/"}]}},"rttpg_featured_image_url":null,"rttpg_author":{"display_name":"admin NU","author_link":"https:\/\/youzum.net\/ja\/members\/adminnu\/"},"rttpg_comment":0,"rttpg_category":"<a href=\"https:\/\/youzum.net\/ja\/category\/ai-club\/\" rel=\"category tag\">AI<\/a> <a href=\"https:\/\/youzum.net\/ja\/category\/committee\/\" rel=\"category tag\">Committee<\/a> <a href=\"https:\/\/youzum.net\/ja\/category\/news\/\" rel=\"category tag\">News<\/a> <a href=\"https:\/\/youzum.net\/ja\/category\/uncategorized\/\" rel=\"category tag\">Uncategorized<\/a>","rttpg_excerpt":"In this tutorial, we explore FAIRChem v2 and the UMA universal machine-learning interatomic potential as a unified framework for atomistic simulation across molecular chemistry, catalysis, and inorganic materials. We configure an environment, authenticate with Hugging Face to access the gated UMA model weights, and initialize task-specific calculators for the omol, oc20, and omat domains. We&hellip;","_links":{"self":[{"href":"https:\/\/youzum.net\/ja\/wp-json\/wp\/v2\/posts\/106991","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/youzum.net\/ja\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/youzum.net\/ja\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/youzum.net\/ja\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/youzum.net\/ja\/wp-json\/wp\/v2\/comments?post=106991"}],"version-history":[{"count":0,"href":"https:\/\/youzum.net\/ja\/wp-json\/wp\/v2\/posts\/106991\/revisions"}],"wp:attachment":[{"href":"https:\/\/youzum.net\/ja\/wp-json\/wp\/v2\/media?parent=106991"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/youzum.net\/ja\/wp-json\/wp\/v2\/categories?post=106991"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/youzum.net\/ja\/wp-json\/wp\/v2\/tags?post=106991"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}