From 870dd224fc7d040b8e4713211f01c5989866292c Mon Sep 17 00:00:00 2001 From: Robin Horstmann Date: Wed, 13 Aug 2025 15:34:52 +0200 Subject: [PATCH] type in init; emin to python --- polyamorphism_optimization/annealing.py | 0 polyamorphism_optimization/create_emin.sh | 35 -------------- polyamorphism_optimization/emin.py | 36 ++++++++++++++ .../{innitialize_sim.py => initialize_sim.py} | 10 ++-- polyamorphism_optimization/replace_params.py | 0 polyamorphism_optimization/replace_params.sh | 47 ------------------- pyproject.toml | 2 +- 7 files changed, 43 insertions(+), 87 deletions(-) mode change 100644 => 100755 polyamorphism_optimization/annealing.py delete mode 100755 polyamorphism_optimization/create_emin.sh create mode 100755 polyamorphism_optimization/emin.py rename polyamorphism_optimization/{innitialize_sim.py => initialize_sim.py} (83%) mode change 100644 => 100755 polyamorphism_optimization/replace_params.py delete mode 100755 polyamorphism_optimization/replace_params.sh diff --git a/polyamorphism_optimization/annealing.py b/polyamorphism_optimization/annealing.py old mode 100644 new mode 100755 diff --git a/polyamorphism_optimization/create_emin.sh b/polyamorphism_optimization/create_emin.sh deleted file mode 100755 index be37706..0000000 --- a/polyamorphism_optimization/create_emin.sh +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash - -get_ini_value() { - local file=$1 - local section=$2 - local key=$3 - - awk -F '=' -v section="$section" -v key="$key" ' - $0 ~ "\\[" section "\\]" { in_section = 1; next } - in_section && $1 ~ "^" key"[[:space:]]*$" { - gsub(/[[:space:]]+/, "", $2) - print $2 - exit - } - $0 ~ /^\[/ { in_section = 0 } - ' "$file" -} - - -simdir="00_em" - - -rm -r "$simdir" 2>/dev/null -mkdir "$simdir" - -cp topology.top "$simdir/" -"$(dirname $0)/replace_params.sh" params.ini topology.top --output "$simdir/topology.top" -"$(dirname $0)/replace_params.sh" params_emin.ini mdp_parameters.mdp --output "$simdir/mdp_parameters.mdp" -"$(dirname $0)/replace_params.sh" params.ini "$simdir/mdp_parameters.mdp" --output "$simdir/mdp_parameters.mdp" -cp "$(dirname $0)/run.sh" "$simdir/" -cp "$(dirname $0)/templates/gro_$(get_ini_value params.ini params model).gro" "$simdir/gro_start.gro" - -echo "emstep = 0.001" >> $simdir/mdp_parameters.mdp - - diff --git a/polyamorphism_optimization/emin.py b/polyamorphism_optimization/emin.py new file mode 100755 index 0000000..2b2aa6a --- /dev/null +++ b/polyamorphism_optimization/emin.py @@ -0,0 +1,36 @@ +#!/usr/bin/env python3 +import shutil +from pathlib import Path +from replace_params import replace_params + + +def main(root_dir: Path): + simdir = root_dir / "00_em" + + if simdir.exists(): + shutil.rmtree(simdir) + simdir.mkdir() + + # Copy topology and replace parameters + shutil.copy(root_dir / "topology.top", simdir / "topology.top") + replace_params(root_dir / "params.ini", root_dir / "topology.top", simdir / "topology.top") + replace_params(root_dir / "params_emin.ini", root_dir / "mdp_parameters.mdp", simdir / "mdp_parameters.mdp") + replace_params(root_dir / "params.ini", simdir / "mdp_parameters.mdp", simdir / "mdp_parameters.mdp") + + # Copy run.sh + shutil.copy(root_dir / "run.sh", simdir / "run.sh") + + # Add finer emstep + with (simdir / "mdp_parameters.mdp").open("a") as f: + f.write("\n") + f.write("emstep = 0.001") + + print(f"Energy minimization directory {simdir} created and filled.") + + +if __name__ == "__main__": + import sys + if len(sys.argv) != 2: + print(f"Usage: {sys.argv[0]} ROOT_DIRECTORY") + sys.exit(1) + main(Path(sys.argv[1])) diff --git a/polyamorphism_optimization/innitialize_sim.py b/polyamorphism_optimization/initialize_sim.py similarity index 83% rename from polyamorphism_optimization/innitialize_sim.py rename to polyamorphism_optimization/initialize_sim.py index bd9b470..79fd347 100755 --- a/polyamorphism_optimization/innitialize_sim.py +++ b/polyamorphism_optimization/initialize_sim.py @@ -6,9 +6,12 @@ from pathlib import Path from importlib.resources import files import configparser +from annealing import main as annealing +from emin import main as emin + # --- Core function --- -def innitialize_simulation_dir(directory: Path): +def initialize_simulation_dir(directory: Path): os.chdir(directory) params = configparser.ConfigParser() @@ -23,9 +26,8 @@ def innitialize_simulation_dir(directory: Path): Path("mdp_parameters.mdp").write_text(MDP_PARAMETERS) Path("topology.top").write_text(TOPOLOGY) - script_dir = Path(__file__).parent - subprocess.run([script_dir / "create_emin.sh"], check=True) - subprocess.run([script_dir / "create_annealing1.sh"], check=True) + emin(directory) + annealing(directory) print(f"finished and simulation directory {directory} created and filled") for f in os.listdir(directory): diff --git a/polyamorphism_optimization/replace_params.py b/polyamorphism_optimization/replace_params.py old mode 100644 new mode 100755 diff --git a/polyamorphism_optimization/replace_params.sh b/polyamorphism_optimization/replace_params.sh deleted file mode 100755 index 37d810c..0000000 --- a/polyamorphism_optimization/replace_params.sh +++ /dev/null @@ -1,47 +0,0 @@ -#!/usr/bin/env bash - -set -e - -if [[ $# -lt 2 ]]; then - echo "Usage: $0