In [15]:
# GET DISTRIBUTION OF DIHEDRAL ANGLES IN THE LINKAGE OF TWO TRIANGLES
# FIX BOTH THE CENTER OF MASS AND ROTATION

In [16]:
%matplotlib inline

In [17]:
import datetime
dts = str(datetime.datetime.now())
date_time_str = dts[:10] + "-" + dts[11:13] + "-" + dts[14:16]
print date_time_str


2015-04-14-15-28

In [18]:
import numpy as np

import matplotlib.pyplot as plt

import bga_4_0 as bga
import manifold_reflected_brownian_motion as mrbm

bga = reload(bga)
mrbm = reload(mrbm)

In [19]:
save_images = True

In [20]:
manifold_name = 'building_game'
poly_name = 'octahedron'
int_num = 3

unary_boundary_name = 'self_intersection'
binary_boundary_name = 'dihedrals'

stat_name = 'test_2'

In [21]:
manifold_kwargs = {'poly_name': poly_name, 
                   'int_num': int_num, 
                   'fixed_com': True,
                   'fixed_rotation': True}
unary_boundary_kwargs = {'poly_name': poly_name, 'int_num': int_num}
binary_boundary_kwargs = {'poly_name': poly_name, 'int_num': int_num}
stat_kwargs = {}

In [22]:
err_tol = 10**-12
h = 0.025
N = 10**7

hist_min = 0.0
hist_max = 2.0*np.pi
hist_bins = 1000

In [23]:
kwargs_nb = {'manifold_name': manifold_name,  
             'stat_name': stat_name,
             'manifold_kwargs': manifold_kwargs,
             'stat_kwargs': stat_kwargs,
             'record_hist': True, 
             'hist_min': hist_min, 
             'hist_max': hist_max, 
             'hist_bins': hist_bins,
             'err_tol': err_tol}

kwargs_b  = {'manifold_name': manifold_name,  
             'unary_boundary_name': unary_boundary_name,
             'binary_boundary_name': binary_boundary_name,
             'stat_name': stat_name,
             'manifold_kwargs': manifold_kwargs,
             'unary_boundary_kwargs': unary_boundary_kwargs,
             'binary_boundary_kwargs': binary_boundary_kwargs,
             'stat_kwargs': stat_kwargs,
             'record_hist': True, 
             'hist_min': hist_min, 
             'hist_max': hist_max, 
             'hist_bins': hist_bins,
             'err_tol': err_tol}

In [24]:
x0, links, lengths, faces = bga.load_bg_int(poly_name, int_num)

In [25]:
z_nb = mrbm.MRBM(x0, h, **kwargs_nb)
z_b = mrbm.MRBM(x0, h, **kwargs_b)

In [26]:
#s_nb = z_nb.sample(N=N, record_trace=False, record_stats=True)
#print 'done'

In [27]:
#s_b = z_b.sample(N=N, record_trace=False, record_stats=True)
#print 'done'

In [29]:
bga.bg_animation(z_b, faces, save_animation=True)


/home/daniel/anaconda/lib/python2.7/site-packages/matplotlib/animation.py:695: UserWarning: MovieWriter ffmpeg unavailable
  warnings.warn("MovieWriter %s unavailable" % writer)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-29-a1e92c01b841> in <module>()
----> 1 bga.bg_animation(z_b, faces, save_animation=True)

/home/daniel/School/research/bga_4_0.py in bg_animation(bg_int, faces, save_animation, L)
   1070         # your system: for more information, see
   1071         # http://matplotlib.sourceforge.net/api/animation_api.html
-> 1072         ani.save('triangular_linkage_diffusion.mp4', fps=3, extra_args=['-vcodec', 'libx264'])
   1073 
   1074     plt.show()

/home/daniel/anaconda/lib/python2.7/site-packages/matplotlib/animation.pyc in save(self, filename, writer, fps, dpi, codec, bitrate, extra_args, metadata, extra_anim, savefig_kwargs)
    710         # since GUI widgets are gone. Either need to remove extra code to
    711         # allow for this non-existant use case or find a way to make it work.
--> 712         with writer.saving(self._fig, filename, dpi):
    713             for data in itertools.izip(*[a.new_saved_frame_seq()
    714                                          for a in all_anim]):

AttributeError: 'str' object has no attribute 'saving'