Presentation is loading. Please wait.

Presentation is loading. Please wait.

Implementation Issues

Similar presentations


Presentation on theme: "Implementation Issues"— Presentation transcript:

1 Implementation Issues
Lecture 2 Implementation Issues

2 ChemShell Extended Tcl Interpreter Scripting capability
Interfaces to a range of QM and MM codes including GAMESS-UK DL_POLY MNDO97 TURBOMOLE CHARMM GULP Gaussian94 Implementation of QM/MM coupling schemes link atom placement, forces etc boundary charge corrections

3 ChemShell Architecture - Languages
An extended Tcl interpeter, written in.. Tcl Control scripts Interfaces to 3rd party executables GUI construction (Tk and itcl) Extensions C Tcl command implementations Object management (fragment, matrix, field, graph) Tcl and C APIs I/O Open GL graphics Fortran77 QM and MM codes: GAMESS-UK, GULP, MNDO97, DL_POLY

4 ChemShell Architecture
Core ChemShell Tcl interpreter, with code to support chemistry data: Optimiser and dynamics drivers QM/MM Coupling schemes Utilities Graphics GAMESS-UK (ab-initio, DFT) MNDO (semi-empirical) DL_POLY (MM) GULP (Shell model, defects) Features Single executable possible Parallel implementations External Modules CHARMM TURBOMOLE Gaussian94 MOPAC AMBER CADPAC Features Interfaces written in Tcl No changes to 3rd party codes

5 ChemShell basics ChemShell control files are Tcl Scripts
Usually we use a .chm suffix ChemShell commands have some additional structure, usually they take the following form command arg1=value1 arg2=value2 Arguments can serve many functions mm_defs=dl_poly.ff Identify a data file to use coords=c Use object c as the source of the structure use_pairlist=yes Provide a Boolean flag (yes/no, 1/0,, on/off) list_option=full Provide a keyword setting theory=gamess Indicate which compute module to use Sometimes command arg1=value1 arg2=value2 data

6 ChemShell Object types
fragment - molecular structure creation: c_create, load_pdb …. Universal!! zmatrix z_create, newopt, z_surface matrix creation: create_matrix, energy and gradient evaluators, dynamics field creation: cluster_potential etc, graphical display, charge fits GUI only 3dgraph

7 ChemShell Object Representations
Between calculations, and sometimes between commands in a script, objects are stored as files. Usually there is no suffix, objects are distinguished internally by the block structure. % cat c block = fragment records = 0 block = title records = 1 phosphine block = coordinates records = 34 p e e e-16 c e e e+00 c e e e-01 c e e e+00 c e e e+00 …….... Multi block objects are initiated by an empty block (e.g. fragment) Unrecognised blocks are silently ignored

8 Object Caching During a run objects can be cached in memory, the command to request this is the name of the object (similar to a declaration in a compiled language) # fragment c c_create coords=c { h 0 0 0 h 0 0 1 } list_molecule coords=c delete_object c # No file is created here Confusion of objects with files can lead to confusion!!

9 Object Input and Output
If you access an object from a disk, ChemShell will always update the disk copy when it has finished (there is no easy way of telling if a command or procedure has changed it). Usually this is harmless (e.g. output formats are precise enough), but unrecognised data in the input will not be present in the output, take a copy if you need to keep it. E.g. if a GAMESS-UK punchfile contains a fragment object and a single data field (e.g. the potential) you can use it as both a fragment object and a field object % rungamess test % cp test.pun my_structure % cp test.pun my_field % chemsh …….

10 Energy Gradient Evaluators
Many modules are designed to work with a variety of methods to compute the energy and gradient. The procedure relies on the interfaces to the codes being consistent, each comprises a set of callable functions e.g. initialisation energy, gradient kill update the particular set of functions being requested by a command option, usually theory= Example evaluators (depends on locally available codes) gamess, turbomole dl_poly, charmm mopac, mndo hybrid You can write your own in Tcl

11 Module options, using the :
The : syntax is used to pass control options to sub-module. e.g. when running the optimiser, to set the options for the module computing the energy and gradient. {} can be used if there is more than one argument to pass on. Nested structures are possible using Tcl lists newopt function=zopt : { theory=gamess : { basis=sto3g } zmatrix=z } gamess arguments Command zopt arguments newopt arguments

12 5 High End Computing and Benchmarking
Serial Applications Benchmarks GAMESS-UK, DL_POLY NWChem Global Array (GA) Tools Parallel Eigensolver (PeIGS) GAMESS-UK Parallel SCF, DFT, MP2 on MPP Systems (Cray T3E, IBM SP..) and commodity Beowulf systems CRYSTAL98 Periodic SCF DL_POLY MPP, Beowulf and ASCI performance CHARMM Myoglobin benchmark

13 QM/MM Thrombin Benchmark
QM/MM calculation on thrombin pocket: QM region (69 Atoms) is modelled by SCF 6-31G calculation (401 GTOs), total system size for the classical calculation is 16,659 atoms. QM/MM interaction was cut off at 15 angstroms using a neutral group scheme (leading to the inclusion in the QM calculation of 1507 classical centres). Scaling for Thrombin + Inhibitor (NAPAP) + Water Number of Nodes


Download ppt "Implementation Issues"

Similar presentations


Ads by Google