Quantum 3xplorer (Q3)
An AI-native quantum simulation engine
Loading...
Searching...
No Matches
q3::XCFunctionalFactory Class Reference

#include <factory.hpp>

Static Public Member Functions

static std::unique_ptr< XCFunctional > create (const std::string &name, int number_of_spin_components=1)
 

Detailed Description

Factory for XC functionals. Supports: "PZ", "LDA", "PBE", "PBEsol", "BLYP", "revPBE", "RPBE", "libxc:X:C" (ids or LibXC names), or QE's "XC-iii-jjj-kkk-lll" form.

Definition at line 29 of file factory.hpp.

Member Function Documentation

◆ create()

static std::unique_ptr< XCFunctional > q3::XCFunctionalFactory::create ( const std::string &  name,
int  number_of_spin_components = 1 
)
inlinestatic

Create an XC functional by name. number_of_spin_components: 1=unpolarized, 2=spin-polarized

Match on a case-folded copy throughout. A parsed input arrives lower-cased, but a configuration built in code can spell the name any way. Before the input was normalized, the YAML parser upper-cased model.functional, so libxc:117:130 reached here as LIBXC:117:130 and never matched the lower-case prefix test below, and each alias had to be spelled out twice to cover the two cases anyone happened to try.

Hammer-Hansen-Norskov exchange with PBE correlation – the pair libxc:117:130 spells out by number. Hammer, Hansen and Norskov, Phys. Rev. B 59, 7413 (1999).

Definition at line 35 of file factory.hpp.

Referenced by q3::KohnShamSCFIterator::initialize().


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