def patry(v=-1): # this function stores all info of v-th pvar on array p if v == -1: pvar = pc.read_pvar() else: pvar = pc.read_pvar(varfile='PVAR' + str(v)) i, x, y, z, vx, vy, vz = pvar.ipars, pvar.xp, pvar.yp, pvar.zp, pvar.vpx, pvar.vpy, pvar.vpz p = np.array([i, x, y, z, vx, vy, vz]) return p
import sys import os base_path, script_name = os.path.split(sys.argv[0]) scratch, simulation_name = os.path.split(base_path) script_name = script_name[:-3] ivar = -1 pvar = "pvar.dat" if len(sys.argv) > 1: ivar = int(sys.argv[1]) pvar = "PVAR" + sys.argv[1] parameters = pencil.read_param(quiet=True) data = pencil.read_var(ivar=ivar, quiet=True) pdata = pencil.read_pvar(varfile=pvar) xp = pdata.xp yp = pdata.yp zp = pdata.zp npar = len(pdata.ipars) x0 = parameters.xyz0[0] y0 = parameters.xyz0[1] z0 = parameters.xyz0[2] x1 = parameters.xyz1[0] y1 = parameters.xyz1[1] z1 = parameters.xyz1[2] y_lower_frac = 1.0 y_upper_frac = 1.0
def particles_to_vtk(var_file='pvar.dat', datadir='data/', proc=-1, destination='particles.vtk', ti=-1, tf=-1, binary=True): """ Read the pVAR files from Pencil Code and write them as vtk files. call signature: particles_to_vtk(var_file='pvar.dat', datadir='data/', proc=-1, destination='particles.vtk', ti=-1, tf=-1, binary=True) Keyword arguments: *var_file*: Name of the PVAR file. *datadir*: Directory where the data is stored. *proc*: Processor to be read. If -1 read all and assemble to one array. *destination*: Destination file (onyl if ti, tf > 0). *ti*: Initial time index for animation. *tf*: Final time index for animation. *binary*: Determines if binary or clear text data for the vtk files. """ import numpy as np # TODO: change to pencilnew in the future. import pencil as pc # Read the particle data and save it in a list. pvar_list = [] if (ti >= 0) and (tf >= 0): for tidx in range(ti, tf): var_file = 'PVAR{0}'.format(tidx) pvar = pc.read_pvar(varfile=var_file, datadir=datadir, proc=proc) pvar_list.append(pvar) else: pvar = pc.read_pvar(varfile=var_file, datadir=datadir, proc=proc) pvar_list.append(pvar) # Convert the data into vtk. particles_vtk_tmp = ParticlesVtk() particles_vtk_tmp.convert_to_vtk(pvar_list) # Define some constants. particles_vtk_tmp.ti = ti particles_vtk_tmp.tf = tf particles_vtk_tmp.binary = binary particles_vtk_tmp.destination = destination # Write the data inot vtk files. particles_vtk_tmp.write_to_vtk() return particles_vtk_tmp
import pencil import numpy from matplotlib import pyplot from matplotlib import cm import sys import os #simulation_name = #script_name = os.path.basename(__file__) data = pencil.read_var(trimall=True) pdata = pencil.read_pvar() time_series = pencil.read_ts() parameters = pencil.read_param() npar = len(pdata.ipars) xgrid = data.x ygrid = data.y zgrid = data.z dxgrid = data.dx dygrid = data.dy dzgrid = data.dz x0 = xgrid[0] y0 = ygrid[0] z0 = zgrid[0] x1 = xgrid[-1] y1 = ygrid[-1] z1 = zgrid[-1] last_snap = numpy.floor(time_series.t[-1]/parameters.tausp) + 1 ivar_lower = 0
import pencil import numpy from matplotlib import pyplot import sys parameters = pencil.read_param() var = "pvar.dat" data = pencil.read_var() t = data.t if len(sys.argv) > 1: var = sys.argv[1] if (var != "pvar.dat"): t = int(var[4:]) * parameters.tausp pdata = pencil.read_pvar(varfile=var) pdata0 = pencil.read_pvar(varfile="PVAR0") xp = pdata.xp yp = pdata.yp zp = pdata.zp xp0 = pdata0.xp yp0 = pdata0.yp zp0 = pdata0.zp x0 = parameters.xyz0[0] y0 = parameters.xyz0[1] z0 = parameters.xyz0[2] x1 = parameters.xyz1[0] y1 = parameters.xyz1[1] z1 = parameters.xyz1[2]
def particles_to_vtk(var_file='pvar.dat', datadir='data/', proc=-1, destination='particles.vtk', ti=-1, tf=-1, binary=True): """ Read the pVAR files from Pencil Code and write them as vtk files. call signature: particles_to_vtk(var_file='pvar.dat', datadir='data/', proc=-1, destination='particles.vtk', ti=-1, tf=-1, binary=True) Keyword arguments: *var_file*: Name of the PVAR file. *datadir*: Directory where the data is stored. *proc*: Processor to be read. If -1 read all and assemble to one array. *destination*: Destination file (onyl if ti, tf > 0). *ti*: Initial time index for animation. *tf*: Final time index for animation. *binary*: Determines if binary or clear text data for the vtk files. """ import numpy as np # TODO: change to pencilnew in the future. import pencil as pc # Read the particle data and save it in a list. pvar_list = [] if (ti >= 0) and (tf >= 0): for tidx in range(ti, tf): var_file = 'PVAR{0}'.format(tidx) pvar = pc.read_pvar(varfile=var_file, datadir=datadir, proc=proc) pvar_list.append(pvar) else: pvar = pc.read_pvar(varfile=var_file, datadir=datadir, proc=proc) pvar_list.append(pvar) # Convert the data into vtk. particles_vtk_tmp = ParticlesVtk() particles_vtk_tmp.convert_to_vtk(pvar_list) # Define some constants. particles_vtk_tmp.ti = ti particles_vtk_tmp.tf = tf particles_vtk_tmp.binary = binary particles_vtk_tmp.destination = destination # Write the data inot vtk files. particles_vtk_tmp.write_to_vtk() return particles_vtk_tmp