Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
fdd8765
Add swap files to .gitignore
aodongliu Oct 31, 2023
41c5ef0
change H slater radius and fix C++ syntax in trim_left
aodongliu Oct 31, 2023
d13881a
add neo rks/uks skeleton
aodongliu Oct 31, 2023
c7096f3
pass another basis to the load balancer
aodongliu Oct 31, 2023
bae92c6
set up gauxc to call neo_exc_vxc_local_work
aodongliu Oct 31, 2023
a4fc113
attemp to create protonic shell list
aodongliu Oct 19, 2023
4ae109a
try to evaluate protonic density
aodongliu Oct 21, 2023
a7a0f06
first attempt. Begin to debug
aodongliu Oct 24, 2023
747330c
allow neo_eval_exc_exc to return 2 energies
aodongliu Oct 31, 2023
27174cc
correct some errors
aodongliu Oct 24, 2023
f02c26a
fix factor of 2 in electronic EPC
aodongliu Oct 24, 2023
3746c3c
refactor epc functional to be a enum class in GauXC.
aodongliu Oct 27, 2023
26bc531
finished rebasing. Need to change function calls in neo. Non-working atm
aodongliu Oct 31, 2023
a87068d
fix issues to allow energy to match after rebase
aodongliu Oct 31, 2023
b58bea7
add micro batch screening for protons
aodongliu Nov 7, 2023
38819ec
refactor the code after EPC to be electronic & protonic sequentially
aodongliu Nov 7, 2023
bf09224
add naive implementation of proton screening
aodongliu Nov 7, 2023
7695ae0
allow electronic and protonic to use the same scratch space
aodongliu Nov 8, 2023
e6010b3
clean up debug printing
aodongliu Nov 8, 2023
a88b193
fix issues after rebasing to newest master branch
aodongliu Nov 30, 2023
2087728
revert local changes
aodongliu Nov 30, 2023
0ccbf3a
remove epcfunctional enum in GauXC. Will add this in exchcxx
aodongliu Dec 2, 2023
dc6008a
delegate to default LoadBalancerImpl constructor to initialize common…
aodongliu Dec 4, 2023
e887d68
check existance of protonic basis before returning its basis information
aodongliu Dec 4, 2023
3976b71
seperate neo_eval_exc_vxc function and the local driver to its sepera…
aodongliu Dec 4, 2023
c665444
explicitly spell out 'protonic' for class variables and function argu…
aodongliu Dec 4, 2023
eb726de
adding neo functionality to test_xc_integrator
aodongliu Dec 5, 2023
6500365
add second integration in test and revert H radius to GauXC default
aodongliu Dec 5, 2023
c9c266d
adding neo unit tests
aodongliu Dec 6, 2023
a34dbd4
modify NEO UT ref data
aodongliu Dec 6, 2023
74e9426
remote protonic_shell_pairs() as it's not needed atm
aodongliu Dec 6, 2023
b4ee359
remove unwanted changes
aodongliu Jan 6, 2024
dce78bf
fix code after rebase
aodongliu Apr 5, 2024
fca0e48
remove unwanted changes
aodongliu Apr 5, 2024
49ffe97
update integration to be consistent with regular local work driver
aodongliu Apr 6, 2024
2f56f49
edit code for benchmarking vs CQ
aodongliu Apr 26, 2024
ae2f50d
disable mpi to match cq default
aodongliu Apr 26, 2024
722841c
attemp to add epcfunc pointer
aodongliu Apr 27, 2024
a4d61db
epc is now done via exchcxx builtin
aodongliu Apr 27, 2024
6ceb03d
remove debug statements
aodongliu Apr 28, 2024
8865901
fix logic bug where elec den overwrites prot den in epc
aodongliu Apr 29, 2024
7b750e3
remove unwanted changes
aodongliu May 3, 2024
6c93c77
update exchcxx version in cmake
aodongliu May 3, 2024
2f4cc6d
modifying NEO tests
aodongliu May 7, 2024
52dbf13
modified tests to also be able to use epcfunctional
aodongliu May 8, 2024
8d9d97f
fix problems
aodongliu May 8, 2024
265cf4c
added epc tests
aodongliu May 8, 2024
3f505bf
remove unwanted changes
aodongliu May 8, 2024
5be82db
swap alpha/beta prot den after epc
aodongliu Jun 4, 2024
9e78bb8
fix compilation errors after rebase
aodongliu Feb 6, 2026
a089e32
removed unwanted changes
aodongliu Feb 10, 2026
05e3f5e
fix signature of local worker
aodongliu Feb 10, 2026
d7dcc95
remove unwanted changes
aodongliu Feb 10, 2026
9cf1b16
Disable EXC-only check and shellbatched host test for NEO
aodongliu Feb 10, 2026
e144e5c
refactor neo drivers as non-neo. Add back tests
aodongliu Feb 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions include/gauxc/load_balancer.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,12 @@ class LoadBalancer {
const shell_pair_type& shell_pairs() const;
const shell_pair_type& shell_pairs();

/// Return the underlying protonic BasisSet instance used to generate this LoadBalancer
const basis_type& protonic_basis() const;

/// Return the protonic BasisSetMap instance corresponding to protonic basis/molecule
const basis_map_type& protonic_basis_map() const;

/// Return the runtime handle used to construct this LoadBalancer
const RuntimeEnvironment& runtime() const;

Expand Down Expand Up @@ -173,6 +179,10 @@ class LoadBalancerFactory {
LoadBalancer get_instance( const RuntimeEnvironment& rt,
const Molecule& mol, const MolGrid& mg, const BasisSet<double>& bs);

LoadBalancer get_instance( const RuntimeEnvironment& rt,
const Molecule& mol, const MolGrid& mg, const BasisSet<double>& bs,
const BasisSet<double>& bs2 );

/**
* @brief Generate a shared pointer to a LoadBalancer instance per kernel and
* execution space specfication
Expand All @@ -190,6 +200,11 @@ class LoadBalancerFactory {
const RuntimeEnvironment& rt,
const Molecule& mol, const MolGrid& mg, const BasisSet<double>&);

std::shared_ptr<LoadBalancer> get_shared_instance(
const RuntimeEnvironment& rt,
const Molecule& mol, const MolGrid& mg, const BasisSet<double>&,
const BasisSet<double>& );

private:

ExecutionSpace ex_; ///< Execution space for the generated LoadBalancer instances
Expand Down
9 changes: 8 additions & 1 deletion include/gauxc/xc_integrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,8 @@ class XCIntegrator {
using exc_vxc_type_rks = std::tuple< value_type, matrix_type >;
using exc_vxc_type_uks = std::tuple< value_type, matrix_type, matrix_type >;
using exc_vxc_type_gks = std::tuple< value_type, matrix_type, matrix_type, matrix_type, matrix_type >;
using exc_vxc_type_neo_rks = std::tuple< value_type, value_type, matrix_type, matrix_type, matrix_type >;
using exc_vxc_type_neo_uks = std::tuple< value_type, value_type, matrix_type, matrix_type, matrix_type, matrix_type >;
using exc_grad_type = std::vector< value_type >;
using exx_type = matrix_type;
using fxc_contraction_type_rks = matrix_type;
Expand Down Expand Up @@ -72,7 +74,12 @@ class XCIntegrator {
exc_vxc_type_uks eval_exc_vxc ( const MatrixType&, const MatrixType&,
const IntegratorSettingsXC& = IntegratorSettingsXC{} );
exc_vxc_type_gks eval_exc_vxc ( const MatrixType&, const MatrixType&, const MatrixType&, const MatrixType&,
const IntegratorSettingsXC& = IntegratorSettingsXC{});
const IntegratorSettingsXC& = IntegratorSettingsXC{} );

exc_vxc_type_neo_rks neo_eval_exc_vxc( const MatrixType&, const MatrixType&, const MatrixType&,
const IntegratorSettingsXC& = IntegratorSettingsXC{} );
exc_vxc_type_neo_uks neo_eval_exc_vxc( const MatrixType&, const MatrixType&, const MatrixType&, const MatrixType&,
const IntegratorSettingsXC& = IntegratorSettingsXC{} );

exc_grad_type eval_exc_grad( const MatrixType&, const IntegratorSettingsXC& = IntegratorSettingsXC{} );
exc_grad_type eval_exc_grad( const MatrixType&, const MatrixType&, const IntegratorSettingsXC& = IntegratorSettingsXC{} );
Expand Down
22 changes: 19 additions & 3 deletions include/gauxc/xc_integrator/impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,25 @@ template <typename MatrixType>
typename XCIntegrator<MatrixType>::exc_vxc_type_gks
XCIntegrator<MatrixType>::eval_exc_vxc( const MatrixType& Ps, const MatrixType& Pz, const MatrixType& Py, const MatrixType& Px,
const IntegratorSettingsXC& ks_settings ) {
if( not pimpl_ ) GAUXC_PIMPL_NOT_INITIALIZED();
return pimpl_->eval_exc_vxc(Ps, Pz, Py, Px, ks_settings);
};
if( not pimpl_ ) GAUXC_PIMPL_NOT_INITIALIZED();
return pimpl_->eval_exc_vxc(Ps, Pz, Py, Px, ks_settings);
};

template <typename MatrixType>
typename XCIntegrator<MatrixType>::exc_vxc_type_neo_rks
XCIntegrator<MatrixType>::neo_eval_exc_vxc( const MatrixType& elec_Ps, const MatrixType& prot_Ps, const MatrixType& prot_Pz,
const IntegratorSettingsXC& ks_settings ){
if( not pimpl_ ) GAUXC_PIMPL_NOT_INITIALIZED();
return pimpl_->neo_eval_exc_vxc(elec_Ps, prot_Ps, prot_Pz, ks_settings);
};

template <typename MatrixType>
typename XCIntegrator<MatrixType>::exc_vxc_type_neo_uks
XCIntegrator<MatrixType>::neo_eval_exc_vxc( const MatrixType& elec_Ps, const MatrixType& elec_Pz, const MatrixType& prot_Ps, const MatrixType& prot_Pz,
const IntegratorSettingsXC& ks_settings ){
if( not pimpl_ ) GAUXC_PIMPL_NOT_INITIALIZED();
return pimpl_->neo_eval_exc_vxc(elec_Ps, elec_Pz, prot_Ps, prot_Pz, ks_settings);
};

template <typename MatrixType>
typename XCIntegrator<MatrixType>::exc_grad_type
Expand Down
52 changes: 52 additions & 0 deletions include/gauxc/xc_integrator/integrator_factory.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,58 @@ class XCIntegratorFactory {
return get_shared_instance( std::make_shared<functional_type>(func), lb );
}

/** Generate XCIntegrator instance
*
* @param[in] func XC functional
* @param[in] epcfunc EPC functional
* @param[in] lb Preconstructed Load Balancer instance
*/
std::shared_ptr<integrator_type> get_shared_instance(
std::shared_ptr<functional_type> func,
std::shared_ptr<functional_type> epcfunc,
std::shared_ptr<LoadBalancer> lb ) {

// Create Local Work Driver
auto lwd = LocalWorkDriverFactory::make_local_work_driver( ex_,
lwd_kernel_, local_work_settings_ );

// Create Reduction Driver
auto rd = ReductionDriverFactory::get_shared_instance(
lb->runtime(), rd_kernel_ );

// Create Integrator instance
std::transform( input_type_.begin(), input_type_.end(), input_type_.begin(),
::toupper );

if(!epcfunc->is_polarized())
GAUXC_GENERIC_EXCEPTION("EPC FUNCTIONAL NOT POLARIZED");

if( input_type_ == "REPLICATED" )
return std::make_shared<integrator_type>(
ReplicatedXCIntegratorFactory<MatrixType>::make_integrator_impl(
ex_, integrator_kernel_, func, epcfunc, lb, std::move(lwd), rd
)
);
else GAUXC_GENERIC_EXCEPTION("INTEGRATOR TYPE NOT RECOGNIZED");

return nullptr;

}

auto get_shared_instance( const functional_type& func, const functional_type& epcfunc,
const LoadBalancer& lb ) {
return get_shared_instance( std::make_shared<functional_type>(func),
std::make_shared<functional_type>(epcfunc),
std::make_shared<LoadBalancer>(lb) );
}

auto get_shared_instance( const functional_type& func, const functional_type& epcfunc,
std::shared_ptr<LoadBalancer> lb ) {
return get_shared_instance( std::make_shared<functional_type>(func),
std::make_shared<functional_type>(epcfunc),
lb );
}


template <typename... Args>
integrator_type get_instance( Args&&... args ) {
Expand Down
53 changes: 53 additions & 0 deletions include/gauxc/xc_integrator/replicated/impl.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -161,6 +161,59 @@ typename ReplicatedXCIntegrator<MatrixType>::exc_vxc_type_gks

}

template <typename MatrixType>
typename ReplicatedXCIntegrator<MatrixType>::exc_vxc_type_neo_rks
ReplicatedXCIntegrator<MatrixType>::neo_eval_exc_vxc_( const MatrixType& elec_Ps, const MatrixType& prot_Ps, const MatrixType& prot_Pz,
const IntegratorSettingsXC& ks_settings ) {

if( not pimpl_ ) GAUXC_PIMPL_NOT_INITIALIZED();
matrix_type elec_VXCs( elec_Ps.rows(), elec_Ps.cols() );
matrix_type prot_VXCs( prot_Ps.rows(), prot_Ps.cols() );
matrix_type prot_VXCz( prot_Pz.rows(), prot_Pz.cols() );
value_type elec_EXC;
value_type prot_EXC;

pimpl_->neo_eval_exc_vxc( elec_Ps.rows(), elec_Ps.cols(), prot_Ps.rows(), prot_Ps.cols(),
elec_Ps.data(), elec_Ps.rows(),
prot_Ps.data(), prot_Ps.rows(),
prot_Pz.data(), prot_Pz.rows(),
elec_VXCs.data(), elec_VXCs.rows(),
prot_VXCs.data(), prot_VXCs.rows(),
prot_VXCz.data(), prot_VXCz.rows(),
&elec_EXC, &prot_EXC, ks_settings );

return std::make_tuple( elec_EXC, prot_EXC, elec_VXCs, prot_VXCs, prot_VXCz );

}

template <typename MatrixType>
typename ReplicatedXCIntegrator<MatrixType>::exc_vxc_type_neo_uks
ReplicatedXCIntegrator<MatrixType>::neo_eval_exc_vxc_( const MatrixType& elec_Ps, const MatrixType& elec_Pz, const MatrixType& prot_Ps, const MatrixType& prot_Pz,
const IntegratorSettingsXC& ks_settings ) {

if( not pimpl_ ) GAUXC_PIMPL_NOT_INITIALIZED();
matrix_type elec_VXCs( elec_Ps.rows(), elec_Ps.cols() );
matrix_type elec_VXCz( elec_Pz.rows(), elec_Pz.cols() );
matrix_type prot_VXCs( prot_Ps.rows(), prot_Ps.cols() );
matrix_type prot_VXCz( prot_Pz.rows(), prot_Pz.cols() );
value_type elec_EXC;
value_type prot_EXC;

pimpl_->neo_eval_exc_vxc( elec_Ps.rows(), elec_Ps.cols(), prot_Ps.rows(), prot_Ps.cols(),
elec_Ps.data(), elec_Ps.rows(),
elec_Pz.data(), elec_Pz.rows(),
prot_Ps.data(), prot_Ps.rows(),
prot_Pz.data(), prot_Pz.rows(),
elec_VXCs.data(), elec_VXCs.rows(),
elec_VXCz.data(), elec_VXCz.rows(),
prot_VXCs.data(), prot_VXCs.rows(),
prot_VXCz.data(), prot_VXCz.rows(),
&elec_EXC, &prot_EXC, ks_settings );

return std::make_tuple( elec_EXC, prot_EXC, elec_VXCs, elec_VXCz, prot_VXCs, prot_VXCz );

}

template <typename MatrixType>
typename ReplicatedXCIntegrator<MatrixType>::exc_grad_type
ReplicatedXCIntegrator<MatrixType>::eval_exc_grad_( const MatrixType& P, const IntegratorSettingsXC& ks_settings ) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,15 @@ struct ReplicatedXCDeviceIntegratorFactory {
std::shared_ptr<ReductionDriver> rd
);

static ptr_return_t make_integrator_impl(
std::string integrator_kernel,
std::shared_ptr<functional_type> func,
std::shared_ptr<functional_type> epcfunc,
std::shared_ptr<LoadBalancer> lb,
std::unique_ptr<LocalWorkDriver>&& lwd,
std::shared_ptr<ReductionDriver> rd
);

};


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,15 @@ struct ReplicatedXCHostIntegratorFactory {
std::unique_ptr<LocalWorkDriver>&& lwd,
std::shared_ptr<ReductionDriver> rd
);

static ptr_return_t make_integrator_impl(
std::string integrator_kernel,
std::shared_ptr<functional_type> func,
std::shared_ptr<functional_type> epcfunc,
std::shared_ptr<LoadBalancer> lb,
std::unique_ptr<LocalWorkDriver>&& lwd,
std::shared_ptr<ReductionDriver> rd
);

};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,59 @@ struct ReplicatedXCIntegratorFactory {

}



/** Generate a ReplicatedXCIntegrator instance
*
* @param[in] ex Execution space for integrator instance
* @param[in] integration_kernel Name of integration scaffold to load ("Default", "Reference", etc)
* @param[in] func XC functional to integrate
* @param[in] epcfunc EPC functional to integrate
* @param[in] lb Pregenerated LoadBalancer instance
* @param[in] lwd Local Work Driver
*/
static ptr_return_t make_integrator_impl(
ExecutionSpace ex,
std::string integrator_kernel,
std::shared_ptr<functional_type> func,
std::shared_ptr<functional_type> epcfunc,
std::shared_ptr<LoadBalancer> lb,
std::unique_ptr<LocalWorkDriver>&& lwd,
std::shared_ptr<ReductionDriver> rd
) {



switch(ex) {

using host_factory =
detail::ReplicatedXCHostIntegratorFactory<value_type>;
case ExecutionSpace::Host:
return std::make_unique<integrator_type>(
host_factory::make_integrator_impl(
integrator_kernel, func, epcfunc, lb, std::move(lwd), rd
)
);

#ifdef GAUXC_HAS_DEVICE
using device_factory =
detail::ReplicatedXCDeviceIntegratorFactory<value_type>;
case ExecutionSpace::Device:
return std::make_unique<integrator_type>(
device_factory::make_integrator_impl(
integrator_kernel, func, epcfunc, lb, std::move(lwd), rd
)
);
#endif

default:
GAUXC_GENERIC_EXCEPTION("ReplicatedXCIntegrator ExecutionSpace Not Supported");
}

return nullptr;

}


};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ class ReplicatedXCIntegratorImpl {
protected:

std::shared_ptr< functional_type > func_; ///< XC functional
std::shared_ptr< functional_type > epcfunc_; ///< EPC functional for NEO
std::shared_ptr< LoadBalancer > load_balancer_; ///< Load Balancer
std::unique_ptr< LocalWorkDriver > local_work_driver_; ///< Local Work Driver
std::shared_ptr< ReductionDriver > reduction_driver_; ///< Reduction Driver
Expand Down Expand Up @@ -77,7 +78,24 @@ class ReplicatedXCIntegratorImpl {
value_type* VXCy, int64_t ldvxcy,
value_type* VXCx, int64_t ldvxcx,
value_type* EXC, const IntegratorSettingsXC& ks_settings ) = 0;

virtual void neo_eval_exc_vxc_( int64_t elec_m, int64_t elec_n, int64_t prot_m, int64_t prot_n,
const value_type* elec_Ps, int64_t elec_ldps,
const value_type* prot_Ps, int64_t prot_ldps,
const value_type* prot_Pz, int64_t prot_ldpz,
value_type* elec_VXCs, int64_t elec_ldvxcs,
value_type* prot_VXCs, int64_t prot_ldvxcs,
value_type* prot_VXCz, int64_t prot_ldvxcz,
value_type* elec_EXC, value_type* prot_EXC, const IntegratorSettingsXC& ks_settings) = 0;
virtual void neo_eval_exc_vxc_( int64_t elec_m, int64_t elec_n, int64_t prot_m, int64_t prot_n,
const value_type* elec_Ps, int64_t elec_ldps,
const value_type* elec_Pz, int64_t elec_ldpz,
const value_type* prot_Ps, int64_t prot_ldps,
const value_type* prot_Pz, int64_t prot_ldpz,
value_type* elec_VXCs, int64_t elec_ldvxcs,
value_type* elec_VXCz, int64_t elec_ldvxcz,
value_type* prot_VXCs, int64_t prot_ldvxcs,
value_type* prot_VXCz, int64_t prot_ldvxcz,
value_type* elec_EXC, value_type* prot_EXC, const IntegratorSettingsXC& ks_settings) = 0;
virtual void eval_exc_grad_( int64_t m, int64_t n, const value_type* P, int64_t ldp,
value_type* EXC_GRAD, const IntegratorSettingsXC& ks_settings ) = 0;
virtual void eval_exc_grad_( int64_t m, int64_t n, const value_type* P, int64_t ldps,
Expand Down Expand Up @@ -111,6 +129,13 @@ class ReplicatedXCIntegratorImpl {
std::shared_ptr< ReductionDriver> rd
);

ReplicatedXCIntegratorImpl( std::shared_ptr< functional_type > func,
std::shared_ptr< functional_type > epcfunc,
std::shared_ptr< LoadBalancer > lb,
std::unique_ptr< LocalWorkDriver >&& lwd,
std::shared_ptr< ReductionDriver> rd
);

virtual ~ReplicatedXCIntegratorImpl() noexcept;

void integrate_den( int64_t m, int64_t n, const value_type* P,
Expand Down Expand Up @@ -151,7 +176,26 @@ class ReplicatedXCIntegratorImpl {
value_type* VXCy, int64_t ldvxcy,
value_type* VXCx, int64_t ldvxcx,
value_type* EXC, const IntegratorSettingsXC& ks_settings );


void neo_eval_exc_vxc( int64_t elec_m, int64_t elec_n, int64_t prot_m, int64_t prot_n,
const value_type* elec_Ps, int64_t elec_ldps,
const value_type* prot_Ps, int64_t prot_ldps,
const value_type* prot_Pz, int64_t prot_ldpz,
value_type* elec_VXCs, int64_t elec_ldvxcs,
value_type* prot_VXCs, int64_t prot_ldvxcs,
value_type* prot_VXCz, int64_t prot_ldvxcz,
value_type* elec_EXC, value_type* prot_EXC, const IntegratorSettingsXC& ks_settings );

void neo_eval_exc_vxc( int64_t elec_m, int64_t elec_n, int64_t prot_m, int64_t prot_n,
const value_type* elec_Ps, int64_t elec_ldps,
const value_type* elec_Pz, int64_t elec_ldpz,
const value_type* prot_Ps, int64_t prot_ldps,
const value_type* prot_Pz, int64_t prot_ldpz,
value_type* elec_VXCs, int64_t elec_ldvxcs,
value_type* elec_VXCz, int64_t elec_ldvxcz,
value_type* prot_VXCs, int64_t prot_ldvxcs,
value_type* prot_VXCz, int64_t prot_ldvxcz,
value_type* elec_EXC, value_type* prot_EXC, const IntegratorSettingsXC& ks_settings );

void eval_exc_grad( int64_t m, int64_t n, const value_type* P, int64_t ldp,
value_type* EXC_GRAD, const IntegratorSettingsXC& ks_settings );
Expand Down
4 changes: 4 additions & 0 deletions include/gauxc/xc_integrator/replicated_xc_integrator.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@ class ReplicatedXCIntegrator : public XCIntegratorImpl<MatrixType> {
using exc_vxc_type_rks = typename XCIntegratorImpl<MatrixType>::exc_vxc_type_rks;
using exc_vxc_type_uks = typename XCIntegratorImpl<MatrixType>::exc_vxc_type_uks;
using exc_vxc_type_gks = typename XCIntegratorImpl<MatrixType>::exc_vxc_type_gks;
using exc_vxc_type_neo_rks = typename XCIntegratorImpl<MatrixType>::exc_vxc_type_neo_rks;
using exc_vxc_type_neo_uks = typename XCIntegratorImpl<MatrixType>::exc_vxc_type_neo_uks;
using exc_grad_type = typename XCIntegratorImpl<MatrixType>::exc_grad_type;
using exx_type = typename XCIntegratorImpl<MatrixType>::exx_type;
using fxc_contraction_type_rks = typename XCIntegratorImpl<MatrixType>::fxc_contraction_type_rks;
Expand All @@ -54,6 +56,8 @@ class ReplicatedXCIntegrator : public XCIntegratorImpl<MatrixType> {
exc_vxc_type_rks eval_exc_vxc_ ( const MatrixType&, const IntegratorSettingsXC& ) override;
exc_vxc_type_uks eval_exc_vxc_ ( const MatrixType&, const MatrixType&, const IntegratorSettingsXC&) override;
exc_vxc_type_gks eval_exc_vxc_ ( const MatrixType&, const MatrixType&, const MatrixType&, const MatrixType&, const IntegratorSettingsXC& ) override;
exc_vxc_type_neo_rks neo_eval_exc_vxc_ ( const MatrixType&, const MatrixType&, const MatrixType&, const IntegratorSettingsXC& ) override;
exc_vxc_type_neo_uks neo_eval_exc_vxc_ ( const MatrixType&, const MatrixType&, const MatrixType&, const MatrixType&, const IntegratorSettingsXC& ) override;
exc_grad_type eval_exc_grad_( const MatrixType&, const IntegratorSettingsXC& ) override;
exc_grad_type eval_exc_grad_( const MatrixType&, const MatrixType&, const IntegratorSettingsXC& ) override;
exx_type eval_exx_ ( const MatrixType&, const IntegratorSettingsEXX& ) override;
Expand Down
Loading