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 . +