# 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 [GHJV94][Ale01], implemented through the generic Factory class.

## IGreensFunction¶

class IGreensFunction

Interface for Green’s function classes.

We define as Green’s function a function:

$G(\mathbf{r}, \mathbf{r}^\prime) : \mathbb{R}^6 \rightarrow \mathbb{R}$
Green’s functions and their directional derivatives appear as kernels of the $$\mathcal{S}$$ and $$\mathcal{D}$$ integral operators. Forming the matrix representation of these operators requires performing integrations over surface finite elements. Since these Green’s functions present a Coulombic divergence, the diagonal elements of the operators will diverge unless appropriately formulated. This is possible, but requires explicit access to the subtype of this abstract base object. This justifies the need for the singleLayer and doubleLayer functions. The code uses the Non-Virtual Interface (NVI) idiom.
Author
Luca Frediani and Roberto Di Remigio
Date
2012-2016

## GreensFunction¶

class GreensFunction

Templated interface for Green’s functions.

Author
Luca Frediani and Roberto Di Remigio
Date
2012-2016
Template Parameters
• DerivativeTraits: evaluation strategy for the function and its derivatives
• ProfilePolicy: dielectric profile type

## Vacuum¶

class Vacuum

Green’s function for vacuum.

Author
Luca Frediani and Roberto Di Remigio
Date
2012-2016
Template Parameters
• DerivativeTraits: evaluation strategy for the function and its derivatives

## UniformDielectric¶

class UniformDielectric

Green’s function for uniform dielectric.

Author
Luca Frediani and Roberto Di Remigio
Date
2012-2016
Template Parameters
• DerivativeTraits: evaluation strategy for the function and its derivatives

## IonicLiquid¶

class IonicLiquid

Green’s functions for ionic liquid, described by the linearized Poisson-Boltzmann equation.

Author
Luca Frediani, Roberto Di Remigio
Date
2013-2016
Template Parameters
• DerivativeTraits: evaluation strategy for the function and its derivatives

## AnisotropicLiquid¶

class AnisotropicLiquid

Green’s functions for anisotropic liquid, described by a tensorial permittivity.

Author
Roberto Di Remigio
Date
2016
Template Parameters
• DerivativeTraits: evaluation strategy for the function and its derivatives

## SphericalDiffuse¶

class SphericalDiffuse

Green’s function for a diffuse interface with spherical symmetry.

This class is general, in the sense that no specific dielectric profile has been set in its definition. In principle any profile that can be described by:

1. a left-side dielectric constant;
2. a right-side dielectric constant;
3. an interface layer width;
4. an interface layer center can be used to define a new diffuse interface with spherical symmetry. The origin of the dielectric sphere can be changed by means of the constructor. The solution of the differential equation defining the Green’s function is always** performed assuming that the dielectric sphere is centered in the origin of the coordinate system. Whenever the public methods are invoked to “sample” the Green’s function at a pair of points, a translation of the sampling points is performed first.
Author
Hui Cao, Ville Weijo, Luca Frediani and Roberto Di Remigio
Date
2010-2015
Template Parameters
• ProfilePolicy: functional form of the diffuse layer