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

# sc\_DistShellPair(3)

Distributes shell pairs either statically or dynamically.

## NAME

sc::DistShellPair - Distributes shell pairs either statically or dynamically.

## SYNOPSIS

`#include <distshpair.h>`

### Classes

class **SharedData**\
 This is used to store data that must be shared between all cooperating shell pairs.

### Public Member Functions

**DistShellPair** (const **Ref**\< **MessageGrp** \> &, int nthread, int mythread, const **Ref**\< **ThreadLock** \> &lock, const **Ref**\< **GaussianBasisSet** \> &bs1, const **Ref**\< **GaussianBasisSet** \> &bs2, bool dynamic, **SharedData** \*shared=0)\
 The **DistShellPair** class is used to distribute shell pair indices among tasks.  void **init** ()\
 Resets to the first shell pair.  void **set\_debug** (int d)\
 How much stuff to print out.  void **set\_print\_percent** (double p)\
 How often to print status from node 0.  int **get\_task** (int &P, int &Q)\
 Puts the current PQ shell pair into P and Q and returns 1.

## Detailed Description

Distributes shell pairs either statically or dynamically.

## Constructor & Destructor Documentation

### sc::DistShellPair::DistShellPair (const Ref\< MessageGrp \> &, int nthread, int mythread, const Ref\< ThreadLock \> & lock, const Ref\< GaussianBasisSet \> & bs1, const Ref\< GaussianBasisSet \> & bs2, bool dynamic, SharedData \* shared = `0`)

The **DistShellPair** class is used to distribute shell pair indices among tasks. Both static (round-robin) and dynamic methods are supported.

## Member Function Documentation

### int sc::DistShellPair::get\_task (int & P, int & Q)

Puts the current PQ shell pair into P and Q and returns 1. When there are no more shell pairs to be processed by this processor, 0 is returned. Once we start doing get\_tasks, we have to go to the end if dynamic load balancing is used.

P belongs to bs1, and Q belongs to bs2. If (bs1 == bs2) then P is greater or equal to Q.

## Author

Generated automatically by Doxygen for MPQC from the source code.
