faunus
Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
Faunus::Energy::EwaldPolicyBase Class Referenceabstract

Base class for Ewald k-space updates policies. More...

#include <energy.h>

Inheritance diagram for Faunus::Energy::EwaldPolicyBase:
Inheritance graph
[legend]

Public Member Functions

virtual void updateBox (EwaldData &, const Point &) const =0
 Prepare k-vectors according to given box vector.
 
virtual void updateComplex (EwaldData &d, const Space::GroupVector &groups) const =0
 Update all k vectors.
 
virtual void updateComplex (EwaldData &d, const Change &change, const Space::GroupVector &groups, const Space::GroupVector &oldgroups) const =0
 Update subset of k vectors. Require old pointer.
 
virtual double selfEnergy (const EwaldData &d, Change &change, Space::GroupVector &groups)=0
 Self energy contribution due to a change.
 
virtual double surfaceEnergy (const EwaldData &d, const Change &change, const Space::GroupVector &groups)=0
 Surface energy contribution due to a change.
 
virtual double reciprocalEnergy (const EwaldData &d)=0
 Total reciprocal energy.
 

Static Public Member Functions

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

std::string cite
 Optional reference, preferably DOI, to further information.
 

Detailed Description

Base class for Ewald k-space updates policies.

Member Function Documentation

◆ mapGroupsToEigen()

static auto Faunus::Energy::EwaldPolicyBase::mapGroupsToEigen ( Space::GroupVector &  groups)
inlinestatic

Represent charges and positions using an Eigen facade (Map)

Requires that all groups are fully active, i.e. does not work for GCMC.

Parameters
groupsVector of groups to represent
Returns
tuple with positions, charges

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