Dielectric profiles

../_images/dielectric_profile.svg

Uniform

struct pcm::dielectric_profile::Uniform

a uniform dielectric profile

Author
Roberto Di Remigio
Date
2015

Anisotropic

class pcm::dielectric_profile::Anisotropic

describes a medium with anisotropy, i.e. liquid crystal

Author
Roberto Di Remigio
Date
2014

Public Functions

Anisotropic(const Eigen::Vector3d &eigen_eps, const Eigen::Vector3d &euler_ang)

Parameters
  • eigen_eps: eigenvalues of the permittivity tensors
  • euler_ang: Euler angles in degrees

Private Functions

void build()

Initializes some internals: molecule-fixed to lab-fixed frame rotation matrix, permittivity tensor in molecule-fixed frame and its inverse

Private Members

Eigen::Vector3d epsilonLab_

Diagonal of the permittivity tensor in the lab-fixed frame.

Eigen::Vector3d eulerAngles_

Euler angles (in degrees) relating molecule-fixed and lab-fixed frames.

Eigen::Matrix3d epsilon_

Permittivity tensor in molecule-fixed frame.

Eigen::Matrix3d epsilonInv_

Inverse of the permittivity tensor in molecule-fixed frame.

Eigen::Matrix3d R_

molecule-fixed to lab-fixed frames rotation matrix

double detEps_

Determinant of the permittivity tensor.

Yukawa

struct pcm::dielectric_profile::Yukawa

describes a medium with damping, i.e. ionic liquid

Author
Roberto Di Remigio
Date
2015

OneLayerLog

class pcm::dielectric_profile::OneLayerLog

A dielectric profile based on the Harrison and Fosso-Tande work [3].

Author
Luca Frediani
Date
2017

Public Functions

pcm::tuple<double, double> operator()(const double r) const

Returns a tuple holding the permittivity and its derivative

Parameters
  • r: evaluation point

Private Functions

double value(double point) const

Returns value of dielectric profile at given point

Parameters
  • point: where to evaluate the profile

double derivative(double point) const

Returns value of derivative of dielectric profile at given point

Parameters
  • point: where to evaluate the derivative

Private Members

double epsilon1_

Dielectric constant on the left of the interface.

double epsilon2_

Dielectric constant one the right of the interface.

double width_

Width of the transition layer.

double center_

Center of the transition layer.

std::pair<double, double> domain_

Domain of the permittivity function This is formally \( [0, +\infty) \), for all practical purposes the permittivity function is equal to the epsilon2_ already at 6.0 * width_ Thus the upper limit in the domain_ is initialized as center_ + 12.0 * width_

OneLayerTanh

class pcm::dielectric_profile::OneLayerTanh

A tanh dielectric profile as in [4].

Author
Roberto Di Remigio
Date
2014
Note
The parameter given from user input for width_ is divided by 6.0 in the constructor to keep consistency with [4]

Public Functions

pcm::tuple<double, double> operator()(const double r) const

Returns a tuple holding the permittivity and its derivative

Parameters
  • r: evaluation point

Private Functions

double value(double point) const

Returns value of dielectric profile at given point

Note
We return epsilon2_ when the sampling point is outside the upper limit.
Parameters
  • point: where to evaluate the profile

double derivative(double point) const

Returns value of derivative of dielectric profile at given point

Note
We return 0.0 (derivative of the constant value epsilon2_) when the sampling point is outside the upper limit.
Parameters
  • point: where to evaluate the derivative

Private Members

double epsilon1_

Dielectric constant on the left of the interface.

double epsilon2_

Dielectric constant one the right of the interface.

double width_

Width of the transition layer.

double center_

Center of the transition layer.

std::pair<double, double> domain_

Domain of the permittivity function This is formally \( [0, +\infty) \), for all practical purposes the permittivity function is equal to the epsilon2_ already at 6.0 * width_ Thus the upper limit in the domain_ is initialized as center_ + 12.0 * width_

OneLayerErf

class pcm::dielectric_profile::OneLayerErf

A erf dielectric profile.

Author
Roberto Di Remigio
Date
2015
Note
The parameter given from user input for width_ is divided by 6.0 in the constructor to keep consistency with [4]

Public Functions

pcm::tuple<double, double> operator()(const double r) const

Returns a tuple holding the permittivity and its derivative

Parameters
  • r: evaluation point

Private Functions

double value(double point) const

Returns value of dielectric profile at given point

Note
We return epsilon2_ when the sampling point is outside the upper limit.
Parameters
  • point: where to evaluate the profile

double derivative(double point) const

Returns value of derivative of dielectric profile at given point

Note
We return 0.0 (derivative of the constant value epsilon2_) when the sampling point is outside the upper limit.
Parameters
  • point: where to evaluate the derivative

Private Members

double epsilon1_

Dielectric constant on the left of the interface.

double epsilon2_

Dielectric constant one the right of the interface.

double width_

Width of the transition layer.

double center_

Center of the transition layer.

std::pair<double, double> domain_

Domain of the permittivity function This is formally \( [0, +\infty) \), for all practical purposes the permittivity function is equal to the epsilon2_ already at 6.0 * width_ Thus the upper limit in the domain_ is initialized as center_ + 12.0 * width_

Sharp

struct pcm::dielectric_profile::Sharp

A sharp dielectric separation.

Author
Roberto Di Remigio
Date
2015