quick fix to test atomistic systems

This commit is contained in:
Robin
2025-08-11 23:11:35 +02:00
parent 93d0625ca6
commit 22e12c05d2
11 changed files with 3101 additions and 17 deletions

View File

@@ -23,19 +23,18 @@ rm -r "$simdir" 2>/dev/null
mkdir "$simdir"
cp topology.top "$simdir/"
../replace_params.sh params.ini topology.top --output "$simdir/topology.top"
../replace_params.sh params_an1.ini mdp_parameters.mdp --output "$simdir/mdp_parameters.mdp"
../replace_params.sh params.ini "$simdir/mdp_parameters.mdp" --output "$simdir/mdp_parameters.mdp"
cp ../run.sh "$simdir/"
"$(dirname $0)/replace_params.sh" params.ini topology.top --output "$simdir/topology.top"
"$(dirname $0)/replace_params.sh" params_an1.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 "00_em/out/out.gro" "$simdir/gro_start.gro"
annealing=$(../generate_annealing.py -d 50 -l 50 -u 1000 -s 100 -e 2000)
annealing=$($(dirname $0)/generate_annealing.py -d 50 -l 50 -u 1000 -s 50 -e 2000)
annealing=$(../generate_annealing.py -d 30 -l 400 -u 950 -s 50 -e 2000)
#annealing=$($(dirname $0)/generate_annealing.py -d 30 -l 400 -u 950 -s 50 -e 2000)
echo "" >> "$simdir/mdp_parameters.mdp"
echo "annealing = single" >> "$simdir/mdp_parameters.mdp"
echo "$annealing" >> "$simdir/mdp_parameters.mdp"

39
create_annealing2.sh Executable file
View File

@@ -0,0 +1,39 @@
#!/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="02_an_cooling"
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_an1.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 "00_em/out/out.gro" "$simdir/gro_start.gro"
#annealing=$($(dirname $0)/generate_annealing.py -d 50 -l 180 -u 750 -e 2000 -c)
annealing=$($(dirname $0)/generate_annealing.py -d 20 -l 750 -u 2100 -s 50 -e 10000 -c)
echo "" >> "$simdir/mdp_parameters.mdp"
echo "$annealing" >> "$simdir/mdp_parameters.mdp"

View File

@@ -24,11 +24,11 @@ rm -r "$simdir" 2>/dev/null
mkdir "$simdir"
cp topology.top "$simdir/"
../replace_params.sh params.ini topology.top --output "$simdir/topology.top"
../replace_params.sh params_emin.ini mdp_parameters.mdp --output "$simdir/mdp_parameters.mdp"
../replace_params.sh params.ini "$simdir/mdp_parameters.mdp" --output "$simdir/mdp_parameters.mdp"
cp ../run.sh "$simdir/"
cp "../gro_$(get_ini_value params.ini params model).gro" "$simdir/gro_start.gro"
"$(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

View File

@@ -51,8 +51,8 @@ def generate_temperature_list_dynamic(dT=10, Tmin=10, Tmax=5000, rel_tol=5e-3):
return rounded_T
def generate_temperature_list(dT=10, Tmin=10, Tmax=5000, rel_tol=5e-3):
dT = (Tmax - Tmin) / 20
all_T = [i*dT+Tmin for i in range(21)]
r = (Tmax/Tmin)**(1/20)
all_T = [Tmin*r**i for i in range(21)]
# Apply dynamic rounding
rounded_T = [round_dynamic(t, rel_tol=rel_tol) for t in all_T]
@@ -80,7 +80,7 @@ def main():
#temps = generate_temperature_list_dynamic(args.dT, args.Tmin, args.Tmax, args.rel_tol)
temps = generate_temperature_list(args.dT, args.Tmin, args.Tmax, args.rel_tol)
if not args.cooling:
if args.cooling:
temps = list(reversed(temps))
if args.start_time > 0:

View File

@@ -135,9 +135,44 @@ L 1
L NMOL
EOF
cat > topology.top << EOF
[ 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
[moleculetype]
; name nrexcl
A 1
[atoms]
; nr type resnr residu atom cgnr charge
1 A 1 L A 1 CHARGE_A MASS
[moleculetype]
; name nrexcl
B 1
[atoms]
; nr type resnr residu atom cgnr charge
1 B 1 L B 1 CHARGE_B MASS
[system]
MODEL
[molecules]
A 1000
B 2000
EOF
#=====================================================================================
bash ../create_emin.sh
bash ../create_annealing1.sh
echo $(dirname $0)
bash ".$(dirname $0)/create_emin.sh"
bash ".$(dirname $0)/create_annealing1.sh"
#=====================================================================================

0
templates/4point.gro Executable file → Normal file
View File

4
templates/A.gro Normal file
View File

@@ -0,0 +1,4 @@
SOL tip4p/2005 t= 8254.00000 step= 4127000
1
1SOL OW 1 1.982 1.987 2.025
4.00000 4.00000 4.00000

4
templates/B.gro Normal file
View File

@@ -0,0 +1,4 @@
SOL tip4p/2005 t= 8254.00000 step= 4127000
1
1SOL N 1 1.982 1.987 2.025
4.00000 4.00000 4.00000

0
templates/bak.gro Executable file → Normal file
View File

3003
templates/gro_atomistic.gro Normal file

File diff suppressed because it is too large Load Diff

0
templates/single.gro Executable file → Normal file
View File