| 1 |
< |
#!/usr/bin/env perl |
| 1 |
> |
#!@PERL_EXECUTABLE@ |
| 2 |
|
|
| 3 |
|
# program that builds water boxes |
| 4 |
|
|
| 5 |
|
# author = "Chris Fennell |
| 6 |
< |
# version = "$Revision: 1.7 $" |
| 7 |
< |
# date = "$Date: 2009-11-25 20:01:59 $" |
| 6 |
> |
# version = "$Revision$" |
| 7 |
> |
# date = "$Date$" |
| 8 |
|
# copyright = "Copyright (c) 2006 by the University of Notre Dame" |
| 9 |
|
# license = "OpenMD" |
| 10 |
|
|
| 18 |
|
$nMol = 500; |
| 19 |
|
$density = 1.0; |
| 20 |
|
$doRandomize = 0; |
| 21 |
< |
$cutoff = 12; |
| 22 |
< |
$alpha = 0.2125; |
| 23 |
< |
$alphaInt = 0.5125; |
| 24 |
< |
$alphaSlope = 0.025; |
| 21 |
> |
$cutoff = 9; |
| 22 |
> |
$alpha = 0.18; |
| 23 |
|
$invalidWater = 0; |
| 24 |
|
$waterCase = -1; |
| 25 |
|
$nothingSelected = 1; |
| 317 |
|
# write out the header |
| 318 |
|
print OUTFILE "<OpenMD version=1>\n"; |
| 319 |
|
findCutoff(); |
| 322 |
– |
findAlpha(); |
| 320 |
|
printMetaData(); |
| 321 |
|
printFrameData(); |
| 322 |
|
print OUTFILE " <StuntDoubles>\n"; |
| 369 |
|
} |
| 370 |
|
|
| 371 |
|
ensemble = NVE; |
| 372 |
< |
forceField = \"DUFF\"; |
| 372 |
> |
forceField = \"Amber\"; |
| 373 |
|
electrostaticSummationMethod = \"shifted_force\"; |
| 374 |
|
electrostaticScreeningMethod = \"damped\"; |
| 375 |
|
cutoffRadius = $cutoff; |
| 376 |
+ |
switchingRadius = $cutoff; |
| 377 |
+ |
dampingAlpha = $alpha; |
| 378 |
|
|
| 379 |
|
targetTemp = 300; |
| 380 |
|
targetPressure = 1.0; |
| 409 |
|
} |
| 410 |
|
} |
| 411 |
|
|
| 413 |
– |
sub findAlpha { |
| 414 |
– |
$alpha = $alphaInt - $cutoff*$alphaSlope; |
| 415 |
– |
} |
| 416 |
– |
|
| 412 |
|
sub printFrameData { |
| 413 |
|
print OUTFILE |
| 414 |
|
" <Snapshot> |
| 428 |
|
printSSD_E(); |
| 429 |
|
printSSD_RF(); |
| 430 |
|
printSSD(); |
| 431 |
+ |
printSSDQ(); |
| 432 |
+ |
printSSDQO(); |
| 433 |
|
printSSD1(); |
| 434 |
|
printTRED(); |
| 435 |
|
printTIP3P(); |
| 502 |
|
}" |
| 503 |
|
} |
| 504 |
|
|
| 505 |
+ |
sub printSSDQ { |
| 506 |
+ |
print $waterFileHandle "\n\nmolecule{ |
| 507 |
+ |
name = \"SSDQ\"; |
| 508 |
+ |
|
| 509 |
+ |
atom[0]{ |
| 510 |
+ |
type = \"SSDQ\"; |
| 511 |
+ |
position( 0.0, 0.0, 0.0 ); |
| 512 |
+ |
orientation( 0.0, 0.0, 0.0 ); |
| 513 |
+ |
} |
| 514 |
+ |
}" |
| 515 |
+ |
} |
| 516 |
+ |
|
| 517 |
+ |
sub printSSDQO { |
| 518 |
+ |
print $waterFileHandle "\n\nmolecule{ |
| 519 |
+ |
name = \"SSDQO\"; |
| 520 |
+ |
|
| 521 |
+ |
atom[0]{ |
| 522 |
+ |
type = \"SSDQO\"; |
| 523 |
+ |
position( 0.0, 0.0, 0.0 ); |
| 524 |
+ |
orientation( 0.0, 0.0, 0.0 ); |
| 525 |
+ |
} |
| 526 |
+ |
}" |
| 527 |
+ |
} |
| 528 |
+ |
|
| 529 |
|
sub printSSD1 { |
| 530 |
|
print $waterFileHandle "\n\nmolecule{ |
| 531 |
|
name = \"SSD1\"; |
| 801 |
|
elsif ($waterName eq 'SPC') { $waterCase = 12; } |
| 802 |
|
elsif ($waterName eq 'DPD') { $waterCase = 13; } |
| 803 |
|
elsif ($waterName eq 'CG2') { $waterCase = 14; } |
| 804 |
+ |
elsif ($waterName eq 'SSDQ') { $waterCase = 15; } |
| 805 |
+ |
elsif ($waterName eq 'SSDQO') { $waterCase = 16; } |
| 806 |
|
else { $invalidWater = 1; } |
| 807 |
|
} |
| 808 |
|
|
| 822 |
|
elsif ($waterCase == 12) { printSPC(); } |
| 823 |
|
elsif ($waterCase == 13) { printDPD(); } |
| 824 |
|
elsif ($waterCase == 14) { printCG2(); } |
| 825 |
+ |
elsif ($waterCase == 15) { printSSDQ(); } |
| 826 |
+ |
elsif ($waterCase == 16) { printSSDQO(); } |
| 827 |
|
} |