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

# sc\_IntCoor(3)

The IntCoor abstract class describes an internal coordinate of a molecule.

## NAME

sc::IntCoor - The **IntCoor** abstract class describes an internal coordinate of a molecule.

## SYNOPSIS

`#include <coor.h>`

Inherits **sc::SavableState**.

Inherited by **sc::SimpleCo**, and **sc::SumIntCoor**.

### Public Member Functions

**IntCoor** (**StateIn** &)\
 **IntCoor** (const **IntCoor** &)\
 **IntCoor** (const char \***label**=0)\
 This constructor takes a string containing a label for the internal coordinate.  **IntCoor** (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.  virtual const char \* **label** () const\
 Returns the string containing the label for the internal coordinate.  virtual double **value** () const\
 Returns the value of the coordinate in atomic units or radians.  virtual void **set\_value** (double)\
 Sets the value of the coordinate in atomic units or radians.  virtual double **preferred\_value** () const\
 Returns the value of the coordinate in more familiar units.  virtual const char \* **ctype** () const =0\
 Returns a string representation of the type of coordinate this is.  virtual void **print** (std::ostream &o=**ExEnv::out0**()) const\
 Print information about the coordinate.  virtual void **print\_details** (const **Ref**\< **Molecule** \> &, std::ostream &=**ExEnv::out0**()) const\
 virtual double **force\_constant** (**Ref**\< **Molecule** \> &)=0\
 Returns the value of the force constant associated with this coordinate.  virtual void **update\_value** (const **Ref**\< **Molecule** \> &)=0\
 Recalculate the value of the coordinate.  virtual void **bmat** (const **Ref**\< **Molecule** \> &, **RefSCVector** &bmat, double coef=1.0)=0\
 Fill in a row the the B matrix.  virtual int **equivalent** (**Ref**\< **IntCoor** \> &)=0\
 Test to see if this internal coordinate is equivalent to that one.

### Protected Attributes

char \* **label\_**\
 double **value\_**\

### Static Protected Attributes

static double **bohr\_conv**\
 static double **radian\_conv**\

### Additional Inherited Members

## Detailed Description

The **IntCoor** abstract class describes an internal coordinate of a molecule.

## Constructor & Destructor Documentation

### sc::IntCoor::IntCoor (const char \* label = `0`)

This constructor takes a string containing a label for the internal coordinate. The string is copied.

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

The **KeyVal** constructor.

- `label`

  A label for the coordinate using only to identify the coordinate to the user in printouts. The default is no label.

- `value`

  A value for the coordinate. In the way that coordinates are usually used, the default is to compute a value from the cartesian coordinates in a **Molecule** object.

- `unit`

  The unit in which the value is given. This can be bohr, anstrom, radian, and degree. The default is bohr for lengths and radian for angles.

## Member Function Documentation

### virtual void sc::IntCoor::bmat (const Ref\< Molecule \> &, RefSCVector & bmat, double coef = `1.0`)` [pure virtual]`

Fill in a row the the B matrix.

Implemented in **sc::SumIntCoor**, and **sc::SimpleCo**.

### virtual const char \* sc::IntCoor::ctype () const` [pure virtual]`

Returns a string representation of the type of coordinate this is.

Implemented in **sc::SumIntCoor**, **sc::StreSimpleCo**, **sc::BendSimpleCo**, **sc::TorsSimpleCo**, **sc::ScaledTorsSimpleCo**, **sc::OutSimpleCo**, **sc::LinIPSimpleCo**, and **sc::LinOPSimpleCo**.

### virtual int sc::IntCoor::equivalent (Ref\< IntCoor \> &)` [pure virtual]`

Test to see if this internal coordinate is equivalent to that one. The definition of equivalence is left up to the individual coordinates.

Implemented in **sc::SumIntCoor**, and **sc::SimpleCo**.

### virtual double sc::IntCoor::force\_constant (Ref\< Molecule \> &)` [pure virtual]`

Returns the value of the force constant associated with this coordinate.

Implemented in **sc::SumIntCoor**, and **sc::SimpleCo**.

### virtual double sc::IntCoor::preferred\_value () const` [virtual]`

Returns the value of the coordinate in more familiar units.

Reimplemented in **sc::SumIntCoor**, **sc::StreSimpleCo**, **sc::BendSimpleCo**, **sc::TorsSimpleCo**, **sc::ScaledTorsSimpleCo**, **sc::OutSimpleCo**, **sc::LinIPSimpleCo**, and **sc::LinOPSimpleCo**.

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

Print information about the coordinate.

Reimplemented from **sc::DescribedClass**.

### virtual void sc::IntCoor::print\_details (const Ref\< Molecule \> &, std::ostream & = ExEnv::out0`()`) const` [virtual]`

Reimplemented in **sc::SumIntCoor**, and **sc::SimpleCo**.

### void sc::IntCoor::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**.

Reimplemented in **sc::SumIntCoor**, and **sc::SimpleCo**.

### virtual void sc::IntCoor::update\_value (const Ref\< Molecule \> &)` [pure virtual]`

Recalculate the value of the coordinate.

Implemented in **sc::SumIntCoor**, and **sc::SimpleCo**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
