# mintsponge **Repository Path**: dechin/mintsponge ## Basic Information - **Project Name**: mintsponge - **Description**: MindSponge分子动力学模拟软件的mint算子开发版本 - **Primary Language**: Python - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-03 - **Last Updated**: 2026-04-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mintsponge MindSponge分子动力学模拟软件的mint算子开发版本 ## 水分子体系能量极小化 ```python from mintsponge import Molecule, ForceField, Sponge from mintsponge import set_global_units from SpongeExt.backends import optim set_global_units('nm', 'kj/mol') system = Molecule(template='water.spce.yaml') system.reduplicate([0.3, 0, 0]) new_sys = system.copy([0, 0, -0.3]) system.append(new_sys) potential = ForceField(system, parameters='SPCE') opt = optim.Adam(system.parameters(), 1e-3) mini = Sponge(system, potential, opt) mini.run(200, print_interval=20) ``` ## 蛋白体系能量极小化 ```python from mintsponge import Sponge, ForceField, set_global_units from mintsponge.system import Protein from mintsponge.optimizer import SteepestDescent from mintsponge.callback import WriteH5MD set_global_units('nm', 'kj/mol') system = Protein(pdb='./data/case1.pdb', rebuild_hydrogen=True) energy = ForceField(system, 'AMBER.FF14SB') min_opt = SteepestDescent(system.parameters(), 1e-7) cb_h5md = WriteH5MD(system, 'p01.h5md', save_freq=10, write_image=False) md = Sponge(system, energy, min_opt, write_h5md=cb_h5md) md.run(500, print_interval=10, write_interval=10) ``` ## 分子动力学模拟 ```python from mintsponge import Molecule, ForceField, Sponge, UpdaterMD, WithEnergyCell from mintsponge.function import VelocityGenerator from SpongeExt.backends import optim system = Molecule(template='water.tip3p.yaml') system.set_pbc_box([0.4, 0.4, 0.4]) system.repeat_box([5, 5, 5]) potential = ForceField(system, parameters=['TIP3P'], use_pme=True) opt = optim.Adam(system.parameters(), 1e-3) sim = WithEnergyCell(system, potential) mini = Sponge(sim, optimizer=opt) mini.run(500, print_interval=50) temp = 300 vgen = VelocityGenerator(temp) velocity = vgen(system.shape, system.atom_mass) nvt = UpdaterMD( system=system, time_step=1e-3, velocity=velocity, integrator='velocity_verlet', temperature=300, thermostat='langevin', ) md = mini.change_optimizer(nvt) md.run(2000, print_interval=20) npt = UpdaterMD( system=system, time_step=1e-3, velocity=velocity, integrator='velocity_verlet', temperature=300, pressure=1, thermostat='langevin', ) md.change_optimizer(npt) md.run(2000, print_interval=20) print('The final pbc box is: {}'.format(system.pbc_box)) ```