MarkovChain

class MarkovChain(configuration, configuration_energy, events=None, energy_tolerance=None, distance_tolerance=None)

Construct a markov chain from a list of HTSTEvent objects.

Parameters:
  • configuration (BulkConfiguration) – The configuration for the first state of the Markov chain.

  • configuration_energy (PhysicalQuantity of type energy) – The energy of the configuration.

  • events (list of type HTSTEvent) – A list of HTSTEvent objects used to construct the Markov chain. By default an empty Markov chain will be made.
    Default: None

  • distance_tolerance (PhysicalQuantity of type length) – This is the distance tolerance used to compare geometries.
    Default: 0.1*Angstrom

  • energy_tolerance (PhysicalQuantity of type energy) – This energy tolerance is used to determine if two structures are different based upon energy alone. Configurations that are closer than this tolerance undergo a full geometry comparison.
    Default: 0.02*eV

addConnection(connection, event)

Add a new connection to the Markov chain. This is a potentially dangerous method to call since it intentionally by passes the geometry comparison routines.

Parameters:
  • connection (a pair of ints) – A tuple of integers representing the reactant and product state ids respectively.

  • event (HTSTEvent) – The event to add.

addEvent(event)

Add an event to the Markov chain.

Parameters:

event (HTSTEvent) – A event to be added to the Markov chain.

Returns:

The id of the product state

Return type:

int

addStateTime(state_id, dt)

Increase the amount of MD time simulation in a state.

Parameters:
  • state_id (int) – The id of the state to add time to.

  • dt (A PhysicalQuantity with time units) – The amount of time to add.

getSaddleConfiguration(initial_state_id, final_state_id)
Parameters:
  • initial_state_id (int) – The id of the initial state.

  • final_state_id (int) – The id of the final state.

Returns:

The saddle configuration between two states.

Return type:

BulkConfiguration

getSaddleEnergy(initial_state_id, final_state_id)
Parameters:
  • initial_state_id (int) – The id of the initial state.

  • final_state_id (int) – The id of the final state.

Returns:

The energy of the saddle point.

Return type:

PhysicalQuantity of type energy

getState(state_id)
Parameters:

state_id (int) – The state id.

Returns:

The requested state.

Return type:

MarkovState

getStateConfidence(state_id, kmc_temperature)

Return the confidence of the requested state. The confidence represents an estimate of the probability that a KMC step chooses the correct event. For example, a confidence of 0.99 means that there is a 1% chance that the KMC simulation picked the wrong event in a single step.

Parameters:
  • state_id (int) – The id of the state.

  • kmc_temperature (PhysicalQuantity of type temperature) – The temperature of the KMC simulation.

Returns:

The confidence.

Return type:

float

getStateConfiguration(state_id)
Parameters:

state_id (int) – The id of the state.

Returns:

The configuration associated with a state.

Return type:

BulkConfiguration

getStateEnergy(state_id)
Parameters:

state_id (int) – The id of the state.

Returns:

The energy of a state.

Return type:

PhysicalQuantity of type energy

getStateEvents(state_id)

Return the HTSTEvents that connect to state_id.

Parameters:

state_id (int) – The state_id of the state.

Returns:

A dictionary that maps (reactant_id, product_id) pairs to HTSTEvents.

Return type:

OrderedDict

getStateTime(state_id)
Parameters:

state_id (int) – The id of the state.

Returns:

The total amount of MD time simulation in the state.

Return type:

PhysicalQuantity of type time

getStates()
Returns:

A list of the states in the Markov chain.

Return type:

list of type MarkovState

incrementObservationCount(initial_state_id, final_state_id)

Increment the number of times that a transition from the initial state to the final state has occured.

Parameters:
  • initial_state_id (int) – The initial state.

  • final_state_id (int) – The final state.

isConnected(state_id_1, state_id_2)

Determine if two states are connected by an event.

Parameters:
  • state_id_1 (int) – The id of the first state.

  • state_id_2 (int) – The id of the second state.

Returns:

True if connected otherwise False.

Return type:

bool

nlprint(stream=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>)

Print out the Markov chain in DOT graph format.

Parameters:

stream (file-like object) – The stream to write the DOT graph to.
Default: sys.stdout

observationCount(initial_state_id, final_state_id)
Parameters:
  • initial_state_id (int) – The initial state.

  • final_state_id (int) – The final state.

Returns:

Return the number of times that a transition from the initial state to the final state has occurred.

Return type:

int

rateMatrix(temperature)

Calculate the right handed (rows sum to the total escape rate for a state) rate matrix at a given temperature.

Parameters:

temperature (PhysicalQuantity of type temperature) – The temperature to calculate the rates at.

Returns:

The rate matrix.

Return type:

PhysicalQuantity of type frequency

Notes

MarkovChain objects are normally passed to the AdaptiveKineticMonteCarlo class.