occ
Loading...
Searching...
No Matches
occ::mults::ForceFieldParams Class Reference

Manages force field parameters for short-range interactions. More...

#include <force_field_params.h>

Public Member Functions

void set_buckingham (int Z1, int Z2, const BuckinghamParams &p)
 
BuckinghamParams get_buckingham (int Z1, int Z2) const
 
bool has_buckingham (int Z1, int Z2) const
 
void set_typed_buckingham (int type1, int type2, const BuckinghamParams &p)
 
void set_typed_buckingham (const std::map< std::pair< int, int >, BuckinghamParams > &params)
 
void clear_typed_buckingham ()
 
bool has_typed_buckingham (int type1, int type2) const
 
BuckinghamParams get_typed_buckingham (int type1, int type2) const
 
BuckinghamParams get_buckingham_for_types (int type1, int type2) const
 Look up typed params, falling back to element-based if not found.
 
void set_typed_aniso (const std::map< std::pair< int, int >, AnisotropicRepulsionParams > &params)
 
bool has_aniso (int type1, int type2) const
 
AnisotropicRepulsionParams get_aniso (int type1, int type2) const
 
bool has_any_aniso () const
 
void set_type_labels (const std::map< int, std::string > &labels)
 
std::string type_name (int type_code) const
 
const std::map< std::pair< int, int >, LennardJonesParams > & lj_params () const
 
bool use_williams_atom_typing () const
 
bool use_short_range_typing () const
 
void set_use_williams_atom_typing (bool v)
 
void set_use_short_range_typing (bool v)
 

Static Public Member Functions

static std::map< std::pair< int, int >, BuckinghamParamswilliams_de_params ()
 Williams DE Buckingham parameters by element pair (kJ/mol, Angstrom).
 
static std::map< std::pair< int, int >, BuckinghamParamswilliams_typed_params ()
 Williams typed Buckingham parameters by type code pair (kJ/mol, Angstrom).
 
static const char * short_range_type_label (int type_code)
 Convert a Williams/NEIGHCRYS type code to a short label (e.g. 512 -> "C_W3").
 
static int short_range_type_atomic_number (int type_code)
 Map a Williams/NEIGHCRYS type code to element Z, or 0 if unknown.
 
static int classify_williams_type (int idx, const std::vector< std::vector< int > > &neighbors, const std::vector< int > &atomic_numbers)
 Classify atom types using Williams bonding rules.
 
static std::vector< std::vector< int > > bonded_neighbors (const std::vector< int > &atomic_numbers, const std::vector< Vec3 > &positions)
 Find bonded neighbors by covalent radius + tolerance.
 

Detailed Description

Manages force field parameters for short-range interactions.

Handles element-based Buckingham, type-code-based Buckingham, anisotropic repulsion, and Williams DE built-in tables.

Member Function Documentation

◆ bonded_neighbors()

static std::vector< std::vector< int > > occ::mults::ForceFieldParams::bonded_neighbors ( const std::vector< int > &  atomic_numbers,
const std::vector< Vec3 > &  positions 
)
static

Find bonded neighbors by covalent radius + tolerance.

◆ classify_williams_type()

static int occ::mults::ForceFieldParams::classify_williams_type ( int  idx,
const std::vector< std::vector< int > > &  neighbors,
const std::vector< int > &  atomic_numbers 
)
static

Classify atom types using Williams bonding rules.

Updates short_range_type_codes in-place.

◆ clear_typed_buckingham()

void occ::mults::ForceFieldParams::clear_typed_buckingham ( )

◆ get_aniso()

AnisotropicRepulsionParams occ::mults::ForceFieldParams::get_aniso ( int  type1,
int  type2 
) const

◆ get_buckingham()

BuckinghamParams occ::mults::ForceFieldParams::get_buckingham ( int  Z1,
int  Z2 
) const

◆ get_buckingham_for_types()

BuckinghamParams occ::mults::ForceFieldParams::get_buckingham_for_types ( int  type1,
int  type2 
) const

Look up typed params, falling back to element-based if not found.

◆ get_typed_buckingham()

BuckinghamParams occ::mults::ForceFieldParams::get_typed_buckingham ( int  type1,
int  type2 
) const

◆ has_aniso()

bool occ::mults::ForceFieldParams::has_aniso ( int  type1,
int  type2 
) const

◆ has_any_aniso()

bool occ::mults::ForceFieldParams::has_any_aniso ( ) const
inline

◆ has_buckingham()

bool occ::mults::ForceFieldParams::has_buckingham ( int  Z1,
int  Z2 
) const

◆ has_typed_buckingham()

bool occ::mults::ForceFieldParams::has_typed_buckingham ( int  type1,
int  type2 
) const

◆ lj_params()

const std::map< std::pair< int, int >, LennardJonesParams > & occ::mults::ForceFieldParams::lj_params ( ) const
inline

◆ set_buckingham()

void occ::mults::ForceFieldParams::set_buckingham ( int  Z1,
int  Z2,
const BuckinghamParams p 
)

◆ set_type_labels()

void occ::mults::ForceFieldParams::set_type_labels ( const std::map< int, std::string > &  labels)

◆ set_typed_aniso()

void occ::mults::ForceFieldParams::set_typed_aniso ( const std::map< std::pair< int, int >, AnisotropicRepulsionParams > &  params)

◆ set_typed_buckingham() [1/2]

void occ::mults::ForceFieldParams::set_typed_buckingham ( const std::map< std::pair< int, int >, BuckinghamParams > &  params)

◆ set_typed_buckingham() [2/2]

void occ::mults::ForceFieldParams::set_typed_buckingham ( int  type1,
int  type2,
const BuckinghamParams p 
)

◆ set_use_short_range_typing()

void occ::mults::ForceFieldParams::set_use_short_range_typing ( bool  v)
inline

◆ set_use_williams_atom_typing()

void occ::mults::ForceFieldParams::set_use_williams_atom_typing ( bool  v)
inline

◆ short_range_type_atomic_number()

static int occ::mults::ForceFieldParams::short_range_type_atomic_number ( int  type_code)
static

Map a Williams/NEIGHCRYS type code to element Z, or 0 if unknown.

◆ short_range_type_label()

static const char * occ::mults::ForceFieldParams::short_range_type_label ( int  type_code)
static

Convert a Williams/NEIGHCRYS type code to a short label (e.g. 512 -> "C_W3").

◆ type_name()

std::string occ::mults::ForceFieldParams::type_name ( int  type_code) const

◆ use_short_range_typing()

bool occ::mults::ForceFieldParams::use_short_range_typing ( ) const
inline

◆ use_williams_atom_typing()

bool occ::mults::ForceFieldParams::use_williams_atom_typing ( ) const
inline

◆ williams_de_params()

static std::map< std::pair< int, int >, BuckinghamParams > occ::mults::ForceFieldParams::williams_de_params ( )
static

Williams DE Buckingham parameters by element pair (kJ/mol, Angstrom).

◆ williams_typed_params()

static std::map< std::pair< int, int >, BuckinghamParams > occ::mults::ForceFieldParams::williams_typed_params ( )
static

Williams typed Buckingham parameters by type code pair (kJ/mol, Angstrom).


The documentation for this class was generated from the following file: