~ubuntu-branches/ubuntu/precise/psicode/precise

« back to all changes in this revision

Viewing changes to src/bin/optking/get_optinfo.c

  • Committer: Bazaar Package Importer
  • Author(s): Michael Banck
  • Date: 2008-06-07 16:49:57 UTC
  • mfrom: (2.1.2 hardy)
  • Revision ID: james.westby@ubuntu.com-20080607164957-8pifvb133yjlkagn
Tags: 3.3.0-3
* debian/rules (DEB_MAKE_CHECK_TARGET): Do not abort test suite on
  failures.
* debian/rules (DEB_CONFIGURE_EXTRA_FLAGS): Set ${bindir} to /usr/lib/psi.
* debian/rules (install/psi3): Move psi3 file to /usr/bin.
* debian/patches/07_464867_move_executables.dpatch: New patch, add
  /usr/lib/psi to the $PATH, so that the moved executables are found.
  (closes: #464867)
* debian/patches/00list: Adjusted.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
double power(double x, int y);
22
22
 
23
23
void get_optinfo() {
24
 
  int a, i, cnt, cnt2, natom, nallatom;
 
24
  int a, i, cnt, cnt2, natom, nallatom, errcod;
 
25
  char *junk;
25
26
 
26
27
  optinfo.iteration = 0;
27
28
  optinfo.micro_iteration = 0;
35
36
  close_PSIF();
36
37
 
37
38
  optinfo.dertype = 0;
 
39
  if (ip_exist("DERTYPE",0)) {
 
40
    errcod = ip_string("DERTYPE", &(junk),0);
 
41
    if (errcod != IPE_OK) optinfo.dertype = 0;
 
42
    else if(!strcmp(junk,"NONE")) optinfo.dertype = 0;
 
43
    else if(!strcmp(junk,"FIRST")) optinfo.dertype = 1;
 
44
    else if(!strcmp(junk,"SECOND")) optinfo.dertype = 2;
 
45
    else if(!strcmp(junk,"RESPONSE")) optinfo.dertype = 3; /* linear response */
 
46
    else {
 
47
      printf("Invalid value of input keyword DERTYPE: %s\n", junk);
 
48
      exit(PSI_RETURN_FAILURE);
 
49
    }
 
50
  }
 
51
 
 
52
  errcod = ip_string("WFN", &(optinfo.wfn), 0);
 
53
  errcod = ip_string("JOBTYPE", &(optinfo.jobtype), 0);
 
54
 
38
55
  optinfo.numerical_dertype = 0;
 
56
  if (ip_exist("DERTYPE",0)) {
 
57
    if ( (strcmp(optinfo.jobtype,"OPT")==0) && (optinfo.dertype==0) ) 
 
58
      optinfo.numerical_dertype = 1;
 
59
  }
 
60
 
 
61
  optinfo.redundant = 1; optinfo.delocalize = 0;
 
62
  if ((optinfo.mode == MODE_DISP_IRREP) || (optinfo.mode == MODE_DISP_NOSYMM) ) 
 
63
    { optinfo.redundant = 0; optinfo.delocalize =1; }
 
64
  if ( optinfo.numerical_dertype == 1 )
 
65
    { optinfo.redundant = 0; optinfo.delocalize =1; }
 
66
  ip_boolean("DELOCALIZE", &(optinfo.delocalize),0);
 
67
  if (optinfo.delocalize)
 
68
    optinfo.redundant = 0;
39
69
 
40
70
  /* print options */
41
71
  optinfo.print_simples = 0;
48
78
  ip_boolean("PRINT_SYMMETRY", &(optinfo.print_symmetry),0);
49
79
  optinfo.print_hessian = 0;
50
80
  ip_boolean("PRINT_HESSIAN", &(optinfo.print_hessian),0);
 
81
  optinfo.print_cartesians = 0;
 
82
  ip_boolean("PRINT_CARTESIANS", &(optinfo.print_cartesians),0);
51
83
 
52
84
  /* optimization parameters */
53
85
  optinfo.optimize = 1;
57
89
    optinfo.optimize = 0;
58
90
  }
59
91
 
 
92
  optinfo.freq_irrep = -1;
 
93
  if (ip_exist("FREQ_IRREP",0)) {
 
94
    ip_data("FREQ_IRREP","%d",&(optinfo.freq_irrep),0);
 
95
  }
 
96
 
60
97
  optinfo.bfgs = 1;
61
98
  ip_boolean("BFGS",&(optinfo.bfgs),0);
62
99
  optinfo.bfgs_use_last = 6;
64
101
  optinfo.mix_types = 1;
65
102
  ip_boolean("MIX_TYPES",&(optinfo.mix_types),0);
66
103
 
67
 
  optinfo.redundant = 1;
68
 
  optinfo.delocalize = 0;
69
 
  ip_boolean("DELOCALIZE", &(optinfo.delocalize),0);
70
 
  if (optinfo.delocalize)
71
 
    optinfo.redundant = 0;
72
 
  if ((optinfo.mode == MODE_DISP_IRREP) || (optinfo.mode == MODE_DISP_NOSYMM) ) 
73
 
    {  optinfo.redundant = 0; optinfo.delocalize =1; }
 
104
  ip_data("POINTS","%d",&(optinfo.points),0);
 
105
  /*
 
106
  if ( (optinfo.dertype == 0) && (optinfo.numerical_dertype == 2) ) {
 
107
    fprintf(outfile,"O(h^2) formula used for frequencies by energy points.\n");
 
108
    optinfo.points = 3;
 
109
  }
 
110
  */
 
111
 
 
112
  /* takes values of 1,2,3 for x,y,z for location of first dummy of linear bend*/
 
113
  optinfo.dummy_axis_1 = 2;
 
114
  ip_data("DUMMY_AXIS_1","%d",&(optinfo.dummy_axis_1),0);
 
115
  optinfo.dummy_axis_1 -= 1;
 
116
  optinfo.dummy_axis_2 = 3;
 
117
  ip_data("DUMMY_AXIS_2","%d",&(optinfo.dummy_axis_2),0);
 
118
  optinfo.dummy_axis_2 -= 1;
74
119
 
75
120
  optinfo.zmat = 0;
76
121
  if (ip_exist("ZMAT",0)) optinfo.zmat = 1;
80
125
 
81
126
  a = 5;
82
127
  ip_data("CONV","%d",&a,0);
 
128
/*  ip_data("CONVERGENCE","%d",&a,0); */
83
129
  optinfo.conv = power(10.0, -1*a);
84
130
 
85
131
  a= 5;
89
135
  optinfo.scale_connectivity = 1.3;
90
136
  ip_data("SCALE_CONNECTIVITY","%lf",&(optinfo.scale_connectivity),0);
91
137
 
92
 
  optinfo.disp_size = 0.0010;
 
138
  optinfo.disp_size = 0.005;
93
139
  ip_data("EDISP","%lf",&(optinfo.disp_size),0);
94
140
 
95
141
  /* back-transformation parameters */
133
179
  }
134
180
 
135
181
  if (optinfo.print_params) {
136
 
    for (i=0;i<natom;++i)
 
182
    for (i=0;i<nallatom;++i)
137
183
      fprintf(outfile,"atom_dummy[%d]: %d\n",i,optinfo.atom_dummy[i]);
 
184
    for (i=0;i<nallatom;++i)
 
185
      fprintf(outfile,"to_nodummy[%d]: %d\n",i,optinfo.to_nodummy[i]);
138
186
    for (i=0;i<natom;++i)
139
187
      fprintf(outfile,"to_dummy[%d]: %d\n",i,optinfo.to_dummy[i]);
140
 
    for (i=0;i<nallatom;++i)
141
 
      fprintf(outfile,"to_nodummy[%d]: %d\n",i,optinfo.to_nodummy[i]);
142
188
    fflush(outfile);
143
189
  }
144
190
 
156
202
    fprintf(outfile,"print_symmetry %d\n",optinfo.print_symmetry);
157
203
    fprintf(outfile,"optimize:      %d\n",optinfo.optimize);
158
204
    fprintf(outfile,"zmat:          %d\n",optinfo.zmat);
 
205
    fprintf(outfile,"dummy_axis_1:    %d\n",optinfo.dummy_axis_1);
 
206
    fprintf(outfile,"dummy_axis_2:    %d\n",optinfo.dummy_axis_2);
 
207
    fprintf(outfile,"points:        %d\n",optinfo.points);
159
208
    fprintf(outfile,"zmat_simples:  %d\n",optinfo.zmat_simples);
160
209
    fprintf(outfile,"redundant:     %d\n",optinfo.redundant);
161
210
    fprintf(outfile,"bfgs:          %d\n",optinfo.bfgs);