qimpy.grid.coulomb.Coulomb

class Coulomb(*, grid, n_ions=1, embed=False, analytic=False, radius=0.0, checkpoint_in=(None, ''))

Bases: TreeNode

Coulomb interactions between fields and point charges.

Parameters:
  • grid (Grid)

  • n_ions (int)

  • embed (bool)

  • analytic (bool)

  • radius (float)

  • checkpoint_in (CheckpointPath)

__init__(*, grid, n_ions=1, embed=False, analytic=False, radius=0.0, checkpoint_in=(None, ''))

Initialize coulomb interactions.

Parameters:
  • grid (Grid) – Fields for coulomb interaction will be on this grid.

  • n_ions (int) – Number of point charges to optimize Ewald sums for.

  • embed (bool) – [Input file] Whether to embed the Coulomb interaction.

  • analytic (bool) – [Input file] Whether to use an analytic or a numerical truncation scheme. This only matters when 0 or 1 directions are periodic: selecting spherical or cylindrical truncation when True, and the numerical Wigner-Seitz kernel otherwise (default).

  • radius (float) – [Input file] Length-scale for analytic truncation scheme. If zero (default), use the in-radius of the Wigner-Seitz cell along the truncated directions.

  • checkpoint_in (CheckpointPath)

Return type:

None

Methods

__init__

Initialize coulomb interactions.

add_child

Construct child object self.`attr_name` of type cls.

add_child_one_of

Invoke add_child on one of several child options in args.

save_checkpoint

Save self and all children in hierarchy to cp_path.

update_lattice_dependent

Update all members due to change of lattice vectors.

Attributes

grid

Grid associated with fields for coulomb interaction

embed

Whether to embed the Coulomb interaction

analytic

Whether to use an analytic or a numerical truncation scheme

radius

Radius for analytical truncation (use in-radius if zero)

ion_width

Ion-charge gaussian width for embedding and solvation

kernel

Coulomb kernel

ewald

Ewald sum

child_names

Names of attributes with child objects.

variant_name

Version of children having variants (if any)

update_lattice_dependent()

Update all members due to change of lattice vectors.

Return type:

None

analytic: bool

Whether to use an analytic or a numerical truncation scheme

embed: bool

Whether to embed the Coulomb interaction

ewald: Ewald

Ewald sum

grid: Grid

Grid associated with fields for coulomb interaction

ion_width: float

Ion-charge gaussian width for embedding and solvation

kernel: Kernel

Coulomb kernel

radius: float

Radius for analytical truncation (use in-radius if zero)