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

# sc\_IntCoorGen(3)

IntCoorGen generates a set of simple internal coordinates for a molecule.

## NAME

sc::IntCoorGen - **IntCoorGen** generates a set of simple internal coordinates for a molecule.

## SYNOPSIS

`#include <coor.h>`

Inherits **sc::SavableState**.

### Public Member Functions

**IntCoorGen** (const **Ref**\< **Molecule** \> &, int nextra=0, int \*extra=0)\
 Create an **IntCoorGen** given a **Molecule** and, optionally, extra bonds.  **IntCoorGen** (const **Ref**\< **KeyVal** \> &)\
 The **KeyVal** constructor.  **IntCoorGen** (**StateIn** &)\
 void **save\_data\_state** (**StateOut** &)\
 Standard member.  virtual void **generate** (const **Ref**\< **SetIntCoor** \> &)\
 This generates a set of internal coordinates.  virtual void **print** (std::ostream &out=**ExEnv::out0**()) const\
 Print out information about this.

### Protected Member Functions

void **init\_constants** ()\
 double **cos\_ijk** (**Molecule** &m, int i, int j, int k)\
 int **hterminal** (**Molecule** &m, **BitArrayLTri** &bonds, int i)\
 int **nearest\_contact** (int i, **Molecule** &m)\
 void **add\_bonds** (const **Ref**\< **SetIntCoor** \> &list, **BitArrayLTri** &bonds, **Molecule** &m)\
 void **add\_bends** (const **Ref**\< **SetIntCoor** \> &list, **BitArrayLTri** &bonds, **Molecule** &m)\
 void **add\_tors** (const **Ref**\< **SetIntCoor** \> &list, **BitArrayLTri** &bonds, **Molecule** &m)\
 void **add\_out** (const **Ref**\< **SetIntCoor** \> &list, **BitArrayLTri** &bonds, **Molecule** &m)\

### Protected Attributes

**Ref**\< **Molecule** \> **molecule\_**\
 int **linear\_bends\_**\
 int **linear\_lbends\_**\
 int **linear\_tors\_**\
 int **linear\_stors\_**\
 int **nextra\_bonds\_**\
 int \* **extra\_bonds\_**\
 double **linear\_bend\_thres\_**\
 double **linear\_tors\_thres\_**\
 double **radius\_scale\_factor\_**\

### Additional Inherited Members

## Detailed Description

**IntCoorGen** generates a set of simple internal coordinates for a molecule.

## Constructor & Destructor Documentation

### sc::IntCoorGen::IntCoorGen (const Ref\< Molecule \> &, int nextra = `0`, int \* extra = `0`)

Create an **IntCoorGen** given a **Molecule** and, optionally, extra bonds. **IntCoorGen** keeps a reference to extra and deletes it when the destructor is called.

### sc::IntCoorGen::IntCoorGen (const Ref\< KeyVal \> &)

The **KeyVal** constructor.

- `molecule`

  A **Molecule** object. There is no default.

- `radius_scale_factor`

  If the distance between two atoms is less than the radius scale factor times the sum of the atoms' atomic radii, then a bond is placed between the two atoms for the purpose of finding internal coordinates. The default is 1.1.

- `linear_bend_threshold`

  A bend angle in degress greater than 180 minus this keyword's floating point value is considered a linear bend. The default is 1.0.

- `linear_tors_threshold`

  The angles formed by atoms a-b-c and b-c-d are checked for near linearity. If an angle in degrees is greater than 180 minus this keyword's floating point value, then the torsion is classified as a linear torsion. The default is 1.0.

- `linear_bend`

  Generate **BendSimpleCo** objects to describe linear bends. The default is false.

- `linear_lbend`

  Generate pairs of **LinIPSimpleCo** and **LinIPSimpleCo** objects to describe linear bends. The default is true.

- `linear_tors`

  Generate **TorsSimpleCo** objects to described linear torsions. The default is false.

- `linear_stors`

  Generate **ScaledTorsSimpleCo** objects to described linear torsions. The default is true.

- `extra_bonds`

  This is a vector of atom numbers, where elements $2 (i-1) + 1$ and $2 i$ specify the atoms which are bound in extra bond $i$. The extra\_bonds keyword should only be needed for weakly interacting fragments, otherwise all the needed bonds will be found.

## Member Function Documentation

### virtual void sc::IntCoorGen::print (std::ostream & out = ExEnv::out0`()`) const` [virtual]`

Print out information about this.

Reimplemented from **sc::DescribedClass**.

### void sc::IntCoorGen::save\_data\_state (StateOut &)` [virtual]`

Standard member.

Reimplemented from **sc::SavableState**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
