예제 #1
0
// Set symmetry C2v, D2 or D2h
void setSymmetryC2v(API::IFunction &fun) {
  fun.clearTies();
  fun.unfixParameter("B20");
  fun.unfixParameter("B40");
  fun.unfixParameter("B60");
  fixx(fun, "B21");
  free(fun, "B22", real);
  fixx(fun, "B41");
  free(fun, "B42", real);
  fixx(fun, "B43");
  free(fun, "B44", real);
  fixx(fun, "B61");
  free(fun, "B62", real);
  fixx(fun, "B63");
  free(fun, "B64", real);
  fixx(fun, "B65");
  free(fun, "B66", real);
}
예제 #2
0
// Set symmetry T, Td, Th, O, or Oh
void setSymmetryT(API::IFunction &fun) {
  fun.clearTies();
  fun.setParameter("B20", 0.0);
  fun.fixParameter("B20");
  fun.unfixParameter("B40");
  fun.unfixParameter("B60");
  fixx(fun, "B21");
  fixx(fun, "B22");
  fixx(fun, "B41");
  fixx(fun, "B42");
  fixx(fun, "B43");
  free(fun, "B44", real);
  fixx(fun, "B61");
  fixx(fun, "B62");
  fixx(fun, "B63");
  free(fun, "B64", real);
  fixx(fun, "B65");
  fixx(fun, "B66");
  fun.tie("B44", "5*B40");
  fun.tie("B64", "-21*B60");
}