class rgpot::D4Pot¶
Overview¶
Grimme DFT-D4 dispersion via the dftd4 ISO C API (dftd4.h). More…
#include <D4Pot.hpp>
class D4Pot: public rgpot::Potential< D4Pot > {
public:
// construction
D4Pot();
D4Pot(const D4Config& config);
D4Pot(const D4Pot&);
~D4Pot();
// methods
D4Pot& operator=(const D4Pot&);
void forceImpl(const ForceInput& in, ForceOut* out) const;
virtual PotCaps caps() const;
const D4Config& config() const;
};
Detailed Documentation¶
Grimme DFT-D4 dispersion via the dftd4 ISO C API (dftd4.h).
In-process Potential summand: ForceInput in, energy+forces out. Do not fold this into XcKernel::contract or applyFxc. No PotentialConfig.d4 arm until a DFT host sums XcKernel + VV10 + D4 on the wire (rgpot-8mse; rgpot-uw9w / rgpot-eipa add this as Edisp from rgpot-2ftk).
Each instance owns dftd4_error / dftd4_structure / dftd4_model / dftd4_param handles. First force builds the structure and model; later forces call dftd4_update_structure. Do not share one instance across threads.
Methods¶
virtual PotCaps caps() const
Concurrency and evaluation capabilities of this potential.
Multi-threaded callers (NEB images, dimer endpoints) derive their sharing and cloning policy from this instead of hard-coded lists.