faunus
Public Member Functions | List of all members
Faunus::Energy::PolicyIonIon Struct Reference

Ion-Ion Ewald using periodic boundary conditions (PBC) More...

#include <energy.h>

Inheritance diagram for Faunus::Energy::PolicyIonIon:
Inheritance graph
[legend]
Collaboration diagram for Faunus::Energy::PolicyIonIon:
Collaboration graph
[legend]

Public Member Functions

void updateBox (EwaldData &d, const Point &box) const override
 Resize k-vectors according to current variables and box length.
 
void updateComplex (EwaldData &data, const Space::GroupVector &groups) const override
 
void updateComplex (EwaldData &d, const Change &change, const Space::GroupVector &groups, const Space::GroupVector &oldgroups) const override
 Update subset of k vectors. Require old pointer.
 
double selfEnergy (const EwaldData &d, Change &change, Space::GroupVector &groups) override
 Self energy contribution due to a change.
 
double surfaceEnergy (const EwaldData &data, const Change &change, const Space::GroupVector &groups) override
 
double reciprocalEnergy (const EwaldData &d) override
 Updates the reciprocal space terms 'Q^q' and 'A_k'. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Faunus::Energy::EwaldPolicyBase
static auto mapGroupsToEigen (Space::GroupVector &groups)
 Represent charges and positions using an Eigen facade (Map) More...
 
static auto mapGroupsToEigen (const Space::GroupVector &groups)
 
static std::unique_ptr< EwaldPolicyBasemakePolicy (EwaldData::Policies)
 Policy factory.
 
- Public Attributes inherited from Faunus::Energy::EwaldPolicyBase
std::string cite
 Optional reference, preferably DOI, to further information.
 

Detailed Description

Ion-Ion Ewald using periodic boundary conditions (PBC)

Member Function Documentation

◆ reciprocalEnergy()

double Faunus::Energy::PolicyIonIon::reciprocalEnergy ( const EwaldData d)
overridevirtual

Updates the reciprocal space terms 'Q^q' and 'A_k'.

See eqs. 24 and 25 in ref. for PBC Ewald, and eq. 2 in doi:10/css8 for IPBC Ewald.

Implements Faunus::Energy::EwaldPolicyBase.

Reimplemented in Faunus::Energy::PolicyIonIonEigen.

◆ surfaceEnergy()

double Faunus::Energy::PolicyIonIon::surfaceEnergy ( const EwaldData data,
const Change change,
const Space::GroupVector &  groups 
)
overridevirtual
Note
The surface energy cannot be calculated for a partial change due to the squared qr. Hence the change object is ignored.

Implements Faunus::Energy::EwaldPolicyBase.

◆ updateComplex()

void Faunus::Energy::PolicyIonIon::updateComplex ( EwaldData data,
const Space::GroupVector &  groups 
) const
overridevirtual

The documentation for this struct was generated from the following files: