In [2]:
import sys,os
import numpy as np
import matplotlib as mpl
import matplotlib.cm as cm
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import matplotlib.cm as cmx
#this works apparently only for savefig stuff
mpl.rcParams['figure.figsize']=(6.0,4.0) #(6.0,4.0)
mpl.rcParams['font.size']=10 #10
mpl.rcParams['savefig.dpi']=400 #72
mpl.rcParams['figure.subplot.bottom']=.1 #.125
plt.rc('font', family='serif')
plt.rc('text', usetex=True)
#inline Shit
%matplotlib inline
%config InlineBackend.figure_format='svg'
%config InlineBackend.rc = {'figure.facecolor': 'white', 'figure.subplot.bottom': 0.125, 'figure.edgecolor': 'white', 'savefig.dpi': 400, 'figure.figsize': (12.0, 8.0), 'font.size': 10}
#GUi shit
%matplotlib tk
mpl.get_configdir()
%load_ext autoreload
%autoreload 2
# Import General Packages from me
from Tools.Parsers import *
from Tools.BoundingBox import *
from Tools.Transformations import *
In [3]:
import visvis as vv
from visvis import Point, Pointset
def plotCube(ax,
minP = np.array([-1.0,-1.0,-1.0]),
maxP=np.array([1.0,1.0,1.0]),
trans= np.array([0.0,0.0,0.0]),
rotMatrix=np.diag([1,1,1]), subdivs=None, opts={}, optsDivs={}):
from itertools import product, combinations
r = [-1, 1]
centerPos = (maxP + minP)/2.0;
print(centerPos)
extent = (maxP - minP)/2.0;
points = np.array([(-1, -1, -1),
(-1, -1, 1),
(-1, 1, -1),
(-1, 1, 1),
(1, -1, -1),
(1, -1, 1),
(1, 1, -1),
(1, 1, 1)]);
for s, e in combinations(points, 2):
if np.sum(np.abs(s-e)) == r[1]-r[0]: # no diagonal lines
p1 = np.array(s,dtype=float); p2 = np.array(e,dtype=float);
#scale points
p1*=extent; p2*=extent;
#rotate and translate points
p1 = rotMatrix.dot(p1 + centerPos) + trans;
p2 = rotMatrix.dot(p2+centerPos) + trans;
vv.plot(*zip(p1,p2), axes=ax,**opts);
if subdivs is not None:
pp = list();
dxyz = (maxP - minP) / subdivs;
for k in range(0,int(subdivs[1])+1):
for l in range(0,int(subdivs[2])+1):
pp.extend( ([ minP[0], minP[1] + k*dxyz[1], minP[2] + l*dxyz[2] ],
[ maxP[0], minP[1] + k*dxyz[1], minP[2] + l*dxyz[2] ])
);
for k in range(0,int(subdivs[2])+1):
for l in range(0,int(subdivs[0])+1):
pp.extend( ([ minP[0]+ l*dxyz[0], minP[1], minP[2] + k*dxyz[2] ],
[ minP[0]+ l*dxyz[0], maxP[1], minP[2] + k*dxyz[2] ] )
);
for k in range(0,int(subdivs[0])+1):
for l in range(0,int(subdivs[1])+1):
pp.extend( ([ minP[0]+k*dxyz[0], minP[1]+l*dxyz[1], minP[2] ],
[ minP[0]+k*dxyz[0], minP[1]+l*dxyz[1], maxP[2]])
);
p = np.array(pp);
vv.plot(p.T[0],p.T[1],p.T[2],axes=ax,**optsDivs)
def plotAxis(ax,centerPos,A_IK,plotAxisScale=1):
for i,c in zip([0,1,2],['r','g','b']):
I_eK_i = A_IK[:,i];
lines = list(zip(centerPos,plotAxisScale*I_eK_i+centerPos))
#v = Arrow3D(*lines, mutation_scale=50, lw=1, arrowstyle="-|>", color=c);
vv.plot(*lines, lc=c,axes=ax)
In [ ]:
bodyRange = [0,1]
timeRange = [0.909,0.909]
f = "/media/zfmgpu/Data/GabrielNuetzi/SimFiles/SimFilesBrutus/Avalanche1M-FillUp2/1/SimState2.sim"
dynState = SimFileReader.ReadInSimFile(f ,timeRange,bodyRange,False)
In [6]:
density_bulk = 1600;
volume = 0.2*0.37*0.1/2;
mass = volume * density_bulk;
print("Masse anhand Topology4: ", mass)
In [ ]:
bodyRange = [0,1000000]
timeRange = [1.501,1.502]
#dynState = ReadInSimFile( "../SimFiles/SimDataRECORDMPI_0/SimState.sim" ,[0,0.001],[0,1],False)
f = "/media/zfmgpu/Data/GabrielNuetzi/SimFiles/SimFilesBrutus/Avalanche1M-RunDown1/1/SimState3.sim"
dynState = SimFileReader.ReadInSimFile(f ,timeRange,bodyRange,False)
In [ ]:
dynState.bodies[0].u[0,0:3]