GQCP
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Friends | List of all members
GQCP::NuclearFramework Class Reference

#include <NuclearFramework.hpp>

Collaboration diagram for GQCP::NuclearFramework:
Collaboration graph

Public Member Functions

 NuclearFramework (const std::vector< Nucleus > &nuclei)
 
double calculateInternuclearDistanceBetween (const size_t index1, const size_t index2) const
 
std::string description () const
 
const std::vector< Nucleus > & nucleiAsVector () const
 
size_t numberOfNuclei () const
 
size_t totalNucleicCharge () const
 

Static Public Member Functions

static NuclearFramework HChain (const size_t n, const double spacing, const CartesianDirection axis=CartesianDirection::z)
 
static NuclearFramework H2Chain (const size_t n, const double a, const double b, const CartesianDirection axis=CartesianDirection::z)
 
static NuclearFramework HRingFromDistance (const size_t n, const double distance)
 
static NuclearFramework HRingFromRadius (const size_t n, const double radius)
 
static NuclearFramework ReadXYZ (const std::string &xyz_filename)
 

Friends

std::ostream & operator<< (std::ostream &os, const NuclearFramework &nuclear_framework)
 

Detailed Description

A collection of nuclei at fixed positions in space.

The unit of length is chosen to be the atomic unit (a.u.) bohr.

Constructor & Destructor Documentation

◆ NuclearFramework()

GQCP::NuclearFramework::NuclearFramework ( const std::vector< Nucleus > &  nuclei)
Parameters
nucleithe nuclei of the nuclear framework

Member Function Documentation

◆ calculateInternuclearDistanceBetween()

double GQCP::NuclearFramework::calculateInternuclearDistanceBetween ( const size_t  index1,
const size_t  index2 
) const
Parameters
index1the index of the first nucleus
index2the index of the second nucleus
Returns
the distance between the two nuclei at index1 and index2 in bohr

◆ description()

std::string GQCP::NuclearFramework::description ( ) const
inline
Returns
a textual description of this framework.

◆ H2Chain()

NuclearFramework GQCP::NuclearFramework::H2Chain ( const size_t  n,
const double  a,
const double  b,
const CartesianDirection  axis = CartesianDirection::z 
)
static
Parameters
nthe number of H2-molecules
athe internuclear distance in bohr
bthe intermolecular distance in bohr
axisthe Cartesian axis on which the H2-chain should be placed
Returns
a H2-chain with the specified internuclear and intermolecular distances
Parameters
nthe number of H2-molecules
athe internuclear distance in bohr
bthe intermolecular distance in bohr
Returns
a H2-chain with the specified internuclear and intermolecular distances

◆ HChain()

NuclearFramework GQCP::NuclearFramework::HChain ( const size_t  n,
const double  spacing,
const CartesianDirection  axis = CartesianDirection::z 
)
static
Parameters
nthe number of H nuclei
spacingthe internuclear spacing in bohr
axisthe Cartesian axis on which the H-chain should be placed
Returns
a H-chain with equal internuclear spacing
Parameters
nthe number of H nuclei
spacingthe internuclear spacing in bohr
Returns
a H-chain with equal internuclear spacing

◆ HRingFromDistance()

NuclearFramework GQCP::NuclearFramework::HRingFromDistance ( const size_t  n,
const double  distance 
)
static
Parameters
nthe number of hydrogens
distancethe distance (in bohr) between neighbouring hydrogen atoms
Returns
a regular H-ring where neighbouring hydrogens are separated by the given distance

◆ HRingFromRadius()

NuclearFramework GQCP::NuclearFramework::HRingFromRadius ( const size_t  n,
const double  radius 
)
static
Parameters
nthe number of hydrogens
radiusthe radius (in bohr) of the circumscribed circle
Returns
a regular H-ring whose hydrogens are on the circle with the given radius

◆ nucleiAsVector()

const std::vector< Nucleus > & GQCP::NuclearFramework::nucleiAsVector ( ) const
inline
Returns
the nuclei in this nuclear framework as a std::vector

◆ numberOfNuclei()

size_t GQCP::NuclearFramework::numberOfNuclei ( ) const
inline
Returns
the number of nuclei in this nuclear framework

◆ ReadXYZ()

NuclearFramework GQCP::NuclearFramework::ReadXYZ ( const std::string &  xyz_filename)
static

Construct a nuclear framework based on the content of a given .xyz-file. In an .xyz-file, the nuclear coordinates are in Angstrom

Parameters
xyz_filenamethe .xyz-file that contains the nuclear coordinates in Angstrom

◆ totalNucleicCharge()

size_t GQCP::NuclearFramework::totalNucleicCharge ( ) const
Returns
the sum of all the charges of the nuclei

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  os,
const NuclearFramework nuclear_framework 
)
friend
Parameters
osthe output stream which the nuclear framework should be concatenated to
nuclear_frameworkthe nuclear framework that should be concatenated to the output stream
Returns
the updated output stream

The documentation for this class was generated from the following files: