Dielectric profiles

../_images/dielectric_profile.svg

Uniform

struct 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
  • [in] eigen_eps: eigenvalues of the permittivity tensors

  • [in] 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 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

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

Returns a tuple holding the permittivity and its derivative

Parameters
  • [in] r: evaluation point

Private Functions

double value(double point) const

Returns value of dielectric profile at given point

Parameters
  • [in] point: where to evaluate the profile

double derivative(double point) const

Returns value of derivative of dielectric profile at given point

Parameters
  • [in] 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

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

Returns a tuple holding the permittivity and its derivative

Parameters
  • [in] 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
  • [in] 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
  • [in] 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

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

Returns a tuple holding the permittivity and its derivative

Parameters
  • [in] 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
  • [in] 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
  • [in] 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 Sharp

A sharp dielectric separation.

Author

Roberto Di Remigio

Date

2015