Localized Orbital Scaling Correction (LOSC) C library
LoscCurvatureV2 Struct Reference

The C interface for LOSC curvature class of version 2. More...

#include <curvature.h>

Public Attributes

LoscCurvatureBasep_base
 A pointer to a LoscCurvatureBase variable. More...
 
void(* set_tau )(const LoscCurvatureV2 *self, double tau)
 Set parameter tau. More...
 
void(* set_zeta )(const LoscCurvatureV2 *self, double zeta)
 Set parameter zeta. More...
 

Detailed Description

The C interface for LOSC curvature class of version 2.

The curvature matrix is defined as \(\tilde{\kappa}\) in Eq. 8 of the LOSC2 paper (J. Phys. Chem. Lett. 2020, 11, 4, 1528-1535).

See also
losc_curvature_v2_create(): create a LosCurvatureV2 object.
losc_curvature_v2_free(): free a LosCurvatureV2 object.

Member Data Documentation

LoscCurvatureBase* LoscCurvatureV2::p_base

A pointer to a LoscCurvatureBase variable.

Use this variable to call functions that are provided in the LoscCurvatureBase.

Example
Demo of calling functions that provided in the LoscCurvatureBase. Assume a variable pCurvature exists with type of LoscCurvatureV2 *.
// Demo: get number of AOs by calling LoscCurvatureV1.nbasis
size_t nbasis = pCurvature->p_base->nbasis(pCurvature);
// Demo: get number of LOs by calling LoscCurvatureV1.nlo
size_t nlo = pCurvature->p_base->nlo(pCurvature);
// Demo: calculate the curvature V1 matrix.
losc_matrix *K = losc_matrix_create(nlo, nlo);
pCurvature->p_base->kappa(pCurvature->p_base, K);
See also
LoscCurvatureBase: see all the functions provided in the curvature base structure.
void(* LoscCurvatureV2::set_tau) (const LoscCurvatureV2 *self, double tau)

Set parameter tau.

Example
// Assume `pV2` is a existing variable with type `LoscCurvatureV2 *`.
// Demo: set parameter tau to be 0.8.
pV2->set_tau(pV2, 0.8);
void(* LoscCurvatureV2::set_zeta) (const LoscCurvatureV2 *self, double zeta)

Set parameter zeta.

Example
// Assume `pV2` is a existing variable with type `LoscCurvatureV2 *`.
// Demo: set parameter zeta to be 0.8.
pV2->set_zeta(pV2, 0.8);