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
8 without
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.
17 or
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)
47 outgoing:
48 coordinates
50 incoming:
51 energy
52 (transformed) coordinates
53 transformation matrix
54 energy
55 gradient vector
57 question is HOW TO GROUP THE DATA!
59 - only actually require
60 energy
61 gradient
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?
74 fragment
75 coordinates
76 title
77 <gradient>
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....???
88 Progress
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 ""
98 lsqfit
99 optim
100 zsurface
102 z_create
103 ztoc
104 param
106 decisions
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
112 objectives..
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
130 >>>>>>
132 Newopt changes
134 PRFO fixes
136 special tolerance for update
137 strategy for failed update

