PAPRECA hybrid off-lattice kMC/MD simulator  2.0.0 (17 September 2024)
PAPRECA::PredefinedDiffusionHop Class Reference

class associated with diffusion events. This is a Predefined template for PAPRECA::DiffusionHop events. More...

#include <event_list.h>

Public Member Functions

 PredefinedDiffusionHop (const int &parent_type_in, const double &insertion_vel_in, const double &diffusion_dist_in, const double &rate_in, const std::string &custom_style_in, const std::vector< int > &style_atomtypes_in)
 
 PredefinedDiffusionHop (const int &parent_type_in, const double &insertion_vel_in, const double &diffusion_dist_in, const double &rate_in, const std::string &custom_style_in, const std::vector< int > &style_atomtypes_in, const int &diffused_type_in, const bool &is_displacive_in)
 
 ~PredefinedDiffusionHop ()
 
const int & getParentAtomType () const
 
const double & getInsertionVel () const
 
const int & getDiffusedAtomType () const
 
const bool & isDisplacive () const
 Displacive events "move" the parent atom, while non-displacive events, create a new atom at the vacancy. More...
 
const double & getDiffusionDist () const
 
const double & getRate () const
 
const std::string & getCustomStyle () const
 
const std::vector< int > & getStyleAtomTypes () const
 

Private Attributes

int parent_type = -1
 type of candidate parent atom. More...
 
double insertion_vel = 0.0
 velocity of the displaced atom. More...
 
int diffused_type = -2
 type of diffused atom. This can be the same as the parent type. Alternatively, it can be set to a different type if you want the atom type to change after diffusion. More...
 
bool is_displacive = false
 
double diffusion_dist = 0.0
 
std::string custom_style = "NONE"
 displace atom by that much. More...
 
std::vector< int > style_atomtypes
 vector that allows you to pass information about atom types from the PAPRECA input file. More...
 
double rate = 0.0
 

Detailed Description

class associated with diffusion events. This is a Predefined template for PAPRECA::DiffusionHop events.

Constructor & Destructor Documentation

◆ PredefinedDiffusionHop() [1/2]

PAPRECA::PredefinedDiffusionHop::PredefinedDiffusionHop ( const int &  parent_type_in,
const double &  insertion_vel_in,
const double &  diffusion_dist_in,
const double &  rate_in,
const std::string &  custom_style_in,
const std::vector< int > &  style_atomtypes_in 
)

◆ PredefinedDiffusionHop() [2/2]

PAPRECA::PredefinedDiffusionHop::PredefinedDiffusionHop ( const int &  parent_type_in,
const double &  insertion_vel_in,
const double &  diffusion_dist_in,
const double &  rate_in,
const std::string &  custom_style_in,
const std::vector< int > &  style_atomtypes_in,
const int &  diffused_type_in,
const bool &  is_displacive_in 
)

◆ ~PredefinedDiffusionHop()

PAPRECA::PredefinedDiffusionHop::~PredefinedDiffusionHop ( )

Member Function Documentation

◆ getCustomStyle()

const std::string & PAPRECA::PredefinedDiffusionHop::getCustomStyle ( ) const

◆ getDiffusedAtomType()

const int & PAPRECA::PredefinedDiffusionHop::getDiffusedAtomType ( ) const

◆ getDiffusionDist()

const double & PAPRECA::PredefinedDiffusionHop::getDiffusionDist ( ) const

◆ getInsertionVel()

const double & PAPRECA::PredefinedDiffusionHop::getInsertionVel ( ) const

◆ getParentAtomType()

const int & PAPRECA::PredefinedDiffusionHop::getParentAtomType ( ) const

◆ getRate()

const double & PAPRECA::PredefinedDiffusionHop::getRate ( ) const

◆ getStyleAtomTypes()

const std::vector< int > & PAPRECA::PredefinedDiffusionHop::getStyleAtomTypes ( ) const

◆ isDisplacive()

const bool & PAPRECA::PredefinedDiffusionHop::isDisplacive ( ) const

Displacive events "move" the parent atom, while non-displacive events, create a new atom at the vacancy.

Member Data Documentation

◆ custom_style

std::string PAPRECA::PredefinedDiffusionHop::custom_style = "NONE"
private

displace atom by that much.

currently, only the Fe_4PO4neib style is an acceptable custom style for diffusion.

◆ diffused_type

int PAPRECA::PredefinedDiffusionHop::diffused_type = -2
private

type of diffused atom. This can be the same as the parent type. Alternatively, it can be set to a different type if you want the atom type to change after diffusion.

◆ diffusion_dist

double PAPRECA::PredefinedDiffusionHop::diffusion_dist = 0.0
private

◆ insertion_vel

double PAPRECA::PredefinedDiffusionHop::insertion_vel = 0.0
private

velocity of the displaced atom.

◆ is_displacive

bool PAPRECA::PredefinedDiffusionHop::is_displacive = false
private

◆ parent_type

int PAPRECA::PredefinedDiffusionHop::parent_type = -1
private

type of candidate parent atom.

◆ rate

double PAPRECA::PredefinedDiffusionHop::rate = 0.0
private

◆ style_atomtypes

std::vector< int > PAPRECA::PredefinedDiffusionHop::style_atomtypes
private

vector that allows you to pass information about atom types from the PAPRECA input file.


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