Exemple #1
0
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