sc::mPW91XFunctional(3)

πŸ“¦
version 2.3.1 Β· 5 versions
, in ubuntu jammy

πŸ’… sc::mPW91XFunctional β€” a page from the MPQC manual (section 3), bestie

okay so first things first: this is sc::mPW91XFunctional, and the manual it lives in is MPQC, section 3. Got it? Good. Let's get into it ✨

🌸 NAME 🌸

sc::mPW91XFunctional β€” this class implements a modified 1991 Perdew-Wang exchange functional. that's it, that's the whole vibe. it's giving "I do one thing and I do it well" πŸ’–

✨ SYNOPSIS ✨

#include <functional.h>

and the nepo-baby situation: it inherits from sc::DenFunctional. so everything DenFunctional can do? it's in the bloodline, periodt. πŸ‘‘

πŸŽ€ Public Types πŸŽ€

  • enum Func { B88, PW91, mPW91 } β€” the three flavors of this functional, okurrr. pick your fighter.

πŸ¦‹ Public Member Functions πŸ¦‹

  • mPW91XFunctional () β€” constructs an mPW exchange functional. no arguments, no drama, just vibes.
  • mPW91XFunctional (Func variant) β€” constructs an mPW form exchange functional using the given functional variant. you hand it a variant and it does its thing.
  • mPW91XFunctional (const Ref< KeyVal > &) β€” constructs an mPW form exchange functional, but this time it's reading from a KeyVal. very "I get my info from my sources" of it.
  • mPW91XFunctional (StateIn &) β€” the StateIn constructor. no description given, it's mysterious, it's main character energy πŸ™ˆ
  • void save_data_state (StateOut &) β€” saves the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. the order matters, do not play with it, fr fr.
  • int need_density_gradient () β€” it tells you whether it needs a density gradient.
  • void point (const PointInputData &, PointOutputData &) β€” this is where the actual point math happens, taking point input data and filling in point output data.
  • void init_constants (Func) β€” sets up the constants for a given Func.

πŸ’œ Protected Member Functions πŸ’œ

  • void spin_contrib (const PointInputData::SpinData &, double &mpw, double &dmpw_dr, double &dmpw_dg) β€” the spin contribution helper. takes spin data and writes into mpw, dmpw_dr, and dmpw_dg. protected, so it's for the class's inner circle only 🫢

🌈 Protected Attributes 🌈

  • double b
  • double beta
  • double c
  • double d
  • double a_x
  • double x_d_coef

all six are doubles, all six are protected, and all six are literally just sitting there being constants. iconic honestly.

⭐ Additional Inherited Members ⭐

yeah, there's more, but it's inherited, so it's not this class's story to tell. iykyk.


πŸ”₯ Detailed Description πŸ”₯

Implements a modified 1991 Perdew-Wang exchange functional. πŸ’«

and here's the receipt, the citation, the "credit where credit is due": C. Adamo and V. Barone, J. Chem. Phys., 108(2), pp. 664-674, 1998. no cap, that's the paper. πŸ“š


🧚 Constructor & Destructor Documentation 🧚

sc::mPW91XFunctional::mPW91XFunctional (Func variant)

Constructs an mPW form exchange functional using the given functional variant. and the variant, bestie, can be B88, PW91, or mPW91. those are your three options, don't come at me with a fourth πŸ’…

sc::mPW91XFunctional::mPW91XFunctional (const Ref< KeyVal > &)

Constructs an mPW form exchange functional β€” and this one's a yapper, it reads keywords. it recognizes the following:

  • constants β€” this can be B88 to give the Becke88 exchange functional; PW91, to give results similar to the PW91 exchange functional; or mPW91, to give the new functional developed by Adamo and Barone. three choices, same trio, slay.
  • b β€” a keyword it recognizes. (no description in the original, so no tea to spill πŸ™ˆ)
  • beta β€” also a recognized keyword. that's the whole note.
  • c β€” recognized keyword, that's it.
  • d β€” recognized keyword, we move.
  • x_d_coef β€” the coefficient of $x^d$, where $x$ is the reduced gradient. that's the one with actual lore πŸŽ€

πŸ’€ Member Function Documentation πŸ’€

void sc::mPW91XFunctional::save_data_state (StateOut &) [virtual]

Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR initializes them. This must be implemented by the derived class if the class has data. so like… if you have data, you must do this. it's not optional, it's not a suggestion, it's the rule periodt.

Reimplemented from sc::DenFunctional.


πŸ“ Author πŸ“

Generated automatically by Doxygen for MPQC from the source code. so nobody actually wrote this by hand, it was birthed by the machine, and honestly? respect. πŸ€–βœ¨


and that's the page, bestie!! πŸ’– this was Version 2.3.1, dated Sun Oct 4 2020 β€” a whole little time capsule, and you just read it. go forth and compute πŸ¦‹πŸŒΈπŸ‘‘

πŸ“¦ where this page comes from