---
name: "sc_SetIntCoor"
section: "3"
platform: "linux"
package: "libsc-doc"
version: "2.3.1-22"
release: "Debian 12 (Bookworm)"
platforms: ["linux"]
url: "https://new.carta.tech/sc_SetIntCoor"
---

# sc\_SetIntCoor(3)

The SetIntCoor class describes a set of internal coordinates.

## NAME

sc::SetIntCoor - The **SetIntCoor** class describes a set of internal coordinates.

## SYNOPSIS

`#include <coor.h>`

Inherits **sc::SavableState**.

### 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.

### Additional Inherited Members

## 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 $i$ for $0  assigned to **IntCoor** objects.

## Member Function Documentation

### 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.

### 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**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
