# sc::SetIntCoor Class Reference

The SetIntCoor class describes a set of internal coordinates. More...

`#include <coor.h>`

Inheritance diagram for sc::SetIntCoor:

List of all members.

## Public Member Functions

| SetIntCoor (StateIn &)
| SetIntCoor (const Ref< KeyVal > &)
| The KeyVal constructor.
void | save_data_state (StateOut &)
| Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.
void | add (const Ref< IntCoor > &)
| Adds an internal coordinate to the set.
void | add (const Ref< SetIntCoor > &)
| Adds all the elements of another set to this one.
void | pop ()
| Removes the last coordinate from this set.
void | clear ()
| Removes all coordinates from the set.
int | n () const
| Returns the number of coordinates in the set.
Ref< IntCoor > | coor (int i) const
| Returns a reference to the i'th coordinate in the set.
virtual void | fd_bmat (const Ref< Molecule > &, RefSCMatrix &)
| Compute the B matrix by finite displacements.
virtual void | bmat (const Ref< Molecule > &, RefSCMatrix &)
| Compute the B matrix the old-fashioned way.
virtual void | guess_hessian (Ref< Molecule > &, RefSymmSCMatrix &)
| Create an approximate Hessian for this set of coordinates.
virtual void | print_details (const Ref< Molecule > &, std::ostream &=ExEnv::out0()) const
| Print the coordinates in the set.
virtual void | update_values (const Ref< Molecule > &)
| Recalculate the values of the internal coordinates in the set.
virtual void | values_to_vector (const RefSCVector &)
| Copy the values of the internal coordinates to a vector.

## Detailed Description

The SetIntCoor class describes a set of internal coordinates.

It can automatically generate these coordinates using a integral coordinate generator object (see the IntCoorGen class) or the internal coordinates can be explicity given.

The following is a sample ParsedKeyVal input for a SetIntCoor object.

      setintcoor<SetIntCoor>: [
        <SumIntCoor>: (
          coor: [
            <StreSimpleCo>:( atoms = [ 1 2 ] )
            <StreSimpleCo>:( atoms = [ 2 3 ] )
            ]
          coef = [ 1.0 1.0 ]
          )
        <BendSimpleCo>:( atoms = [ 1 2 3 ] )
      ]

## Constructor & Destructor Documentation

sc::SetIntCoor::SetIntCoor | ( | const Ref< KeyVal > & |  | ) |

The KeyVal constructor.

`generator`
  A IntCoorGen object that will be used to generate the internal coordinates.

`i`
  A sequence of integer keywords, all for , can be assigned to IntCoor objects.

## Member Function Documentation

void sc::SetIntCoor::save_data_state | ( | StateOut & |  | ) | `[virtual]`

Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them.

This must be implemented by the derived class if the class has data.

Reimplemented from sc::SavableState.

virtual void sc::SetIntCoor::guess_hessian | ( | Ref< Molecule > & | ,
|  | RefSymmSCMatrix & |  |
| ) |  |  | `[virtual]`

Create an approximate Hessian for this set of coordinates.

This Hessian is a symmetric matrix whose i'th diagonal is the force constant for the i'th coordinate in the set.

The documentation for this class was generated from the following file:

- coor.h