MPQC 3.0.0-alpha
Loading...
Searching...
No Matches
coor.h
1//
2// coor.h
3//
4// Copyright (C) 1996 Limit Point Systems, Inc.
5//
6// Author: Curtis Janssen <cljanss@limitpt.com>
7// Maintainer: LPS
8//
9// This file is part of the SC Toolkit.
10//
11// The SC Toolkit is free software; you can redistribute it and/or modify
12// it under the terms of the GNU Library General Public License as published by
13// the Free Software Foundation; either version 2, or (at your option)
14// any later version.
15//
16// The SC Toolkit is distributed in the hope that it will be useful,
17// but WITHOUT ANY WARRANTY; without even the implied warranty of
18// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19// GNU Library General Public License for more details.
20//
21// You should have received a copy of the GNU Library General Public License
22// along with the SC Toolkit; see the file COPYING.LIB. If not, write to
23// the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
24//
25// The U.S. Government is granted a limited license as per AL 91-7.
26//
27
28#ifndef _chemistry_molecule_coor_h
29#define _chemistry_molecule_coor_h
30
31#include <iostream>
32#include <vector>
33
34#include <math/scmat/matrix.h>
35#include <math/optimize/transform.h>
36#include <chemistry/molecule/molecule.h>
37
38namespace sc {
39
42
45class IntCoor: public SavableState {
46 protected:
47 // conversion factors from radians, bohr to the preferred units
48 static double bohr_conv;
49 static double radian_conv;
50 char *label_;
51 double value_;
52 public:
54 IntCoor(const IntCoor&);
57 IntCoor(const char* label = 0);
75
76 virtual ~IntCoor();
78
80 virtual const char* label() const;
82 virtual double value() const;
84 virtual void set_value(double);
86 virtual double preferred_value() const;
88 virtual const char* ctype() const = 0;
90 virtual void print(std::ostream & o=ExEnv::out0()) const;
91 virtual void print_details(const Ref<Molecule> &, std::ostream& =ExEnv::out0()) const;
94 virtual double force_constant(Ref<Molecule>&) = 0;
96 virtual void update_value(const Ref<Molecule>&) = 0;
98 virtual void bmat(const Ref<Molecule>&,RefSCVector&bmat,double coef=1.0) = 0;
102 virtual int equivalent(Ref<IntCoor>&) = 0;
103};
104
119class SumIntCoor: public IntCoor {
120 private:
121 std::vector<double> coef_;
122 std::vector<Ref<IntCoor> > coor_;
123 public:
127 SumIntCoor(const char *);
139
140 ~SumIntCoor();
142
144 int n();
147 void add(Ref<IntCoor>&,double coef);
149 void normalize();
150
151 // IntCoor overrides
153 double preferred_value() const;
155 const char* ctype() const;
157 void print_details(const Ref<Molecule> &, std::ostream& =ExEnv::out0()) const;
163 void bmat(const Ref<Molecule>&,RefSCVector&bmat,double coef = 1.0);
166};
167
189 private:
190 std::vector<Ref<IntCoor> > coor_;
191 public:
192 SetIntCoor();
205
206 virtual ~SetIntCoor();
208
210 void add(const Ref<IntCoor>&);
212 void add(const Ref<SetIntCoor>&);
214 void pop();
216 void clear();
218 int n() const;
220 Ref<IntCoor> coor(int i) const;
222 virtual void fd_bmat(const Ref<Molecule>&,RefSCMatrix&);
224 virtual void bmat(const Ref<Molecule>&, RefSCMatrix&);
230 virtual void print_details(const Ref<Molecule> &,std::ostream& =ExEnv::out0()) const;
232 virtual void update_values(const Ref<Molecule>&);
234 virtual void values_to_vector(const RefSCVector&);
235};
236
237
238// ////////////////////////////////////////////////////////////////////////
239
240class BitArrayLTri;
241
245{
246 protected:
247 Ref<Molecule> molecule_;
248
249 int linear_bends_;
250 int linear_lbends_;
251 int linear_tors_;
252 int linear_stors_;
253 int nextra_bonds_;
254 int *extra_bonds_;
255 double linear_bend_thres_;
256 double linear_tors_thres_;
257 double radius_scale_factor_;
258
259 void init_constants();
260
261 double cos_ijk(Molecule& m, int i, int j, int k);
262 int hterminal(Molecule& m, BitArrayLTri& bonds, int i);
263 int nearest_contact(int i, Molecule& m);
264
265 void add_bonds(const Ref<SetIntCoor>& list, BitArrayLTri& bonds, Molecule& m);
266 void add_bends(const Ref<SetIntCoor>& list, BitArrayLTri& bonds, Molecule& m);
267 void add_tors(const Ref<SetIntCoor>& list, BitArrayLTri& bonds, Molecule& m);
268 void add_out(const Ref<SetIntCoor>& list, BitArrayLTri& bonds, Molecule& m);
269
273
274 public:
278 IntCoorGen(const Ref<Molecule>&, int nextra=0, int *extra=0);
322
323 ~IntCoorGen();
324
327
329 virtual void generate(const Ref<SetIntCoor>&);
330
332 virtual void print(std::ostream& out=ExEnv::out0()) const;
333
337 double radius_scaling_factor = 1.1);
340 static std::vector<std::set<int> > find_disconnected_subgraphs(const BitArrayLTri& adjmat);
341};
342
343
344// ////////////////////////////////////////////////////////////////////////
345
346
351{
352 protected:
353 Ref<Molecule> molecule_;
354 RefSCDimension dnatom3_; // the number of atoms x 3
355 Ref<SCMatrixKit> matrixkit_; // used to construct matrices
356
357 int debug_;
358 public:
378
379 virtual ~MolecularCoor();
380
382
385 RefSCDimension dim_natom3() { return dnatom3_; }
386
388 Ref<Molecule> molecule() const { return molecule_; }
389
391 virtual void print(std::ostream& =ExEnv::out0()) const = 0;
392 virtual void print_simples(std::ostream& =ExEnv::out0()) const = 0;
393
397 virtual RefSCDimension dim() = 0;
398
402 int to_cartesian(const RefSCVector&internal);
403 virtual int to_cartesian(const Ref<Molecule>&mol,
404 const RefSCVector&internal) = 0;
405
409 virtual int to_internal(RefSCVector&internal) = 0;
410
415 virtual int to_cartesian(RefSCVector&cartesian,RefSCVector&internal) = 0;
416
421 virtual int to_internal(RefSCVector&internal,RefSCVector&cartesian) = 0;
422
426 virtual int to_cartesian(RefSymmSCMatrix&cartesian,
427 RefSymmSCMatrix&internal) =0;
428
432 virtual int to_internal(RefSymmSCMatrix&internal,
433 RefSymmSCMatrix&cartesian) = 0;
434
437 virtual void guess_hessian(RefSymmSCMatrix&hessian) = 0;
438
442
444 virtual int nconstrained();
445
450
451 Ref<SCMatrixKit> matrixkit() const { return matrixkit_; }
452};
453
454
458{
459 protected:
460 Ref<IntCoorGen> generator_;
461
462 void form_K_matrix(RefSCDimension& dredundant,
463 RefSCDimension& dfixed,
464 RefSCMatrix& K,
465 int*& is_totally_symmetric);
466
467 RefSCDimension dim_; // corresponds to the number of variable coordinates
468 RefSCDimension dvc_; // the number of variable + constant coordinates
469
470 Ref<SetIntCoor> variable_; // the variable internal coordinates
471 Ref<SetIntCoor> constant_; // the constant internal coordinates
472
473 Ref<SetIntCoor> fixed_;
474 Ref<SetIntCoor> watched_;
475 Ref<IntCoor> followed_;
476
477 // these are all of the basic coordinates
478 Ref<SetIntCoor> bonds_;
479 Ref<SetIntCoor> bends_;
480 Ref<SetIntCoor> tors_;
481 Ref<SetIntCoor> outs_;
482 // these are provided by the user or generated coordinates that
483 // could not be assigned to any of the above catagories
484 Ref<SetIntCoor> extras_;
485
486 Ref<SetIntCoor> all_;
487
488 // Useful relationships
489 // variable_->n() + constant_->n() = 3N-6(5)
490 // symm_->n() + asymm_->n() = 3N-6(5)
491
492 int update_bmat_; // if 1 recompute the b matrix during to_cartesian
493 int only_totally_symmetric_; // only coors with tot. symm comp. are varied
494 double symmetry_tolerance_; // tol used to find coors with tot. sym. comp.
495 double simple_tolerance_; // tol used to see if a simple is included
496 double coordinate_tolerance_; // tol used to see if a coor is included
497 double cartesian_tolerance_; // tol used in intco->cart transformation
498 double scale_bonds_; // scale factor for bonds
499 double scale_bends_; // scale factor for bends
500 double scale_tors_; // scale factor for tors
501 double scale_outs_; // scale factor for outs
502
503 int nextra_bonds_;
504 int* extra_bonds_;
505
506 int given_fixed_values_; // if true make molecule have given fixed values
507
508 int decouple_bonds_;
509 int decouple_bends_;
510
511 int max_update_steps_;
512 double max_update_disp_;
513
517 virtual void init();
520 virtual void new_coords();
522 virtual void read_keyval(const Ref<KeyVal>&);
523
524 // control whether or not to print coordinates when they are formed
525 int form_print_simples_;
526 int form_print_variable_;
527 int form_print_constant_;
528 int form_print_molecule_;
529 public:
637
638 virtual ~IntMolecularCoor();
640
643 virtual void form_coordinates(int keep_variable=0) =0;
644
647 virtual int all_to_cartesian(const Ref<Molecule> &,RefSCVector&internal);
650 virtual int all_to_internal(const Ref<Molecule> &,RefSCVector&internal);
651
655 virtual int to_cartesian(const Ref<Molecule> &,const RefSCVector&internal);
656 virtual int to_internal(RefSCVector&internal);
657 virtual int to_cartesian(RefSCVector&cartesian,RefSCVector&internal);
658 virtual int to_internal(RefSCVector&internal,RefSCVector&cartesian);
659 virtual int to_cartesian(RefSymmSCMatrix&cart,RefSymmSCMatrix&internal);
660 virtual int to_internal(RefSymmSCMatrix&internal,RefSymmSCMatrix&cart);
661 virtual void print(std::ostream& =ExEnv::out0()) const;
662 virtual void print_simples(std::ostream& =ExEnv::out0()) const;
663 virtual void print_variable(std::ostream& =ExEnv::out0()) const;
664 virtual void print_constant(std::ostream& =ExEnv::out0()) const;
666};
667
668// ///////////////////////////////////////////////////////////////////////
669
680{
681 protected:
682 // true if coordinates should be changed during optimization
683 int change_coordinates_;
684 // true if hessian should be transformed too (should always be true)
685 int transform_hessian_;
686 // max value for the condition number if coordinates can be changed
687 double max_kappa2_;
688
689 void init();
690 public:
712
713 virtual ~SymmMolecularCoor();
715
718 void form_coordinates(int keep_variable=0);
719
724
728
729 void print(std::ostream& =ExEnv::out0()) const;
730};
731
732// ///////////////////////////////////////////////////////////////////////
733
756
757// ///////////////////////////////////////////////////////////////////////
758
764{
765 private:
766 protected:
767 RefSCDimension dim_; // the number of atoms x 3
768
770 virtual void init();
771 public:
776
777 virtual ~CartMolecularCoor();
778
780
783 virtual int to_cartesian(const Ref<Molecule>&,const RefSCVector&internal);
784 virtual int to_internal(RefSCVector&internal);
785 virtual int to_cartesian(RefSCVector&cartesian,RefSCVector&internal);
786 virtual int to_internal(RefSCVector&internal,RefSCVector&cartesian);
787 virtual int to_cartesian(RefSymmSCMatrix&cart,RefSymmSCMatrix&internal);
788 virtual int to_internal(RefSymmSCMatrix&internal,RefSymmSCMatrix&cart);
789 virtual void print(std::ostream& =ExEnv::out0()) const;
790 virtual void print_simples(std::ostream& =ExEnv::out0()) const;
791 void guess_hessian(RefSymmSCMatrix&hessian);
793};
794
796// end of addtogroup ChemistryMolecule
797
798}
799
800#endif
801
802// Local Variables:
803// mode: c++
804// c-file-style: "CLJ"
805// End:
Definition bitarray.h:69
The CartMolecularCoor class implements Cartesian coordinates in a way suitable for use in geometry op...
Definition coor.h:764
virtual int to_internal(RefSymmSCMatrix &internal, RefSymmSCMatrix &cart)
Convert the Cartesian coordinate Hessian cartesian'' to internal coordinates and copy the result toin...
virtual int to_internal(RefSCVector &internal, RefSCVector &cartesian)
Convert the Cartesian coordinate gradients in cartesian'' to internal coordinates and copy these inte...
virtual RefSCDimension dim()
These implement the virtual functions inherited from MolecularCoor.
virtual int to_cartesian(RefSymmSCMatrix &cart, RefSymmSCMatrix &internal)
Convert the internal coordinate Hessian internal'' to Cartesian coordinates and copy the result tocar...
RefSymmSCMatrix inverse_hessian(RefSymmSCMatrix &)
Calculate an approximate hessian and place the result in `‘hessian’'.
virtual int to_cartesian(RefSCVector &cartesian, RefSCVector &internal)
Convert the internal coordinate gradients in internal'' to Cartesian coordinates and copy these Carte...
virtual void init()
Initializes the dimensions.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
virtual int to_internal(RefSCVector &internal)
Fill in the vector `‘internal’' with the current internal coordinates.
CartMolecularCoor(const Ref< KeyVal > &)
The KeyVal constructor.
virtual void print(std::ostream &=ExEnv::out0()) const
Print the coordinate.
static std::ostream & out0()
Return an ostream that writes from node 0.
IntCoorGen generates a set of simple internal coordinates for a molecule.
Definition coor.h:245
IntCoorGen(const Ref< KeyVal > &)
The KeyVal constructor.
static std::vector< std::set< int > > find_disconnected_subgraphs(const BitArrayLTri &adjmat)
given the adjacency matrix find all disconnected subgraphs, each subgraph is specified by a set of ve...
static BitArrayLTri adjacency_matrix(const Molecule &mol, double radius_scaling_factor=1.1)
computes the adjacency matrix for this molecule using atomic radii and the scaling_factor
virtual void print(std::ostream &out=ExEnv::out0()) const
Print out information about this.
void save_data_state(StateOut &)
Standard member.
IntCoorGen(const Ref< Molecule > &, int nextra=0, int *extra=0)
Create an IntCoorGen given a Molecule and, optionally, extra bonds.
void connect_subgraphs(const Molecule &mol, BitArrayLTri &adjacency_matrix)
(potentially) modifies the adjacency matrix to make sure that there are no disconnected subgraphs
virtual void generate(const Ref< SetIntCoor > &)
This generates a set of internal coordinates.
The IntCoor abstract class describes an internal coordinate of a molecule.
Definition coor.h:45
virtual const char * ctype() const =0
Returns a string representation of the type of coordinate this is.
virtual double preferred_value() const
Returns the value of the coordinate in more familiar units.
IntCoor(const Ref< KeyVal > &)
The KeyVal constructor.
virtual int equivalent(Ref< IntCoor > &)=0
Test to see if this internal coordinate is equivalent to that one.
virtual double value() const
Returns the value of the coordinate in atomic units or radians.
virtual void print(std::ostream &o=ExEnv::out0()) const
Print information about the coordinate.
virtual void set_value(double)
Sets the value of the coordinate in atomic units or radians.
virtual double force_constant(Ref< Molecule > &)=0
Returns the value of the force constant associated with this coordinate.
virtual void bmat(const Ref< Molecule > &, RefSCVector &bmat, double coef=1.0)=0
Fill in a row the the B matrix.
virtual void update_value(const Ref< Molecule > &)=0
Recalculate the value of the coordinate.
IntCoor(const char *label=0)
This constructor takes a string containing a label for the internal coordinate.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
virtual const char * label() const
Returns the string containing the label for the internal coordinate.
The IntMolecularCoor abstract class describes a molecule's coordinates in terms of internal coordinat...
Definition coor.h:458
virtual void new_coords()
Allocates memory for the SetIntCoor's used to store the simple and internal coordinates.
IntMolecularCoor(const Ref< KeyVal > &)
The KeyVal constructor.
virtual void read_keyval(const Ref< KeyVal > &)
Reads the KeyVal input.
virtual int all_to_internal(const Ref< Molecule > &, RefSCVector &internal)
Like to_internal(), except all internal coordinates are considered, not just the variable ones.
int nconstrained()
Returns the number of constrained coordinates.
virtual int to_internal(RefSCVector &internal, RefSCVector &cartesian)
Convert the Cartesian coordinate gradients in cartesian'' to internal coordinates and copy these inte...
virtual void print(std::ostream &=ExEnv::out0()) const
Print the coordinate.
virtual int all_to_cartesian(const Ref< Molecule > &, RefSCVector &internal)
Like to_cartesians(), except all internal coordinates are considered, not just the variable ones.
virtual void form_coordinates(int keep_variable=0)=0
Actually form the variable and constant internal coordinates from the simple internal coordinates.
virtual int to_cartesian(RefSymmSCMatrix &cart, RefSymmSCMatrix &internal)
Convert the internal coordinate Hessian internal'' to Cartesian coordinates and copy the result tocar...
virtual int to_internal(RefSCVector &internal)
Fill in the vector `‘internal’' with the current internal coordinates.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
virtual RefSCDimension dim()
These implement the virtual functions inherited from MolecularCoor.
virtual void init()
This is called by the constructors of classes derived from IntMolecularCoor.
virtual int to_internal(RefSymmSCMatrix &internal, RefSymmSCMatrix &cart)
Convert the Cartesian coordinate Hessian cartesian'' to internal coordinates and copy the result toin...
virtual int to_cartesian(RefSCVector &cartesian, RefSCVector &internal)
Convert the internal coordinate gradients in internal'' to Cartesian coordinates and copy these Carte...
The MolecularCoor abstract class describes the coordinate system used to describe a molecule.
Definition coor.h:351
virtual int to_internal(RefSCVector &internal)=0
Fill in the vector `‘internal’' with the current internal coordinates.
virtual int nconstrained()
Returns the number of constrained coordinates.
Ref< Molecule > molecule() const
Returns the molecule.
Definition coor.h:388
virtual int to_internal(RefSCVector &internal, RefSCVector &cartesian)=0
Convert the Cartesian coordinate gradients in cartesian'' to internal coordinates and copy these inte...
virtual Ref< NonlinearTransform > change_coordinates()
When this is called, MoleculeCoor may select a new internal coordinate system and return a transform ...
MolecularCoor(const Ref< KeyVal > &)
The KeyVal constructor.
virtual int to_cartesian(RefSCVector &cartesian, RefSCVector &internal)=0
Convert the internal coordinate gradients in internal'' to Cartesian coordinates and copy these Carte...
virtual int to_cartesian(RefSymmSCMatrix &cartesian, RefSymmSCMatrix &internal)=0
Convert the internal coordinate Hessian internal'' to Cartesian coordinates and copy the result tocar...
virtual void print(std::ostream &=ExEnv::out0()) const =0
Print the coordinate.
RefSCDimension dim_natom3()
Returns a smart reference to an SCDimension equal to the number of atoms in the molecule times 3.
Definition coor.h:385
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
virtual RefSymmSCMatrix inverse_hessian(RefSymmSCMatrix &)=0
Calculate an approximate hessian and place the result in `‘hessian’'.
virtual int to_internal(RefSymmSCMatrix &internal, RefSymmSCMatrix &cartesian)=0
Convert the Cartesian coordinate Hessian cartesian'' to internal coordinates and copy the result toin...
int to_cartesian(const RefSCVector &internal)
Given a set of displaced internal coordinates, update the cartesian coordinates of the Molecule conta...
virtual RefSCDimension dim()=0
Returns a smart reference to an SCDimension equal to the number of coordinates (be they Cartesian,...
The Molecule class contains information about molecules.
Definition molecule.h:153
The RedundMolecularCoor class provides a redundant set of simple internal coordinates.
Definition coor.h:737
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void form_coordinates(int keep_variable=0)
Actually form the variable and constant internal coordinates from the simple internal coordinates.
RedundMolecularCoor(const Ref< KeyVal > &)
The KeyVal constructor.
void guess_hessian(RefSymmSCMatrix &hessian)
Form the approximate hessian.
RefSymmSCMatrix inverse_hessian(RefSymmSCMatrix &)
Invert the hessian.
The RefSCDimension class is a smart pointer to an SCDimension specialization.
Definition dim.h:152
The RefSCMatrix class is a smart pointer to an SCMatrix specialization.
Definition matrix.h:135
The RefSCVector class is a smart pointer to an SCVector specialization.
Definition matrix.h:55
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization.
Definition matrix.h:265
A template class that maintains references counts.
Definition ref.h:361
Base class for objects that can save/restore state.
Definition state.h:45
The SetIntCoor class describes a set of internal coordinates.
Definition coor.h:188
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
void add(const Ref< IntCoor > &)
Adds an internal coordinate to the set.
void clear()
Removes all coordinates from the set.
void add(const Ref< SetIntCoor > &)
Adds all the elements of another set to this one.
virtual void bmat(const Ref< Molecule > &, RefSCMatrix &)
Compute the B matrix the old-fashioned way.
SetIntCoor(const Ref< KeyVal > &)
The KeyVal constructor.
virtual void guess_hessian(Ref< Molecule > &, RefSymmSCMatrix &)
Create an approximate Hessian for this set of coordinates.
int n() const
Returns the number of coordinates in the set.
virtual void fd_bmat(const Ref< Molecule > &, RefSCMatrix &)
Compute the B matrix by finite displacements.
Ref< IntCoor > coor(int i) const
Returns a reference to the i'th coordinate in the set.
virtual void values_to_vector(const RefSCVector &)
Copy the values of the internal coordinates to a vector.
virtual void update_values(const Ref< Molecule > &)
Recalculate the values of the internal coordinates in the set.
virtual void print_details(const Ref< Molecule > &, std::ostream &=ExEnv::out0()) const
Print the coordinates in the set.
void pop()
Removes the last coordinate from this set.
Restores fundamental and user-defined types from images created with StateOut.
Definition statein.h:79
Serializes fundamental and user-defined types.
Definition stateout.h:71
SumIntCoor is used to construct linear combinations of internal coordinates.
Definition coor.h:119
double force_constant(Ref< Molecule > &)
Returns the weighted sum of the individual force constants.
void normalize()
This function normalizes all the coefficients.
void add(Ref< IntCoor > &, double coef)
Add a coordinate to the linear combination.
void update_value(const Ref< Molecule > &)
Recalculate the value of the coordinate.
double preferred_value() const
Returns the value of the coordinate in a.u. and radians.
SumIntCoor(const Ref< KeyVal > &)
The KeyVal constructor.
SumIntCoor(const char *)
This constructor takes a string containing a label for this coordinate.
void print_details(const Ref< Molecule > &, std::ostream &=ExEnv::out0()) const
Print the individual coordinates in the sum with their coefficients.
int equivalent(Ref< IntCoor > &)
Always returns 0.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
const char * ctype() const
Always returns `‘SUM’'.
int n()
Returns the number of coordinates in this linear combination.
void bmat(const Ref< Molecule > &, RefSCVector &bmat, double coef=1.0)
Fill in a row the the B matrix.
The SymmMolecularCoor class derives from IntMolecularCoor.
Definition coor.h:680
void init()
This is called by the constructors of classes derived from IntMolecularCoor.
void form_coordinates(int keep_variable=0)
Actually form the variable and constant internal coordinates from simple internal coordinates.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
SymmMolecularCoor(const Ref< KeyVal > &)
The KeyVal constructor.
void guess_hessian(RefSymmSCMatrix &hessian)
Form the approximate hessian.
RefSymmSCMatrix inverse_hessian(RefSymmSCMatrix &)
Invert the hessian.
void print(std::ostream &=ExEnv::out0()) const
Print the coordinate.
Ref< NonlinearTransform > change_coordinates()
This overrides MoleculeCoor's change_coordinates and might transform to a new set of coordinates.
Contains all MPQC code up to version 3.
Definition mpqcin.h:14

Generated at Wed Sep 25 2024 02:45:28 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.12.0.