Source code for pydna_epbd.monitors.energy_monitor
from pydna_epbd.monitors.monitor import Monitor
[docs]class EnergyMonitor(Monitor):
"""The energy monitor collects total energy (in Kelvin) at every preheating and post preheating step."""
KB = 0.0000861733034
def __init__(self, dna, total_steps) -> None:
"""Initialize EnergyMonitor object.
Args:
dna (DNA): A DNA object.
total_steps (int): Total number of steps.
"""
super(EnergyMonitor, self).__init__(dna)
self.energy = [0.0] * total_steps
[docs] def collect_at_step(self, step_no):
"""Collect energies at post-preheating steps.
Args:
step_no (int): Step number.
"""
temp = self.dna.total_energy / (
self.KB * self.dna.n_nt_bases
) # computing temperature from energy
self.energy[step_no] += temp
[docs] def collect_at_step_preheat(self, step_no):
"""Collect energies at preheating steps.
Args:
step_no (int): Step number.
"""
self.collect_at_step(step_no)