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

# sc\_SphericalTransform(3)

This is a base class for a container for a sparse Cartesian to solid harmonic basis function transformation.

## NAME

sc::SphericalTransform - This is a base class for a container for a sparse Cartesian to solid harmonic basis function transformation.

## SYNOPSIS

`#include <transform.h>`

Inherited by **sc::ISphericalTransform**, **sc::SphericalTransformCCA**, **sc::SphericalTransformCints**, and **sc::SphericalTransformV3**.

### Public Member Functions

void **add** (int **a**, int **b**, int **c**, double **coef**, int **pureindex**)\
 Adds another **SphericalTransformComponent**.  int **cartindex** (int i) const\
 Returns the Cartesian basis function index of component i.  int **pureindex** (int i) const\
 Returns the solid harmonic basis function index of component i.  double **coef** (int i) const\
 Returns the transform coefficient of component i.  int **a** (int i) const\
 Returns the Cartesian basis function's x exponent of component i.  int **b** (int i) const\
 Returns the Cartesian basis function's y exponent of component i.  int **c** (int i) const\
 Returns the Cartesian basis function's z exponent of component i.  int **l** () const\
 Returns the angular momentum.  int **n** () const\
 Returns the number of components in the transformation.  virtual **SphericalTransformComponent** \* **new\_components** ()=0\
 This must create **SphericalTransformComponent**'s of the appropriate specialization.

### Protected Member Functions

**SphericalTransform** (int **l**, int subl=-1)\
 This constructs the **SphericalTransform** for the given Cartesian angular momentum l and solid harmonic angular momentum subl.  virtual void **init** ()\
 This determines all of the components of the transformation.

### Protected Attributes

int **n\_**\
 int **l\_**\
 int **subl\_**\
 **SphericalTransformComponent** \* **components\_**\

## Detailed Description

This is a base class for a container for a sparse Cartesian to solid harmonic basis function transformation.

## Constructor & Destructor Documentation

### sc::SphericalTransform::SphericalTransform (int l, int subl = `-1`)` [protected]`

This constructs the **SphericalTransform** for the given Cartesian angular momentum l and solid harmonic angular momentum subl. Usually, l and subl will be the same. They would differ when the S component of a D Cartesian shell or the P component of an F Cartesian shell is desired, for example (see the natural atomic orbital code for an example of such use). The init member must be called to complete initialization. \

## Member Function Documentation

### virtual void sc::SphericalTransform::init ()` [protected]`, ` [virtual]`

This determines all of the components of the transformation. It should be possible to implement the **SphericalTransformComponent::init** specialization in such a way that the default **SphericalTransform::init** can be used. \

Reimplemented in **sc::ISphericalTransform**.

### virtual SphericalTransformComponent \* sc::SphericalTransform::new\_components ()` [pure virtual]`

This must create **SphericalTransformComponent**'s of the appropriate specialization.

Implemented in **sc::SphericalTransformCints**, **sc::ISphericalTransformCints**, **sc::SphericalTransformCCA**, **sc::ISphericalTransformCCA**, **sc::SphericalTransformV3**, and **sc::ISphericalTransformV3**.

## Author

Generated automatically by Doxygen for MPQC from the source code.
