Skip to main content

Molecular Dynamics Analysis Tool with Cython Extensions

Project description

MDemon

一个强大的分子动力学(MD)仿真数据分析工具,专注于高性能计算和辐照效应分析。

项目简介

MDemon 是一个现代化的分子动力学分析框架,提供全面的分析工具和物理常数库。主要特性包括:

  • 🚀 高性能计算: 使用 Cython 扩展优化核心算法
  • 📊 全面分析: 支持径向分布函数(RDF)、角分布分析等
  • ⚛️ 辐照效应: 集成 Waligorski-Zhang 计算器用于辐照损伤分析
  • 🔬 多格式支持: 兼容 LAMMPS、REAXFF 等主流 MD 文件格式
  • 📚 丰富常数库: 内置物理、化学、材料常数和单位转换
  • 🔧 灵活扩展: 模块化设计,易于扩展和定制

快速开始

环境配置

推荐使用 uv 管理 Python 环境:

# 安装 uv (如果尚未安装)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 创建并激活虚拟环境
uv venv
source .venv/bin/activate  # Linux/macOS
# 或 .venv\Scripts\activate  # Windows

# 安装项目依赖
uv pip install -e .

# 安装开发依赖 (可选)
uv pip install -e ".[dev]"

基本使用

import MDemon as md
from MDemon.constants import PHYSICS, CHEMISTRY
from MDemon.utils import WaligorskiZhangCalculator
import numpy as np

# 使用物理常数
print(f"玻尔兹曼常数: {md.k_B:.6e} J/K")
print(f"阿伏伽德罗数: {md.N_A:.6e} mol⁻¹")

# 单位转换
from MDemon.constants.utils import convert_energy
energy_ev = 1.0
energy_j = convert_energy(energy_ev, 'eV', 'J')
print(f"1 eV = {energy_j:.6e} J")

# 辐照计算示例
calc = WaligorskiZhangCalculator.from_material_preset('Ga2O3')
radius_array = np.logspace(0, 3, 100)  # 1 to 1000 nm
result = calc.calculate_radial_dose(radius_array, ion_Z=8, ion_energy=10.0)

项目结构

MDemon/
├── analysis/           # 分析模块
│   └── single_atom/   # 单原子分析工具
│       ├── angular.py # 角分布分析
│       ├── rdf.py     # 径向分布函数
│       └── ...
├── constants/         # 物理化学常数库
│   ├── chemistry.py   # 化学常数
│   ├── conversion.py  # 单位转换
│   ├── fundamental.py # 基本物理常数
│   ├── irradiation.py # 辐照相关常数
│   ├── material.py    # 材料属性
│   └── utils.py       # 工具函数
├── core/              # 核心数据结构
│   ├── database.py    # 数据库接口
│   ├── structure.py   # 分子结构
│   ├── universe.py    # 模拟体系
│   └── source.pyx     # Cython 优化模块
├── lib/               # 高性能计算库
│   ├── c_distances.pyx # 距离计算 (Cython)
│   ├── distance.py    # 距离分析
│   └── include/       # C/C++ 头文件
├── reader/            # 文件读取器
│   ├── LAMMPS.py      # LAMMPS 格式
│   ├── REAXFF.py      # REAXFF 格式
│   └── base.py        # 基础读取器
├── selection/         # 原子选择工具
│   └── cylindrical.py # 圆柱形选择
└── utils/             # 实用工具
    ├── irradiation.py # 辐照分析工具
    ├── parallel.py    # 并行计算
    └── spatial.py     # 空间分析

主要模块说明

  • analysis: 提供各种分析算法,包括径向分布函数、角分布分析等
  • constants: 完整的物理、化学常数库和单位转换系统
  • core: 核心数据结构,管理分子结构和模拟体系
  • lib: 使用 Cython 优化的高性能计算模块
  • reader: 支持多种 MD 文件格式的读取器
  • utils: 实用工具,包括辐照效应分析和并行计算支持

功能特性

物理常数与单位转换

from MDemon.constants.utils import convert_temperature, boltzmann_energy

# 温度转换
temp_k = convert_temperature(25.0, 'C', 'K')  # 298.15 K

# 热能计算
thermal_energy = boltzmann_energy(298.15, 'eV')  # eV 单位

材料属性查询

from MDemon.constants.utils import get_material_property

# 获取 β-Ga₂O₃ 的密度
density = get_material_property('Ga2O3_beta', 'density')
print(f"β-Ga₂O₃ 密度: {density} kg/m³")

辐照效应分析

from MDemon.utils import WaligorskiZhangCalculator

# 创建辐照计算器
calc = WaligorskiZhangCalculator.from_material_preset('Ga2O3')

# 计算径向剂量分布
dose_profile = calc.calculate_radial_dose(
    radius_nm=np.logspace(0, 3, 100),
    ion_Z=8,           # 氧离子
    ion_energy=10.0    # MeV/amu
)

文档和示例

开发和贡献

开发环境设置

# 克隆仓库
git clone <repository-url>
cd MDemon

# 设置开发环境
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"

# 运行测试
uv run pytest tests/

# 代码格式化
uv run black MDemon/
uv run isort MDemon/

# 代码检查
uv run ruff check MDemon/

构建 Cython 扩展

项目包含 Cython 扩展以提升性能,安装时会自动编译:

# 手动重新编译 Cython 扩展
uv run setup.py build_ext --inplace

系统要求

  • Python 3.9+
  • NumPy >= 1.24.0
  • SciPy >= 1.10.0
  • Pandas >= 2.0.0
  • Matplotlib >= 3.6.0

许可证

本项目采用 GPL-2.0 许可证。详见 LICENSE 文件。

致谢

感谢所有为 MDemon 项目做出贡献的开发者和科研人员。


更多详细信息请参考项目文档和示例代码。如有问题,欢迎提交 Issue 或 Pull Request。

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mdemon-0.1.1.tar.gz (439.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mdemon-0.1.1-cp311-cp311-macosx_15_0_arm64.whl (635.2 kB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

File details

Details for the file mdemon-0.1.1.tar.gz.

File metadata

  • Download URL: mdemon-0.1.1.tar.gz
  • Upload date:
  • Size: 439.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.12

File hashes

Hashes for mdemon-0.1.1.tar.gz
Algorithm Hash digest
SHA256 29b516a233b6ea26a677281a434c67251d41d5ade8ba158514198905a534edc2
MD5 d0599bc0dba99b53d83817d0d9f970cb
BLAKE2b-256 feb62de4663580c6a92aa84695770ba61b84c41c6a108d9664346cad9481ed43

See more details on using hashes here.

File details

Details for the file mdemon-0.1.1-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for mdemon-0.1.1-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 85cfcf45267168c04b4135a7b4ad1085b3c6c6d123da1104f58224080dce7621
MD5 1f2684362f281a59877ab7e0bc6c3715
BLAKE2b-256 6af8a823de781660f77f897ec07d5bb7235cc523f147002cd8ecbd5979e85fee

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page