Plot Simfile and SimulationData


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 *


The autoreload extension is already loaded. To reload it, use:
  %reload_ext autoreload

Load the Simfile


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)

Avalanche1M-FillUp2


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)


Masse anhand Topology4:  5.92

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]