From 3090c38694c406a04cc302be490ace0c68ba331d Mon Sep 17 00:00:00 2001 From: Robin Date: Tue, 12 Aug 2025 14:13:53 +0200 Subject: [PATCH] added setup and toml file; first preliminary script; moved templates --- polyamorphism_optimization/__init__.py | 0 .../create_annealing1.sh | 0 .../create_annealing2.sh | 0 .../create_emin.sh | 0 .../create_sim.py | 0 .../generate_annealing.py | 0 .../replace_params.sh | 0 run.sh => polyamorphism_optimization/run.sh | 0 polyamorphism_optimization/setup_sim.py | 110 ++++++++++++++++++ .../setup_sim.sh | 2 +- .../templates}/4point.gro | 0 .../templates}/A.gro | 0 .../templates}/B.gro | 0 .../templates}/bak.gro | 0 .../templates}/gro_atomistic.gro | 0 .../templates}/single.gro | 0 pyproject.toml | 24 ++++ setup_env.sh | 5 + 18 files changed, 140 insertions(+), 1 deletion(-) create mode 100644 polyamorphism_optimization/__init__.py rename create_annealing1.sh => polyamorphism_optimization/create_annealing1.sh (100%) rename create_annealing2.sh => polyamorphism_optimization/create_annealing2.sh (100%) rename create_emin.sh => polyamorphism_optimization/create_emin.sh (100%) rename create_sim.py => polyamorphism_optimization/create_sim.py (100%) rename generate_annealing.py => polyamorphism_optimization/generate_annealing.py (100%) rename replace_params.sh => polyamorphism_optimization/replace_params.sh (100%) rename run.sh => polyamorphism_optimization/run.sh (100%) create mode 100644 polyamorphism_optimization/setup_sim.py rename setup_sim.sh => polyamorphism_optimization/setup_sim.sh (99%) rename {templates => polyamorphism_optimization/templates}/4point.gro (100%) rename {templates => polyamorphism_optimization/templates}/A.gro (100%) rename {templates => polyamorphism_optimization/templates}/B.gro (100%) rename {templates => polyamorphism_optimization/templates}/bak.gro (100%) rename {templates => polyamorphism_optimization/templates}/gro_atomistic.gro (100%) rename {templates => polyamorphism_optimization/templates}/single.gro (100%) create mode 100644 pyproject.toml create mode 100644 setup_env.sh diff --git a/polyamorphism_optimization/__init__.py b/polyamorphism_optimization/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/create_annealing1.sh b/polyamorphism_optimization/create_annealing1.sh similarity index 100% rename from create_annealing1.sh rename to polyamorphism_optimization/create_annealing1.sh diff --git a/create_annealing2.sh b/polyamorphism_optimization/create_annealing2.sh similarity index 100% rename from create_annealing2.sh rename to polyamorphism_optimization/create_annealing2.sh diff --git a/create_emin.sh b/polyamorphism_optimization/create_emin.sh similarity index 100% rename from create_emin.sh rename to polyamorphism_optimization/create_emin.sh diff --git a/create_sim.py b/polyamorphism_optimization/create_sim.py similarity index 100% rename from create_sim.py rename to polyamorphism_optimization/create_sim.py diff --git a/generate_annealing.py b/polyamorphism_optimization/generate_annealing.py similarity index 100% rename from generate_annealing.py rename to polyamorphism_optimization/generate_annealing.py diff --git a/replace_params.sh b/polyamorphism_optimization/replace_params.sh similarity index 100% rename from replace_params.sh rename to polyamorphism_optimization/replace_params.sh diff --git a/run.sh b/polyamorphism_optimization/run.sh similarity index 100% rename from run.sh rename to polyamorphism_optimization/run.sh diff --git a/polyamorphism_optimization/setup_sim.py b/polyamorphism_optimization/setup_sim.py new file mode 100644 index 0000000..9f20cc7 --- /dev/null +++ b/polyamorphism_optimization/setup_sim.py @@ -0,0 +1,110 @@ +#!/usr/bin/env python3 +import argparse +import os +import subprocess +from pathlib import Path + +# --- Template definitions --- +MDP_PARAMETERS = """\ +integrator = INTEGRATOR +dt = 0.001 +nsteps = NSTEPS +nstcomm = 10 +nstlog = NLOG +nstcalcenergy = 10 +nstenergy = NENERGY +nstxout-compressed = NSTXOUT +compressed-x-precision = 1000 +energygrps = system +rlist = 1.2 +nstlist = 10 +coulombtype = pme +rcoulomb = 1.2 +coulomb-modifier = potential-shift-verlet +vdwtype = pme +rvdw = 1.2 +vdw-modifier = potential-shift-verlet +fourierspacing = 0.144 +tcoupl = v-rescale +tau_t = TAUT +gen_vel = yes +gen_temp = TEMP +ref_t = TEMP +tc-grps = system +pcoupl = PCOUPL +tau_p = TAUP +ref_p = PRESSURE +compressibility = 4.5e-5 +nstpcouple = 10 +nsttcouple = 10 +""" + +PARAMS_EMIN = """\ +INTEGRATOR = steep +NSTEPS = 10000 +NLOG = 100 +NENERGY = 100 +NSTXOUT = 100 +TAUT = 1.0 +TEMP = 300 +PCOUPL = no +TCOUPL = no +TAUP = 1.0 +""" + +PARAMS_AN1 = """\ +INTEGRATOR = md +NSTEPS = 2000000 +NLOG = 1000 +NENERGY = 100 +NSTXOUT = 1000 +TCOUPL = v-rescale +TAUT = 0.5 +TEMP = 10.0 +PCOUPL = c-rescale +TAUP = 1.0 +""" + +TOPOLOGY = """\ +[ defaults ] +; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ + 1 2 yes 1.0 1.0 +[atomtypes] +;name mass charge ptype sigma epsilon +A MASS 0.000 A SIGMA_A EPSILON_A +B MASS 0.000 A SIGMA_B EPSILON_B +D 0 0.000 D 0.0 0.0 +... +""" + +# --- Core function --- +def create_simulation_dir(directory: Path): + directory.mkdir(parents=True, exist_ok=True) + os.chdir(directory) + + # Write files + (directory / "mdp_parameters.mdp").write_text(MDP_PARAMETERS) + (directory / "params_emin.ini").write_text(PARAMS_EMIN) + (directory / "params_an1.ini").write_text(PARAMS_AN1) + (directory / "topology.top").write_text(TOPOLOGY) + # ... add the rest of your templates here ... + + script_dir = Path(__file__).parent + subprocess.run([script_dir / "create_emin.sh"], check=True) + subprocess.run([script_dir / "create_annealing1.sh"], check=True) + + print(f"finished and simulation directory {directory} created and filled") + for f in os.listdir(directory): + print(f) + +# --- CLI entry point --- +def main(): + parser = argparse.ArgumentParser(description="Create simulation input files.") + parser.add_argument("-d", "--directory", default=".", help="Base directory") + args = parser.parse_args() + + create_simulation_dir(Path(args.directory)) + +if __name__ == "__main__": + main() + diff --git a/setup_sim.sh b/polyamorphism_optimization/setup_sim.sh similarity index 99% rename from setup_sim.sh rename to polyamorphism_optimization/setup_sim.sh index 4c2fb32..c2ecefc 100755 --- a/setup_sim.sh +++ b/polyamorphism_optimization/setup_sim.sh @@ -135,7 +135,7 @@ L 1 L NMOL EOF -cat > topology.top << EOF +cat > topology_atomistic.top << EOF [ defaults ] ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ 1 2 yes 1.0 1.0 diff --git a/templates/4point.gro b/polyamorphism_optimization/templates/4point.gro similarity index 100% rename from templates/4point.gro rename to polyamorphism_optimization/templates/4point.gro diff --git a/templates/A.gro b/polyamorphism_optimization/templates/A.gro similarity index 100% rename from templates/A.gro rename to polyamorphism_optimization/templates/A.gro diff --git a/templates/B.gro b/polyamorphism_optimization/templates/B.gro similarity index 100% rename from templates/B.gro rename to polyamorphism_optimization/templates/B.gro diff --git a/templates/bak.gro b/polyamorphism_optimization/templates/bak.gro similarity index 100% rename from templates/bak.gro rename to polyamorphism_optimization/templates/bak.gro diff --git a/templates/gro_atomistic.gro b/polyamorphism_optimization/templates/gro_atomistic.gro similarity index 100% rename from templates/gro_atomistic.gro rename to polyamorphism_optimization/templates/gro_atomistic.gro diff --git a/templates/single.gro b/polyamorphism_optimization/templates/single.gro similarity index 100% rename from templates/single.gro rename to polyamorphism_optimization/templates/single.gro diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..d5caedf --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,24 @@ +[build-system] +requires = ["setuptools>=80.0"] +build-backend = "setuptools.build_meta" + +[project] +name = "polyamorphism_optimization" +version = "0.1.0" +requires-python = ">=3.12" + +dependencies = [ + "pip>=25", + "wheel>=0.45", + "numpy>=2.3", + "scipy>=1.16", + "pandas>=2.3", + "mdevaluate @ git+ssh://git@gitea.pkm.physik.tu-darmstadt.de/IPKM/mdevaluate.git@feature/compatibility_robin", +] + +[project.scripts] +po_setup_sim = "polyamorphism_optimization.setup_sim:main" + +[tool.setuptools.package-data] +polyamorphism_optimization = ["templates/*"] + diff --git a/setup_env.sh b/setup_env.sh new file mode 100644 index 0000000..9dc69e1 --- /dev/null +++ b/setup_env.sh @@ -0,0 +1,5 @@ +python3.12 -m venv .venv +source .venv/bin/activate +pip install -e . +# pip install --upgrade --force-reinstall . +