Skip to content

Latest commit

 

History

History
76 lines (65 loc) · 1.92 KB

greens-functions.rst

File metadata and controls

76 lines (65 loc) · 1.92 KB

Green's Functions

We will here describe the inheritance hierarchy for generating Green's functions, in order to use and extend it properly. The runtime creation of Green's functions objects relies on the Factory Method pattern Gamma1994,Alexandrescu2001, implemented through the generic Factory class.

The top-level header, _i.e._ to be included in client code, is Green.hpp. The common interface to all Green's function classes is specified by the IGreensFunction class, this is non-templated. All other classes are templated. The Green's functions are registered to the factory based on a label encoding: type, derivative, and dielectric profile. The only allowed labels must be listed in src/green/Green.hpp. If they are not, they can not be selected at run time.

image

IGreensFunction

pcm::IGreensFunction

GreensFunction

pcm::green::GreensFunction

Vacuum

pcm::green::Vacuum

UniformDielectric

pcm::green::UniformDielectric

IonicLiquid

pcm::green::IonicLiquid

AnisotropicLiquid

pcm::green::AnisotropicLiquid

SphericalDiffuse

pcm::green::SphericalDiffuse