Class PairwisePotentialInterface#
Defined in File pairwise_potential_interface.hpp
Inheritance Relationships#
Base Type#
public pele::BasePotential(Class BasePotential)
Derived Types#
public pele::AtomListPotential< harmonic_interaction, cartesian_distance< 3 > >(Template Class AtomListPotential)public pele::AtomListPotential< lj_interaction_cut_smooth, cartesian_distance< 3 > >(Template Class AtomListPotential)public pele::AtomListPotential< lj_interaction_cut_smooth, periodic_distance< 3 > >(Template Class AtomListPotential)public pele::AtomListPotential< WCA_interaction, cartesian_distance< 3 > >(Template Class AtomListPotential)public pele::CellListPotential< frenkel_interaction, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< HS_halfint_pairwise_power_interaction< POW2 >, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< sf_HS_WCA_interaction< 6 >, cartesian_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< sf_HS_WCA_interaction< 6 >, leesedwards_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< sf_HS_WCA_interaction< 6 >, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< InverseHalfIntPowerHS_interaction< POW2 >, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< InverseHalfIntPower_interaction< POW2 >, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< InverseIntPowerHS_interaction< POW >, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< InverseIntPower_interaction< POW >, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< InversePowerHS_interaction, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< InversePower_interaction, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< InversePowerStillinger_cut_interaction, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< InversePowerStillingerQuadCutInteractionInt< POW >, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< InversePowerStillingerQuadCutInteraction, periodic_distance< ndim > >(Template Class CellListPotential)public pele::CellListPotential< lj_interaction_cut_smooth, periodic_distance< ndim > >(Template Class CellListPotential)public pele::SimplePairwiseNeighborList< sf_HS_WCA_interaction< 6 > >(Template Class SimplePairwiseNeighborList)public pele::SimplePairwiseNeighborList< harmonic_interaction >(Template Class SimplePairwiseNeighborList)public pele::SimplePairwiseNeighborList< lj_interaction >(Template Class SimplePairwiseNeighborList)public pele::SimplePairwiseNeighborList< WCA_interaction >(Template Class SimplePairwiseNeighborList)public pele::SimplePairwisePotential< frenkel_interaction >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< frenkel_interaction, periodic_distance< 3 > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< HS_halfint_pairwise_power_interaction< POW2 >, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< HS_halfint_pairwise_power_interaction< POW2 >, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< sf_HS_WCA_interaction< 6 >, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< sf_HS_WCA_interaction< 6 >, leesedwards_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< sf_HS_WCA_interaction< 6 >, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InverseHalfIntPower_interaction< POW2 >, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InverseHalfIntPowerHS_interaction< POW2 >, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InverseHalfIntPowerHS_interaction< POW2 >, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InverseHalfIntPower_interaction< POW2 >, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InverseIntPower_interaction< POW >, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InverseIntPowerHS_interaction< POW >, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InverseIntPowerHS_interaction< POW >, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InverseIntPower_interaction< POW >, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePower_interaction, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePowerHS_interaction, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePowerHS_interaction, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePower_interaction, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePowerStillinger_interaction, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePowerStillinger_cut_interaction, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePowerStillinger_cut_interaction, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePowerStillingerQuadCutInteraction, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePowerStillingerQuadCutInteractionInt< POW >, cartesian_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePowerStillingerQuadCutInteractionInt< POW >, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePowerStillingerQuadCutInteraction, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< InversePowerStillinger_interaction, periodic_distance< ndim > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< lj_interaction >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< lj_interaction_cut_smooth >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< lj_interaction_cut_smooth, periodic_distance< 3 > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< lj_interaction, periodic_distance< 3 > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< morse_interaction >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< WCA_interaction, cartesian_distance< 3 > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< WCA_interaction, cartesian_distance< 2 > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< WCA_interaction, periodic_distance< 3 > >(Template Class SimplePairwisePotential)public pele::SimplePairwisePotential< WCA_interaction, periodic_distance< 2 > >(Template Class SimplePairwisePotential)public pele::AtomListPotential< pairwise_interaction, distance_policy >(Template Class AtomListPotential)public pele::CellListPotential< pairwise_interaction, distance_policy >(Template Class CellListPotential)public pele::SimplePairwiseNeighborList< pairwise_interaction, distance_policy >(Template Class SimplePairwiseNeighborList)public pele::SimplePairwisePotential< pairwise_interaction, distance_policy >(Template Class SimplePairwisePotential)
Class Documentation#
-
class PairwisePotentialInterface : public pele::BasePotential#
Subclassed by pele::AtomListPotential< harmonic_interaction, cartesian_distance< 3 > >, pele::AtomListPotential< lj_interaction_cut_smooth, cartesian_distance< 3 > >, pele::AtomListPotential< lj_interaction_cut_smooth, periodic_distance< 3 > >, pele::AtomListPotential< WCA_interaction, cartesian_distance< 3 > >, pele::CellListPotential< frenkel_interaction, periodic_distance< ndim > >, pele::CellListPotential< HS_halfint_pairwise_power_interaction< POW2 >, periodic_distance< ndim > >, pele::CellListPotential< sf_HS_WCA_interaction< 6 >, cartesian_distance< ndim > >, pele::CellListPotential< sf_HS_WCA_interaction< 6 >, leesedwards_distance< ndim > >, pele::CellListPotential< sf_HS_WCA_interaction< 6 >, periodic_distance< ndim > >, pele::CellListPotential< InverseHalfIntPowerHS_interaction< POW2 >, periodic_distance< ndim > >, pele::CellListPotential< InverseHalfIntPower_interaction< POW2 >, periodic_distance< ndim > >, pele::CellListPotential< InverseIntPowerHS_interaction< POW >, periodic_distance< ndim > >, pele::CellListPotential< InverseIntPower_interaction< POW >, periodic_distance< ndim > >, pele::CellListPotential< InversePowerHS_interaction, periodic_distance< ndim > >, pele::CellListPotential< InversePower_interaction, periodic_distance< ndim > >, pele::CellListPotential< InversePowerStillinger_cut_interaction, periodic_distance< ndim > >, pele::CellListPotential< InversePowerStillingerQuadCutInteractionInt< POW >, periodic_distance< ndim > >, pele::CellListPotential< InversePowerStillingerQuadCutInteraction, periodic_distance< ndim > >, pele::CellListPotential< lj_interaction_cut_smooth, periodic_distance< ndim > >, pele::SimplePairwiseNeighborList< sf_HS_WCA_interaction< 6 > >, pele::SimplePairwiseNeighborList< harmonic_interaction >, pele::SimplePairwiseNeighborList< lj_interaction >, pele::SimplePairwiseNeighborList< WCA_interaction >, pele::SimplePairwisePotential< frenkel_interaction >, pele::SimplePairwisePotential< frenkel_interaction, periodic_distance< 3 > >, pele::SimplePairwisePotential< HS_halfint_pairwise_power_interaction< POW2 >, cartesian_distance< ndim > >, pele::SimplePairwisePotential< HS_halfint_pairwise_power_interaction< POW2 >, periodic_distance< ndim > >, pele::SimplePairwisePotential< sf_HS_WCA_interaction< 6 >, cartesian_distance< ndim > >, pele::SimplePairwisePotential< sf_HS_WCA_interaction< 6 >, leesedwards_distance< ndim > >, pele::SimplePairwisePotential< sf_HS_WCA_interaction< 6 >, periodic_distance< ndim > >, pele::SimplePairwisePotential< InverseHalfIntPower_interaction< POW2 >, cartesian_distance< ndim > >, pele::SimplePairwisePotential< InverseHalfIntPowerHS_interaction< POW2 >, cartesian_distance< ndim > >, pele::SimplePairwisePotential< InverseHalfIntPowerHS_interaction< POW2 >, periodic_distance< ndim > >, pele::SimplePairwisePotential< InverseHalfIntPower_interaction< POW2 >, periodic_distance< ndim > >, pele::SimplePairwisePotential< InverseIntPower_interaction< POW >, cartesian_distance< ndim > >, pele::SimplePairwisePotential< InverseIntPowerHS_interaction< POW >, cartesian_distance< ndim > >, pele::SimplePairwisePotential< InverseIntPowerHS_interaction< POW >, periodic_distance< ndim > >, pele::SimplePairwisePotential< InverseIntPower_interaction< POW >, periodic_distance< ndim > >, pele::SimplePairwisePotential< InversePower_interaction, cartesian_distance< ndim > >, pele::SimplePairwisePotential< InversePowerHS_interaction, cartesian_distance< ndim > >, pele::SimplePairwisePotential< InversePowerHS_interaction, periodic_distance< ndim > >, pele::SimplePairwisePotential< InversePower_interaction, periodic_distance< ndim > >, pele::SimplePairwisePotential< InversePowerStillinger_interaction, cartesian_distance< ndim > >, pele::SimplePairwisePotential< InversePowerStillinger_cut_interaction, cartesian_distance< ndim > >, pele::SimplePairwisePotential< InversePowerStillinger_cut_interaction, periodic_distance< ndim > >, pele::SimplePairwisePotential< InversePowerStillingerQuadCutInteraction, cartesian_distance< ndim > >, pele::SimplePairwisePotential< InversePowerStillingerQuadCutInteractionInt< POW >, cartesian_distance< ndim > >, pele::SimplePairwisePotential< InversePowerStillingerQuadCutInteractionInt< POW >, periodic_distance< ndim > >, pele::SimplePairwisePotential< InversePowerStillingerQuadCutInteraction, periodic_distance< ndim > >, pele::SimplePairwisePotential< InversePowerStillinger_interaction, periodic_distance< ndim > >, pele::SimplePairwisePotential< lj_interaction >, pele::SimplePairwisePotential< lj_interaction_cut_smooth >, pele::SimplePairwisePotential< lj_interaction_cut_smooth, periodic_distance< 3 > >, pele::SimplePairwisePotential< lj_interaction, periodic_distance< 3 > >, pele::SimplePairwisePotential< morse_interaction >, pele::SimplePairwisePotential< WCA_interaction, cartesian_distance< 3 > >, pele::SimplePairwisePotential< WCA_interaction, cartesian_distance< 2 > >, pele::SimplePairwisePotential< WCA_interaction, periodic_distance< 3 > >, pele::SimplePairwisePotential< WCA_interaction, periodic_distance< 2 > >, pele::AtomListPotential< pairwise_interaction, distance_policy >, pele::CellListPotential< pairwise_interaction, distance_policy >, pele::SimplePairwiseNeighborList< pairwise_interaction, distance_policy >, pele::SimplePairwisePotential< pairwise_interaction, distance_policy >
Public Functions
-
inline PairwisePotentialInterface()#
- inline PairwisePotentialInterface(
- pele::Array<double> const &radii,
- NonAdditiveCutoffCalculator cutoff_calculator
-
inline virtual ~PairwisePotentialInterface()#
-
inline virtual pele::Array<double> get_radii()#
Return the radii (if the interaction potential actually uses radii).
- inline double get_non_additive_cutoff(
- const std::size_t atom_i,
- const std::size_t atom_j
-
inline double get_max_cutoff() const#
-
inline virtual size_t get_ndim() const#
Return the number of dimensions (box dimensions).
Ideally this should be overloaded.
- inline virtual void get_rij(
- double*const,
- double const*const,
- double const*const
Return the distance as measured by the distance policy.
- inline virtual double get_interaction_energy_gradient(
- double,
- double*,
- size_t,
- size_t
Return energy_gradient of interaction.
- inline virtual double get_interaction_energy_gradient_hessian(
- double,
- double*,
- double*,
- size_t,
- size_t
Return gradient and Hessian of interaction.
- inline virtual void get_neighbors_picky(
- pele::Array<double> const&,
- pele::Array<std::vector<size_t>>&,
- pele::Array<std::vector<std::vector<double>>>&,
- pele::Array<short> const&,
- const double cutoff_factor = 1.0
Return lists of neighbors considering only certain atoms.
- inline void print_neighbor_index_and_displacements(
- pele::Array<std::vector<size_t>> &neighbor_indss,
- pele::Array<std::vector<std::vector<double>>> &neighbor_distss
Prints neighbor lists and displacements.
- inline virtual void get_neighbors(
- pele::Array<double> const&,
- pele::Array<std::vector<size_t>>&,
- pele::Array<std::vector<std::vector<double>>>&,
- const double cutoff_factor = 1
Return lists of neighbors.
-
inline virtual std::vector<size_t> get_overlaps(Array<double> const &coords)#
Return linearized vector of overlapping atoms.
Every two entries in the resulting vector correspond to a pair of overlapping atoms.
-
inline virtual pele::Array<size_t> get_atom_order(Array<double> &coords)#
Return a computationally sensible order for sorting the atoms.
This is primarily used for better caching when using cell lists. If sorting atoms is not useful, it returns an empty Pele-Array.
- inline virtual bool find_rattlers( )#
Finds the rattlers in the found minimum and saves them.
- Parameters:
coords – The coordinates of the found minimum. important: Needs to be at the minimum
not_rattlers – whether a particle is a rattler or not
jammed – whether the system is jammed or not To look at a readable implementation, see the julia code in check_same_structure.jl in the basinerrror library. (It’s also probably faster since this isn’t vectorized) @WARNING: This function segfaults at destructors when called from python.
Protected Functions
-
inline void initialize()#
Protected Attributes
-
const NonAdditiveCutoffCalculator m_cutoff_calculator#
-
inline PairwisePotentialInterface()#