Skip to content

Commit 03c26e8

Browse files
authored
Merge pull request #1 from sandialabs/dev
more efficient and accurate monte carlo approach
2 parents c36b88a + 6c4a249 commit 03c26e8

File tree

5 files changed

+223
-93
lines changed

5 files changed

+223
-93
lines changed

statmechcrack/isometric.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ def Q_isometric(self, v, transition_state=False):
8383
>>> from statmechcrack import CrackIsometric
8484
>>> v = np.linspace(1, 11, 250)
8585
>>> _ = plt.figure()
86-
>>> for varepsilon in [10, 25, 100, 800]:
86+
>>> for varepsilon in [10, 25, 100, 1000]:
8787
... model = CrackIsometric(varepsilon=varepsilon)
8888
... r_Q = (model.Q_isometric(v)/model.Q_isometric(1)
8989
... )**(model.N**3/3/model.kappa)
@@ -170,7 +170,7 @@ def beta_A_isometric(self, v, approach='asymptotic', **kwargs):
170170
>>> from statmechcrack import CrackIsometric
171171
>>> v = np.linspace(1, 11, 33)
172172
>>> _ = plt.figure()
173-
>>> for varepsilon in [10, 25, 100, 800]:
173+
>>> for varepsilon in [10, 25, 100, 1000]:
174174
... model = CrackIsometric(varepsilon=varepsilon)
175175
... beta_A = \
176176
... model.beta_A_isometric(v, approach='asymptotic')
@@ -225,7 +225,7 @@ def p_isometric(self, v, approach='asymptotic', **kwargs):
225225
>>> from statmechcrack import CrackIsometric
226226
>>> v = np.linspace(1, 11, 33)
227227
>>> _ = plt.figure()
228-
>>> for varepsilon in [10, 25, 100, 800]:
228+
>>> for varepsilon in [10, 25, 100, 1000]:
229229
... model = CrackIsometric(varepsilon=varepsilon)
230230
... p = model.p_isometric(v, approach='asymptotic')
231231
... _ = plt.plot(v - 1, model.N**3/3/model.kappa*p,
@@ -276,7 +276,7 @@ def k_isometric(self, v, approach='asymptotic', **kwargs):
276276
>>> from statmechcrack import CrackIsometric
277277
>>> v = np.linspace(1, 11, 33)
278278
>>> _ = plt.figure()
279-
>>> for varepsilon in [10, 25, 100, 800]:
279+
>>> for varepsilon in [10, 25, 100, 1000]:
280280
... model = CrackIsometric(varepsilon=varepsilon)
281281
... _ = plt.semilogy(
282282
... v - 1, model.k_isometric(v),
@@ -415,7 +415,7 @@ def beta_A_0_isometric(self, v, lambda_):
415415
416416
"""
417417
return self.beta_A_0_abs_isometric(v, lambda_) \
418-
- self.beta_A_0_abs_isometric(lambda_[0], lambda_)
418+
- self.beta_A_0_abs_isometric(1, lambda_)
419419

420420
def p_0_isometric(self, v, lambda_):
421421
r"""The nondimensional end force
@@ -579,7 +579,7 @@ def beta_A_b_isometric(self, v, lambda_):
579579
580580
"""
581581
return self.beta_A_b_isometric_abs(v, lambda_) \
582-
- self.beta_A_b_isometric_abs(lambda_[0], lambda_)
582+
- self.beta_A_b_isometric_abs(1, lambda_)
583583

584584
def p_b_isometric(self, v, lambda_):
585585
r"""The nondimensional end force

statmechcrack/isotensional.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ def Z_isotensional(self, p, transition_state=False):
7575
>>> from statmechcrack import CrackIsotensional
7676
>>> rp = np.linspace(0, 10, 250)
7777
>>> _ = plt.figure()
78-
>>> for varepsilon in [50, 100, 800]:
78+
>>> for varepsilon in [50, 100, 1000]:
7979
... model = CrackIsotensional(varepsilon=varepsilon)
8080
... p = 3*model.kappa/model.N**3*rp
8181
... r_Z = (model.Z_isotensional(0)/model.Z_isotensional(p)
@@ -164,7 +164,7 @@ def beta_G_isotensional(self, p, approach='asymptotic', **kwargs):
164164
>>> from statmechcrack import CrackIsotensional
165165
>>> rp = np.linspace(0, 10, 33)
166166
>>> _ = plt.figure()
167-
>>> for varepsilon in [50, 100, 800]:
167+
>>> for varepsilon in [50, 100, 1000]:
168168
... model = CrackIsotensional(varepsilon=varepsilon)
169169
... p = 3*model.kappa/model.N**3*rp
170170
... beta_G = model.beta_G_isotensional(
@@ -220,7 +220,7 @@ def v_isotensional(self, p, approach='asymptotic', **kwargs):
220220
>>> from statmechcrack import CrackIsotensional
221221
>>> rp = np.linspace(0, 10, 33)
222222
>>> _ = plt.figure()
223-
>>> for varepsilon in [50, 100, 800]:
223+
>>> for varepsilon in [10, 25, 100, 1000]:
224224
... model = CrackIsotensional(varepsilon=varepsilon)
225225
... p = 3*model.kappa/model.N**3*rp
226226
... v = model.v_isotensional(p, approach='asymptotic')
@@ -268,7 +268,7 @@ def k_isotensional(self, p, approach='asymptotic', **kwargs):
268268
>>> from statmechcrack import CrackIsotensional
269269
>>> rp = np.linspace(0, 10, 33)
270270
>>> _ = plt.figure()
271-
>>> for varepsilon in [50, 100, 800]:
271+
>>> for varepsilon in [50, 100, 1000]:
272272
... model = CrackIsotensional(varepsilon=varepsilon)
273273
... p = 3*model.kappa/model.N**3*rp
274274
... _ = plt.semilogy(

statmechcrack/mechanical.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,9 @@ def beta_u(self, lambda_):
147147
numpy.ndarray: The nondimensional potential energy.
148148
149149
"""
150-
return self.varepsilon*(1 - np.exp(-self.alpha*(lambda_ - 1)))**2
150+
return self.varepsilon*(
151+
1 - np.exp(-self.alpha*(lambda_ - 1))
152+
)**2 + 1e88*(lambda_ > self.lambda_TS)
151153

152154
def beta_u_p(self, lambda_):
153155
r"""The first derivative of the potential energy of a single bond

0 commit comments

Comments
 (0)