@@ -171,7 +171,6 @@ def fun(seed, output):
171171 for p in processes :
172172 p .join ()
173173 process_results = [output .get () for p in processes ]
174- print (process_results )
175174 return np .mean (process_results )
176175 return serial_fun (burned_in_config , ** kwargs )
177176
@@ -310,7 +309,15 @@ def beta_A_isometric_monte_carlo_serial(self, v, init_config,
310309 numpy.ndarray: The relative nondimensional Helmholtz free energy.
311310
312311 """
313- pass
312+ exp_neg_beta_A = 0
313+ config = init_config
314+ for counter in range (1 , 1 + num_samples ):
315+ exp_neg_beta_A_next = np .exp (
316+ self .beta_U (1 , config ) - self .beta_U (v , config )
317+ )
318+ exp_neg_beta_A += (exp_neg_beta_A_next - exp_neg_beta_A )/ counter
319+ config = self .mh_next_config (config , ** kwargs )
320+ return np .log (1 / exp_neg_beta_A )
314321
315322 def beta_A_isometric_monte_carlo (self , v , ** kwargs ):
316323 r"""The relative nondimensional Helmholtz free energy
@@ -323,7 +330,7 @@ def beta_A_isometric_monte_carlo(self, v, **kwargs):
323330 \beta\Delta A(v) =
324331 -\ln\left\langle e^{-\beta\Delta U}\right\rangle_{v=1},
325332
326- where :math:`\Delta U\equiv U(v,s)- U(1,s)`.
333+ where :math:`\Delta U \equiv U(v,s) - U(1,s)`.
327334
328335 Args:
329336 v (array_like): The nondimensional end separation.
@@ -337,7 +344,7 @@ def beta_A_isometric_monte_carlo(self, v, **kwargs):
337344 v = self .np_array (v )
338345 beta_A = np .zeros (v .shape )
339346 for i , v_i in enumerate (v ):
340- self .beta_e = lambda config : self .beta_U (v_i , config )
347+ self .beta_e = lambda config : self .beta_U (1 , config )
341348
342349 def serial_fun (init_config , ** kwargs ):
343350 return self .beta_A_isometric_monte_carlo_serial (
@@ -380,7 +387,7 @@ def beta_G_isotensional_monte_carlo(self, p, **kwargs):
380387 \beta\Delta G(v) =
381388 -\ln\left\langle e^{-\beta\Delta\Pi}\right\rangle_{p=0},
382389
383- where :math:`\Delta\Pi\equiv\Pi(p,s)- \Pi(0,s)`.
390+ where :math:`\Delta\Pi \equiv \Pi(p,s) - \Pi(0,s)`.
384391
385392 Args:
386393 p (array_like): The nondimensional end force.
@@ -392,16 +399,16 @@ def beta_G_isotensional_monte_carlo(self, p, **kwargs):
392399
393400 """
394401 p = self .np_array (p )
395- beta_G_isotensional = np .zeros (p .shape )
402+ beta_G = np .zeros (p .shape )
396403 for i , p_i in enumerate (p ):
397404 self .beta_e = lambda vs : self .beta_Pi (p_i , vs [0 ], vs [1 :])
398405 v_guess , s_guess = self .minimize_beta_Pi (p_i )[1 :]
399- beta_G_isotensional [i ] = self .parallel_calculation (
406+ beta_G [i ] = self .parallel_calculation (
400407 self .beta_G_isotensional_monte_carlo_serial ,
401408 np .concatenate ((v_guess , s_guess [:, 0 ])),
402409 ** kwargs
403410 )
404- return beta_G_isotensional
411+ return beta_G
405412
406413 def k_isometric_monte_carlo_serial (self , v , init_config ,
407414 num_samples = 1000000 , ** kwargs ):
@@ -446,7 +453,7 @@ def k_isometric_monte_carlo(self, v, **kwargs):
446453
447454 """
448455 v = self .np_array (v )
449- k_isometric = np .zeros (v .shape )
456+ k = np .zeros (v .shape )
450457 for i , v_i in enumerate (v ):
451458 self .beta_e = lambda config : self .beta_U (v_i , config )
452459
@@ -455,12 +462,12 @@ def serial_fun(init_config, **kwargs):
455462 v_i , init_config , ** kwargs
456463 )
457464
458- k_isometric [i ] = self .parallel_calculation (
465+ k [i ] = self .parallel_calculation (
459466 serial_fun ,
460467 self .minimize_beta_U (v_i )[2 ][:, 0 ],
461468 ** kwargs
462469 )
463- return k_isometric
470+ return k
464471
465472 def k_isotensional_monte_carlo_serial (self , init_config ,
466473 num_samples = 1000000 , ** kwargs ):
@@ -504,13 +511,13 @@ def k_isotensional_monte_carlo(self, p, **kwargs):
504511
505512 """
506513 p = self .np_array (p )
507- k_isotensional = np .zeros (p .shape )
514+ k = np .zeros (p .shape )
508515 for i , p_i in enumerate (p ):
509516 self .beta_e = lambda vs : self .beta_Pi (p_i , vs [0 ], vs [1 :])
510517 v_guess , s_guess = self .minimize_beta_Pi (p_i )[1 :]
511- k_isotensional [i ] = self .parallel_calculation (
518+ k [i ] = self .parallel_calculation (
512519 self .k_isotensional_monte_carlo_serial ,
513520 np .concatenate ((v_guess , s_guess [:, 0 ])),
514521 ** kwargs
515522 )
516- return k_isotensional
523+ return k
0 commit comments