mirror of
https://gitlab.com/pimnelissen/entropic-spring.git
synced 2025-11-30 19:33:07 +01:00
update link and rubberband structures
This commit is contained in:
@ -3,7 +3,10 @@ import numpy as np
|
||||
from Link import Link
|
||||
|
||||
class RubberBand:
|
||||
def __init__(self, N, a=1.):
|
||||
# class attributes
|
||||
k_B = 1
|
||||
|
||||
def __init__(self, N, a=1., T=1.):
|
||||
"""
|
||||
RubberBand is a class that can simulate a rubber band with N
|
||||
incompressible links of length a.
|
||||
@ -11,16 +14,22 @@ class RubberBand:
|
||||
Parameters:
|
||||
N (int) The number of links.
|
||||
a (float) The fixed length of links.
|
||||
T (float) Temperature of the system.
|
||||
"""
|
||||
|
||||
self.N = N
|
||||
self.a = a
|
||||
self.T = T
|
||||
self.links = self.__sample_links()
|
||||
|
||||
def w(self, f, l):
|
||||
beta = (self.k_B*self.T)**(-1)
|
||||
return np.exp(beta*f*l)
|
||||
|
||||
@property
|
||||
def length(self):
|
||||
return self.a * np.sum([l.direction for l in self.links])
|
||||
|
||||
|
||||
def __sample_links(self):
|
||||
"""
|
||||
Sample N Link objects with a random direction.
|
||||
@ -30,6 +39,4 @@ class RubberBand:
|
||||
directions = np.ones(samples.shape)
|
||||
directions[samples < 0.5] = -1.
|
||||
directions = directions.astype(int)
|
||||
return [Link(d) for d in directions]
|
||||
|
||||
|
||||
return [Link(d) for d in directions]
|
||||
Reference in New Issue
Block a user