chemshell_qchem / blob
2 for flexible object storage scheme will require
4 i) some safety system/protocol that guarantees the if a
5 procedure accesses the disk copy it will be up to date.
7 ii) ability to move from user TCL script to subprograms
11 Possible mechanism
13 * by default, all objects are flushed
14 * explicit cache and flush TCL commands are
15 added to allow subsections of TCL code
16 to work from memory.
19 * by default all objects are cached
20 * protocol for accessing data is decided so that
21 when a sub-program requires a flushed data object
22 it is up to date
24 eg "flush_all_objects" TCL command can be added
26 - this can be embedded in "exec_module" for safety
28 ->> this is now implemented,
30 BUT - there is no way of getting the data *back* into the
31 program from the file
33 i) could define <load> m as being necessary
34 if an object has been changed..
35 easy to miss this.
37 ii) could use dates of files to determine if modified
39 >>>>>>>> for more general implementation....
41 IF want to avoid blk_ calls
42 THEN must map all data (to, and from the application) to
43 some type of object
45 for example, consider case of DL_POLY + conmin (or dyno etc)
52 (transformed) coordinates
53 transformation matrix
55 gradient vector
57 question is HOW TO GROUP THE DATA!
59 - only actually require
63 so should perhaps implement these as (derivitives of matrix?)
65 Q does being a derivitive imply that the block structure
66 contains both:
68 block=energy records=0,n
69 block=matrix rows=1 columns=1
71 A does it matter? as both read and write
72 should be handled via the libraries?
79 - as a working model, try mapping both to matrix objects (
80 don't worry about the file as we won't use it initially )
82 - but thus need an alternative (test) version of the dl_poly interface
83 to check.
85 read_input - do a load afterif object exists....???
90 module changes required status
91 hfscf energy/gradient/hessian ok except for hessian
92 mm energy/gradient ok - need to clear up naming
93 conmin done
94 gradcheck done
95 hybrid combine executable must
96 now use matrix files
97 zsurface ""
107 where to assume if an object has been allocated
108 where to do the allocation
109 how to moderate i/o when running external codes
114 to try and assume that moving code in/out of the
115 system doesn't require it to change very much.
119 Adding a data type....
121 makefile must link library
123 in tcl_objects
124 define_????_type must be added
126 if any new Tcl-callable functions are needed..
127 declare_??? must be written and added to chem.c
132 Newopt changes
134 PRFO fixes
136 special tolerance for update
137 strategy for failed update