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

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

#include <curvature.h>

Public Attributes

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

Detailed Description

The C interface for LOSC curvature class of version 1.

Curvature version 1 is defined as \( \kappa \) in Eq. 3 in the original LOSC paper (https://doi.org/10.1093/nsr/nwx11).

See also
losc_curvature_v1_create(): create a LosCurvatureV1 object.
losc_curvature_v1_free(): free a LosCurvatureV1 object.

Member Data Documentation

LoscCurvatureBase* LoscCurvatureV1::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 LoscCurvatureV1 *.
// 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(* LoscCurvatureV1::set_tau) (const LoscCurvatureV1 *self, double tau)

Set parameter tau.

Parameters
[in]tauparameter tau.
Example
// Assume `pV1` is a existing variable with type `LoscCurvatureV1 *`.
// Demo: set parameter tau with 0.8.
pV1->set_tau(pV1, 0.8);