[yt-svn] commit/yt: 10 new changesets
commits-noreply at bitbucket.org
commits-noreply at bitbucket.org
Sun Jul 16 07:33:05 PDT 2017
10 new commits in yt:
https://bitbucket.org/yt_analysis/yt/commits/27bc2d108139/
Changeset: 27bc2d108139
User: atmyers
Date: 2017-06-22 21:50:28+00:00
Summary: Be smarter about parsing the WarpX header file.
Affected #: 1 file
diff -r 0c844416fb68c75ea74aa75bcc321e06982748d7 -r 27bc2d1081391741c8dc7fd5a8fccf54be8592aa yt/frontends/boxlib/data_structures.py
--- a/yt/frontends/boxlib/data_structures.py
+++ b/yt/frontends/boxlib/data_structures.py
@@ -1382,6 +1382,41 @@
return boxes, file_names, offsets
+class WarpXHeader(object):
+ def __init__(self, header_fn):
+ self.data = {}
+ with open(header_fn, "r") as f:
+ self.data["Checkpoint_version"] = int(f.readline().strip().split()[-1])
+
+ self.data["num_levels"] = int(f.readline().strip().split()[-1])
+ self.data["istep"] = [int(num) for num in f.readline().strip().split()]
+ self.data["nsubsteps"] = [int(num) for num in f.readline().strip().split()]
+
+ self.data["t_new"] = [float(num) for num in f.readline().strip().split()]
+ self.data["t_old"] = [float(num) for num in f.readline().strip().split()]
+ self.data["dt"] = [float(num) for num in f.readline().strip().split()]
+
+ self.data["moving_window_x"] = float(f.readline().strip().split()[-1])
+ self.data["is_synchronized"] = bool(f.readline().strip().split()[-1])
+
+ self.data["prob_lo"] = [float(num) for num in f.readline().strip().split()]
+ self.data["prob_hi"] = [float(num) for num in f.readline().strip().split()]
+
+ for _ in range(self.data["num_levels"]):
+ num_boxes = int(f.readline().strip().split()[0][1:])
+ for __ in range(num_boxes):
+ f.readline()
+ f.readline()
+
+ i = 0
+ line = f.readline()
+ while line:
+ line = line.strip().split()
+ self.data["species_%d" % i] = [float(val) for val in line]
+ i = i + 1
+ line = f.readline()
+
+
class WarpXHierarchy(BoxlibHierarchy):
def __init__(self, ds, dataset_type="boxlib_native"):
@@ -1392,27 +1427,15 @@
self._read_particles(ptype, is_checkpoint)
# Additional WarpX particle information (used to set up species)
- with open(self.ds.output_dir + "/WarpXHeader", 'r') as f:
-
- # skip to the end, where species info is written out
- line = f.readline()
- while line and line != ')\n':
- line = f.readline()
- line = f.readline()
-
- # Read in the species information
- species_id = 0
- while line:
- line = line.strip().split()
- charge = YTQuantity(float(line[0]), "C")
- mass = YTQuantity(float(line[1]), "kg")
- charge_name = 'particle%.1d_charge' % species_id
- mass_name = 'particle%.1d_mass' % species_id
- self.parameters[charge_name] = charge
- self.parameters[mass_name] = mass
- line = f.readline()
- species_id += 1
-
+ self.warpx_header = WarpXHeader(self.ds.output_dir + "/WarpXHeader")
+
+ for i, (key, val) in enumerate(self.warpx_header.data.items()):
+ if key.startswith("species_"):
+ charge_name = 'particle%.1d_charge' % i
+ mass_name = 'particle%.1d_mass' % i
+ self.parameters[charge_name] = val[0]
+ self.parameters[mass_name] = val[1]
+
def _detect_output_fields(self):
super(WarpXHierarchy, self)._detect_output_fields()
https://bitbucket.org/yt_analysis/yt/commits/ca8bedd4a8cc/
Changeset: ca8bedd4a8cc
User: atmyers
Date: 2017-07-05 17:29:41+00:00
Summary: fix issue with reading is_synchronized from old WarpX datasets.
Affected #: 1 file
diff -r 27bc2d1081391741c8dc7fd5a8fccf54be8592aa -r ca8bedd4a8cc39d845198496d4206e51a7fac81c yt/frontends/boxlib/data_structures.py
--- a/yt/frontends/boxlib/data_structures.py
+++ b/yt/frontends/boxlib/data_structures.py
@@ -1397,9 +1397,16 @@
self.data["dt"] = [float(num) for num in f.readline().strip().split()]
self.data["moving_window_x"] = float(f.readline().strip().split()[-1])
- self.data["is_synchronized"] = bool(f.readline().strip().split()[-1])
-
- self.data["prob_lo"] = [float(num) for num in f.readline().strip().split()]
+
+ # not all datasets will have is_synchronized
+ line = f.readline().strip().split()
+ if (len(line) == 1):
+ self.data["is_synchronized"] = bool(line[-1])
+ self.data["prob_lo"] = [float(num) for num in f.readline().strip().split()]
+ else:
+ self.data["is_synchronized"] = True
+ self.data["prob_lo"] = [float(num) for num in line]
+
self.data["prob_hi"] = [float(num) for num in f.readline().strip().split()]
for _ in range(self.data["num_levels"]):
https://bitbucket.org/yt_analysis/yt/commits/966ff9083a51/
Changeset: 966ff9083a51
User: atmyers
Date: 2017-07-05 17:30:51+00:00
Summary: remove unused import
Affected #: 1 file
diff -r ca8bedd4a8cc39d845198496d4206e51a7fac81c -r 966ff9083a51f56edaaf1276aff9f3241ca309a7 yt/frontends/boxlib/data_structures.py
--- a/yt/frontends/boxlib/data_structures.py
+++ b/yt/frontends/boxlib/data_structures.py
@@ -30,7 +30,6 @@
from yt.data_objects.grid_patch import AMRGridPatch
from yt.geometry.grid_geometry_handler import GridIndex
from yt.data_objects.static_output import Dataset
-from yt.units import YTQuantity
from yt.utilities.parallel_tools.parallel_analysis_interface import \
parallel_root_only
https://bitbucket.org/yt_analysis/yt/commits/3ef69176f37a/
Changeset: 3ef69176f37a
User: atmyers
Date: 2017-07-05 19:31:13+00:00
Summary: fix indexing bug in species mass/charge
Affected #: 1 file
diff -r 966ff9083a51f56edaaf1276aff9f3241ca309a7 -r 3ef69176f37a39f590615cf898b0fec06527570a yt/frontends/boxlib/data_structures.py
--- a/yt/frontends/boxlib/data_structures.py
+++ b/yt/frontends/boxlib/data_structures.py
@@ -1435,12 +1435,14 @@
# Additional WarpX particle information (used to set up species)
self.warpx_header = WarpXHeader(self.ds.output_dir + "/WarpXHeader")
- for i, (key, val) in enumerate(self.warpx_header.data.items()):
+ i = 0
+ for key, val in self.warpx_header.data.items():
if key.startswith("species_"):
charge_name = 'particle%.1d_charge' % i
mass_name = 'particle%.1d_mass' % i
self.parameters[charge_name] = val[0]
self.parameters[mass_name] = val[1]
+ i = i + 1
def _detect_output_fields(self):
super(WarpXHierarchy, self)._detect_output_fields()
https://bitbucket.org/yt_analysis/yt/commits/e49ad643fc2f/
Changeset: e49ad643fc2f
User: atmyers
Date: 2017-07-05 19:31:32+00:00
Summary: enable units for particle mass/charge fields.
Affected #: 1 file
diff -r 3ef69176f37a39f590615cf898b0fec06527570a -r e49ad643fc2f148b57540babd31571d2f6f450d2 yt/frontends/boxlib/fields.py
--- a/yt/frontends/boxlib/fields.py
+++ b/yt/frontends/boxlib/fields.py
@@ -18,6 +18,7 @@
boltzmann_constant_cgs, amu_cgs
from yt.fields.field_info_container import \
FieldInfoContainer
+from yt.units import YTQuantity
rho_units = "code_mass / code_length**3"
mom_units = "code_mass / (code_time * code_length**2)"
@@ -93,7 +94,7 @@
def get_mass(field, data):
species_mass = data.ds.index.parameters[ptype + '_mass']
- return data["particle_weight"]*species_mass
+ return data["particle_weight"]*YTQuantity(species_mass, 'kg')
self.add_field((ptype, "particle_mass"), sampling_type="particle",
function=get_mass,
@@ -101,7 +102,7 @@
def get_charge(field, data):
species_charge = data.ds.index.parameters[ptype + '_charge']
- return data["particle_weight"]*species_charge
+ return data["particle_weight"]*YTQuantity(species_charge, 'C')
self.add_field((ptype, "particle_charge"), sampling_type="particle",
function=get_charge,
https://bitbucket.org/yt_analysis/yt/commits/ca55361b131f/
Changeset: ca55361b131f
User: atmyers
Date: 2017-07-05 20:14:40+00:00
Summary: Merge branch 'master' of github.com:yt-project/yt
Affected #: 42 files
diff -r e49ad643fc2f148b57540babd31571d2f6f450d2 -r ca55361b131f0526d595e37a4cc05f4b2079783e README.md
--- a/README.md
+++ b/README.md
@@ -5,6 +5,7 @@
[![Build Status](https://img.shields.io/travis/yt-project/yt.svg?branch=master)](https://travis-ci.org/yt-project/yt)
[![Latest Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](http://yt-project.org/docs/dev/)
[![Data Hub](https://img.shields.io/badge/data-hub-orange.svg)](https://hub.yt/)
+[![Powered by NumFOCUS](https://img.shields.io/badge/powered%20by-NumFOCUS-orange.svg?style=flat&colorA=E1523D&colorB=007D8A)](http://numfocus.org)
<a href="http://yt-project.org"><img src="doc/source/_static/yt_logo.png" width="300"></a>
diff -r e49ad643fc2f148b57540babd31571d2f6f450d2 -r ca55361b131f0526d595e37a4cc05f4b2079783e appveyor.yml
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -8,6 +8,7 @@
matrix:
- PYTHON_VERSION: "3.6"
+ - PYTHON_VERSION: "2.7"
platform:
-x64
@@ -27,7 +28,7 @@
- "python --version"
# Install specified version of numpy and dependencies
- - "conda install -q --yes -c conda-forge numpy scipy nose setuptools ipython Cython sympy fastcache h5py matplotlib flake8 "
+ - "conda install -q --yes -c conda-forge numpy scipy nose setuptools ipython Cython sympy fastcache h5py matplotlib flake8 mock"
- "pip install -e ."
# Not a .NET project
diff -r e49ad643fc2f148b57540babd31571d2f6f450d2 -r ca55361b131f0526d595e37a4cc05f4b2079783e doc/install_script.sh
--- a/doc/install_script.sh
+++ b/doc/install_script.sh
@@ -13,62 +13,23 @@
# If you do not have a working compiler environment, use the following
# configuration:
-INST_CONDA=1 # Should yt's dependencies be installed using miniconda?
INST_YT_SOURCE=0 # Should yt itself be installed from source?
-# If you want to install yt's dependencies using conda but want to build yt
-# itself from source, use the following configuration:
-
-# INST_CONDA=1
-# INST_YT_SOURCE=1
-
-# If you would like to build yt and all dependencies from source, then
-# use the following configuration by uncommenting the lines below.
-# NOTE: Building yt's dependencies from source will cause the install script
-# to require substantially more time to finish.
-
-# INST_CONDA=0
-# INST_YT_SOURCE=1
-
-BRANCH="master" # This is the branch we will install from for source installs
-
# What follows are some other options that you may or may not need to change.
-# Here's where you put the HDF5 path if you like; otherwise it'll download it
-# and install it on its own
-#HDF5_DIR=
-
-# If you've got yt some other place, set this to point to it. The script will
-# already check the current directory and the one above it in the tree.
+# If you've got a clone of the yt repository some other place, set this to
+# point to it. The script will already check the current directory and the one
+# above it in the tree.
YT_DIR=""
# These options can be set to customize the installation.
-INST_PY3=1 # Install Python 3 instead of Python 2. If this is turned
- # on, all Python packages (including yt) will be installed
- # in Python 3.
-INST_GIT=1 # Install git or not? If git is not already installed, yt
- # cannot be installed from source. Ignored if INST_CONDA=0
-INST_HG=0 # Install Mercurial or not? Ignored if INST_CONDA=0.
-INST_EMBREE=0 # Install dependencies needed for Embree-accelerated
- # ray tracing
-
-# These options control whether low-level system libraries are installed
-# they are necessary for building yt's dependencies from source and are
-# ignored when INST_CONDA=1
-
-INST_ZLIB=1 # On some systems (Kraken) matplotlib has issues with
- # the system zlib, which is compiled statically.
- # If need be, you can turn this off.
-INST_BZLIB=1 # On some systems, libbzip2 is missing. This can
- # lead to broken mercurial installations.
-INST_PNG=1 # Install a local libpng? Same things apply as with zlib.
-INST_FTYPE=1 # Install FreeType2 locally?
-INST_SQLITE3=1 # Install a local version of SQLite3?
-INST_0MQ=1 # Install 0mq (for IPython) and affiliated bindings?
-
-# These variables control whether optional dependencies are installed
-
+INST_PY3=1 # Install Python 3 instead of Python 2. If this is turned on,
+ # all Python packages (including yt) will be installed
+ # in Python 3.
+INST_GIT=1 # Install git or not? If git is not already installed, yt
+ # cannot be installed from source.
+INST_EMBREE=0 # Install dependencies needed for Embree-accelerated ray tracing
INST_PYX=0 # Install PyX? Sometimes PyX can be problematic without a
# working TeX installation.
INST_ROCKSTAR=0 # Install the Rockstar halo finder?
@@ -77,83 +38,47 @@
INST_ASTROPY=0 # Install astropy?
INST_NOSE=1 # Install nose?
INST_NETCDF4=1 # Install netcdf4 and its python bindings?
-
-# These options allow you to customize the builds of yt dependencies.
-# They are only used if INST_CONDA=0.
-
-# If you need to pass anything to the matplotlib build, do so here.
-MPL_SUPP_LDFLAGS=""
-MPL_SUPP_CFLAGS=""
-MPL_SUPP_CXXFLAGS=""
+INST_HG=0 # Install Mercurial or not?
-# If you need to supply arguments to the NumPy or SciPy build, supply them here
-# This one turns on gfortran manually:
-#NUMPY_ARGS="--fcompiler=gnu95"
-# If you absolutely can't get the fortran to work, try this:
-#NUMPY_ARGS="--fcompiler=fake"
+# This is the branch we will install from for INST_YT_SOURCE=1
+BRANCH="master"
-# If you want to spawn multiple Make jobs, here's the place to set the
-# arguments. For instance, "-j4"
-MAKE_PROCS=""
-
-# These variables control which miniconda version and yt recipe are used
-# when INST_CONDA=1.
+# These variables control which miniconda version is used
MINICONDA_URLBASE="http://repo.continuum.io/miniconda"
MINICONDA_VERSION="latest"
-if [ ${REINST_YT} ] && [ ${REINST_YT} -eq 1 ] && [ -n ${YT_DEST} ]
+if [ ! -z "${CONDA_DEFAULT_ENV}" ]
then
- DEST_DIR=${YT_DEST}
- INST_CONDA=0
+ echo "Aborting the yt installation because you appear to already"
+ echo "have a conda environment activated. Either deactivate it with:"
+ echo
+ echo " $ source deactivate"
+ echo
+ echo "or install yt into your current environment with:"
+ echo
+ echo " $ conda install -c conda-forge yt"
+ echo
+ exit 1
fi
-
-if [ $INST_CONDA -ne 0 ]
+DEST_SUFFIX="yt-conda"
+if [ -n "${PYTHONPATH}" ]
then
- if [ ! -z "${CONDA_DEFAULT_ENV}" ]
- then
- echo "Aborting the yt installation because you appear to already"
- echo "have a conda environment activated. Either deactivate it with:"
- echo
- echo " $ source deactivate"
- echo
- echo "or install yt into your current environment with:"
- echo
- echo " $ conda install -c conda-forge yt"
- echo
- exit 1
- fi
- DEST_SUFFIX="yt-conda"
- if [ -n "${PYTHONPATH}" ]
- then
- echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING"
- echo "*******************************************************"
- echo
- echo "The PYTHONPATH environment variable is set to:"
- echo
- echo " $PYTHONPATH"
- echo
- echo "If dependencies of yt (numpy, scipy, matplotlib) are installed"
- echo "to this path, this may cause issues. Exit the install script"
- echo "with Ctrl-C and unset PYTHONPATH if you are unsure."
- echo "Hit enter to continue."
- echo
- echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING"
- echo "*******************************************************"
- read -p "[hit enter]"
- fi
-else
- if [ $INST_YT_SOURCE -eq 0 ]
- then
- echo "yt must be compiled from source if INST_CONDA is set to 0"
- echo "Please set INST_YT_SOURCE to 1 and re-run."
- exit 1
- fi
- if [ $INST_GIT -eq 1 ]
- then
- INST_GIT=0
- fi
- DEST_SUFFIX="yt-`uname -m`"
+ echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING"
+ echo "*******************************************************"
+ echo
+ echo "The PYTHONPATH environment variable is set to:"
+ echo
+ echo " $PYTHONPATH"
+ echo
+ echo "If dependencies of yt (numpy, scipy, matplotlib) are installed"
+ echo "to this path, this may cause issues. Exit the install script"
+ echo "with Ctrl-C and unset PYTHONPATH if you are unsure."
+ echo "Hit enter to continue."
+ echo
+ echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING"
+ echo "*******************************************************"
+ read -p "[hit enter]"
fi
if [ -z "${DEST_DIR}" ]
@@ -204,31 +129,18 @@
function write_config
{
CONFIG_FILE=${DEST_DIR}/.yt_config
-
- echo INST_GIT=${INST_GIT} > ${CONFIG_FILE}
- echo INST_ZLIB=${INST_ZLIB} >> ${CONFIG_FILE}
- echo INST_BZLIB=${INST_BZLIB} >> ${CONFIG_FILE}
- echo INST_PNG=${INST_PNG} >> ${CONFIG_FILE}
- echo INST_FTYPE=${INST_FTYPE} >> ${CONFIG_FILE}
- echo INST_SQLITE3=${INST_SQLITE3} >> ${CONFIG_FILE}
+ echo INST_YT_SOURCE=${INST_YT_SOURCE} > ${CONFIG_FILE}
+ echo INST_GIT=${INST_GIT} >> ${CONFIG_FILE}
echo INST_PYX=${INST_PYX} >> ${CONFIG_FILE}
- echo INST_0MQ=${INST_0MQ} >> ${CONFIG_FILE}
echo INST_PY3=${INST_PY3} >> ${CONFIG_FILE}
echo INST_ROCKSTAR=${INST_ROCKSTAR} >> ${CONFIG_FILE}
echo INST_SCIPY=${INST_SCIPY} >> ${CONFIG_FILE}
+ echo INST_EMBREE=${INST_EMBREE} >> ${CONFIG_FILE}
+ echo INST_H5PY=${INST_H5PY} >> ${CONFIG_FILE}
+ echo INST_ASTROPY=${INST_ASTROPY} >> ${CONFIG_FILE}
+ echo INST_NOSE=${INST_NOSE} >> ${CONFIG_FILE}
+
echo YT_DIR=${YT_DIR} >> ${CONFIG_FILE}
- echo MPL_SUPP_LDFLAGS=${MPL_SUPP_LDFLAGS} >> ${CONFIG_FILE}
- echo MPL_SUPP_CFLAGS=${MPL_SUPP_CFLAGS} >> ${CONFIG_FILE}
- echo MPL_SUPP_CXXFLAGS=${MPL_SUPP_CXXFLAGS} >> ${CONFIG_FILE}
- echo MAKE_PROCS=${MAKE_PROCS} >> ${CONFIG_FILE}
- if [ ${HDF5_DIR} ]
- then
- echo ${HDF5_DIR} >> ${CONFIG_FILE}
- fi
- if [ ${NUMPY_ARGS} ]
- then
- echo ${NUMPY_ARGS} >> ${CONFIG_FILE}
- fi
}
function get_willwont
@@ -246,147 +158,22 @@
MYHOST=`hostname -s` # just give the short one, not FQDN
MYHOSTLONG=`hostname` # FQDN, for Ranger
MYOS=`uname -s` # A guess at the OS
- if [ "${MYHOST##kraken}" != "${MYHOST}" ]
- then
- echo "Looks like you're on Kraken."
- echo
- echo " ******************************************"
- echo " * It may be better to use the yt module! *"
- echo " * *"
- echo " * $ module load yt *"
- echo " * *"
- echo " ******************************************"
- echo
- echo "IF YOU CHOOSE TO PROCEED:"
- echo "YOU MUST BE IN THE GNU PROGRAMMING ENVIRONMENT"
- echo " $ module swap PrgEnv-pgi PrgEnv-gnu"
- echo
- return
- fi
- if [ "${MYHOST##nautilus}" != "${MYHOST}" ]
- then
- echo "Looks like you're on Nautilus."
- echo
- echo " ******************************************"
- echo " * It may be better to use the yt module! *"
- echo " * *"
- echo " * $ module load yt *"
- echo " * *"
- echo " ******************************************"
- echo
- echo "NOTE: YOU MUST BE IN THE GNU PROGRAMMING ENVIRONMENT"
- echo " $ module swap PE-intel PE-gnu"
- echo
- echo "Additionally, note that by default, yt will OVERWRITE"
- echo "any existing installations from Kraken! You might want"
- echo "to adjust the variable DEST_SUFFIX in the install script."
- echo
- return
- fi
- if [ "${MYHOST##verne}" != "${MYHOST}" ]
- then
- echo "Looks like you're on Verne."
- echo
- echo "NOTE: YOU MUST BE IN THE GNU PROGRAMMING ENVIRONMENT"
- echo "This command will take care of that for you:"
- echo
- echo " $ module swap PE-pgi PE-gnu"
- echo
- fi
- if [ "${MYHOST##steele}" != "${MYHOST}" ]
- then
- echo "Looks like you're on Steele."
- echo
- echo "NOTE: YOU MUST BE IN THE GNU PROGRAMMING ENVIRONMENT"
- echo "These commands should take care of that for you:"
- echo
- echo " $ module purge"
- echo " $ module load gcc"
- echo
- fi
- if [ "${MYHOST##midway}" != "${MYHOST}" ]
- then
- echo "Looks like you're on Midway."
- echo
- echo " ******************************************"
- echo " * It may be better to use the yt module! *"
- echo " * *"
- echo " * $ module load yt *"
- echo " * *"
- echo " ******************************************"
- echo
- return
- fi
if [ "${MYOS##Darwin}" != "${MYOS}" ]
then
- echo "Looks like you're running on Mac OSX."
+ echo "Looks like you're running on MacOS."
echo
echo "NOTE: you must have the Xcode command line tools installed."
echo
- echo "The instructions for obtaining these tools varies according"
- echo "to your exact OS version. On older versions of OS X, you"
- echo "must register for an account on the apple developer tools"
- echo "website: https://developer.apple.com/downloads to obtain the"
- echo "download link."
- echo
- echo "We have gathered some additional instructions for each"
- echo "version of OS X below. If you have trouble installing yt"
- echo "after following these instructions, don't hesitate to contact"
- echo "the yt user's e-mail list."
- echo
- echo "You can see which version of OSX you are running by clicking"
- echo "'About This Mac' in the apple menu on the left hand side of"
- echo "menu bar. We're assuming that you've installed all operating"
- echo "system updates; if you have an older version, we suggest"
- echo "running software update and installing all available updates."
- echo
- echo "OS X 10.5.8: search for and download Xcode 3.1.4 from the"
- echo "Apple developer tools website."
- echo
- echo "OS X 10.6.8: search for and download Xcode 3.2 from the Apple"
- echo "developer tools website. You can either download the"
- echo "Xcode 3.2.2 Developer Tools package (744 MB) and then use"
- echo "Software Update to update to XCode 3.2.6 or"
- echo "alternatively, you can download the Xcode 3.2.6/iOS SDK"
- echo "bundle (4.1 GB)."
- echo
- echo "OS X 10.7.5: download Xcode 4.2 from the mac app store"
- echo "(search for Xcode)."
- echo "Alternatively, download the Xcode command line tools from"
- echo "the Apple developer tools website."
- echo
- echo "OS X 10.8.4, 10.9, 10.10, and 10.11:"
- echo "download the appropriate version of Xcode from the"
- echo "mac app store (search for Xcode)."
+ echo "Download the appropriate version of Xcode from the"
+ echo "Mac App Store (search for Xcode)."
echo
echo "Additionally, you will have to manually install the Xcode"
echo "command line tools."
echo
- echo "For OS X 10.8, see:"
- echo "http://stackoverflow.com/questions/9353444"
- echo
- echo "For OS X 10.9 and newer the command line tools can be installed"
+ echo "For MacOS 10.10 and newer the command line tools can be installed"
echo "with the following command:"
echo " xcode-select --install"
echo
- if [ $INST_CONDA -eq 0 ]
- then
- echo "For OS X 10.11, you will additionally need to install the"
- echo "OpenSSL library using a package manager like homebrew or"
- echo "macports."
- echo
- echo "If your install fails with a message like"
- echo " ImportError: cannot import HTTPSHandler"
- echo "then you do not have the OpenSSL headers available in a"
- echo "location visible to your C compiler. Consider setting"
- echo "INST_CONDA=1 instead, as conda's python bundles OpenSSL."
- fi
- OSX_VERSION=`sw_vers -productVersion`
- if [ "${OSX_VERSION##10.8}" != "${OSX_VERSION}" ]
- then
- MPL_SUPP_CFLAGS="${MPL_SUPP_CFLAGS} -mmacosx-version-min=10.7"
- MPL_SUPP_CXXFLAGS="${MPL_SUPP_CXXFLAGS} -mmacosx-version-min=10.7"
- fi
fi
if [ -f /etc/redhat-release ]
then
@@ -462,31 +249,6 @@
echo " to avoid conflicts with other command-line programs "
echo " (like eog and evince, for example)."
fi
- if [ $INST_SCIPY -eq 1 ]
- then
- echo
- echo "Looks like you've requested that the install script build SciPy."
- echo
- echo "If the SciPy build fails, please uncomment one of the the lines"
- echo "at the top of the install script that sets NUMPY_ARGS, delete"
- echo "any broken installation tree, and re-run the install script"
- echo "verbatim."
- echo
- echo "If that doesn't work, don't hesitate to ask for help on the yt"
- echo "user's mailing list."
- echo
- fi
- if [ ! -z "${CFLAGS}" ]
- then
- echo "******************************************"
- echo "******************************************"
- echo "** **"
- echo "** Your CFLAGS is not empty. **"
- echo "** This can break h5py compilation. **"
- echo "** **"
- echo "******************************************"
- echo "******************************************"
- fi
}
function log_cmd
@@ -506,11 +268,6 @@
echo "Please set INST_YT_SOURCE to 1 and re-run the install script."
exit 1
fi
- if [ $INST_CONDA -eq 0 ]
- then
- echo "Embree support has not yet been implemented for INST_CONDA=0."
- exit 1
- fi
if [ `uname` = "Darwin" ]
then
EMBREE="embree-2.8.0.x86_64.macosx"
@@ -538,17 +295,6 @@
fi
fi
-if [ $INST_NETCDF4 -ne 0 ]
-then
- if [ $INST_CONDA -eq 0 ]
- then
- echo "This script can only install netcdf4 through conda."
- echo "Please set INST_CONDA to 1 to install netcdf4"
- echo "Setting INST_NETCDF4=0"
- INST_NETCDF4=0
- fi
-fi
-
echo
echo
echo "========================================================================"
@@ -562,10 +308,6 @@
echo "the script if you aren't such a fan."
echo
-printf "%-18s = %s so I " "INST_CONDA" "${INST_CONDA}"
-get_willwont ${INST_CONDA}
-echo "be installing a conda-based python environment"
-
printf "%-18s = %s so I " "INST_YT_SOURCE" "${INST_YT_SOURCE}"
get_willwont ${INST_YT_SOURCE}
echo "be compiling yt from source"
@@ -582,29 +324,6 @@
get_willwont ${INST_EMBREE}
echo "be installing Embree"
-if [ $INST_CONDA -eq 0 ]
-then
- printf "%-18s = %s so I " "INST_ZLIB" "${INST_ZLIB}"
- get_willwont ${INST_ZLIB}
- echo "be installing zlib"
-
- printf "%-18s = %s so I " "INST_BZLIB" "${INST_BZLIB}"
- get_willwont ${INST_BZLIB}
- echo "be installing bzlib"
-
- printf "%-18s = %s so I " "INST_PNG" "${INST_PNG}"
- get_willwont ${INST_PNG}
- echo "be installing libpng"
-
- printf "%-18s = %s so I " "INST_FTYPE" "${INST_FTYPE}"
- get_willwont ${INST_FTYPE}
- echo "be installing freetype2"
-
- printf "%-18s = %s so I " "INST_SQLITE3" "${INST_SQLITE3}"
- get_willwont ${INST_SQLITE3}
- echo "be installing SQLite3"
-fi
-
printf "%-18s = %s so I " "INST_PYX" "${INST_PYX}"
get_willwont ${INST_PYX}
echo "be installing PyX"
@@ -627,16 +346,6 @@
echo
-if [ $INST_CONDA -eq 0 ]
-then
- if [ -z "$HDF5_DIR" ]
- then
- echo "HDF5_DIR is not set, so I will be installing HDF5"
- else
- echo "HDF5_DIR=${HDF5_DIR} , so I will not be installing HDF5"
- fi
-fi
-
echo
echo "Installation will be to"
echo " ${DEST_DIR}"
@@ -654,21 +363,13 @@
host_specific
fi
-if [ $INST_CONDA -eq 0 ]
-then
- if [ ${USED_CONFIG} ]
- then
- echo "Settings were loaded from ${CONFIG_FILE}."
- echo "Remove this file if you wish to return to the default settings."
- echo
- fi
-fi
-echo "========================================================================"
echo
+
if [[ $1 != "--yes" ]]
then
read -p "[hit enter] "
fi
+
echo
echo "Awesome! Here we go."
echo
@@ -694,49 +395,6 @@
PYTHON_EXEC='python2.7'
fi
-function do_setup_py
-{
- [ -e $1/done ] && return
- LIB=$1
- shift
- if [ -z "$@" ]
- then
- echo "Installing $LIB"
- else
- echo "Installing $LIB (arguments: '$@')"
- fi
- [ ! -e $LIB/extracted ] && tar xfz $LIB.tar.gz
- touch $LIB/extracted
- BUILD_ARGS=""
- PYEXE=${PYTHON_EXEC}
- case $LIB in
- *h5py*)
- pushd $LIB &> /dev/null
- ( ${DEST_DIR}/bin/${PYTHON_EXEC} setup.py configure --hdf5=${HDF5_DIR} 2>&1 ) 1>> ${LOG_FILE} || do_exit
- popd &> /dev/null
- ;;
- *numpy*)
- if [ -e ${DEST_DIR}/lib/${PYTHON_EXEC}/site-packages/numpy/__init__.py ]
- then
- VER=$(${DEST_DIR}/bin/${PYTHON_EXEC} -c 'from distutils.version import StrictVersion as SV; \
- import numpy; print SV(numpy.__version__) < SV("1.8.0")')
- if [ $VER == "True" ]
- then
- echo "Removing previous NumPy instance (see issue #889)"
- rm -rf ${DEST_DIR}/lib/${PYTHON_EXEC}/site-packages/{numpy*,*.pth}
- fi
- fi
- ;;
- *)
- ;;
- esac
- cd $LIB
- ( ${DEST_DIR}/bin/${PYEXE} setup.py build ${BUILD_ARGS} $* 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( ${DEST_DIR}/bin/${PYEXE} setup.py install 2>&1 ) 1>> ${LOG_FILE} || do_exit
- touch done
- cd ..
-}
-
if type -P curl &>/dev/null
then
echo "Using curl"
@@ -746,40 +404,6 @@
export GETFILE="wget -nv"
fi
-if type -P sha512sum &> /dev/null
-then
- echo "Using sha512sum"
- export SHASUM="sha512sum"
-elif type -P shasum &> /dev/null
-then
- echo "Using shasum -a 512"
- export SHASUM="shasum -a 512"
-else
- echo
- echo "I am unable to locate any shasum-like utility."
- echo "ALL FILE INTEGRITY IS NOT VERIFIABLE."
- echo "THIS IS PROBABLY A BIG DEAL."
- echo
- echo "(I'll hang out for a minute for you to consider this.)"
- sleep 60
-fi
-
-function get_ytproject
-{
- [ -e $1 ] && return
- echo "Downloading $1 from yt-project.org"
- ${GETFILE} "http://yt-project.org/dependencies/$1" || do_exit
- ( ${SHASUM} -c $1.sha512 2>&1 ) 1>> ${LOG_FILE} || do_exit
-}
-
-function get_ytdata
-{
- echo "Downloading $1 from yt-project.org"
- [ -e $1 ] && return
- ${GETFILE} "http://yt-project.org/data/$1" || do_exit
- ( ${SHASUM} -c $1.sha512 2>&1 ) 1>> ${LOG_FILE} || do_exit
-}
-
function test_install
{
echo "Testing that yt can be imported"
@@ -788,298 +412,206 @@
ORIG_PWD=`pwd`
-if [ -z "${DEST_DIR}" ]
+MYARCH=`uname -m`
+MYOS=`uname -s`
+
+if [ $MYOS = "Darwin" ]
+then
+ MINICONDA_OS="MacOSX"
+ MINICONDA_ARCH="x86_64"
+elif [ $MYOS = "Linux" ]
then
- echo "Edit this script, set the DEST_DIR parameter and re-run."
+ MINICONDA_OS="Linux"
+ if [ $MYARCH = "i386" ]
+ then
+ MINICONDA_ARCH="x86"
+ elif [ $MYARCH = "i686" ]
+ then
+ MINICONDA_ARCH="x86"
+ elif [ $MYARCH = "x86_64" ]
+ then
+ MINICONDA_ARCH="x86_64"
+ else
+ echo "Not sure which architecture you are running."
+ echo "Going with x86_64 architecture."
+ MINICONDA_OS="Linux-x86_64"
+ fi
+else
+ echo "The yt install script is not supported on the ${MYOS}"
+ echo "operating system."
exit 1
fi
-# Set paths to what they should be when yt is activated.
-if [ $INST_CONDA -eq 0 ]
+if [ $INST_PY3 -eq 1 ]
then
- export PATH=${DEST_DIR}/bin:$PATH
- export LD_LIBRARY_PATH=${DEST_DIR}/lib:$LD_LIBRARY_PATH
- export PYTHONPATH=${DEST_DIR}/lib/${PYTHON_EXEC}/site-packages
+ PY_VERSION='3'
+else
+ PY_VERSION='2'
+fi
+
+MINICONDA_PKG="Miniconda${PY_VERSION}-${MINICONDA_VERSION}-${MINICONDA_OS}-${MINICONDA_ARCH}.sh"
- # Write config settings to file.
- CONFIG_FILE=${DEST_DIR}/.yt_config
- mkdir -p ${DEST_DIR}
- if [ -z ${REINST_YT} ] || [ ${REINST_YT} -neq 1 ]
- then
- write_config
- elif [ ${REINST_YT} ] && [ ${REINST_YT} -eq 1 ] && [ -f ${CONFIG_FILE} ]
- then
- USED_CONFIG=1
- source ${CONFIG_FILE}
- fi
-
- # Get supplemental data.
+echo
+echo "Downloading ${MINICONDA_URLBASE}/${MINICONDA_PKG}"
+echo
- mkdir -p ${DEST_DIR}/data
- cd ${DEST_DIR}/data
- echo 'de6d8c6ea849f0206d219303329a0276b3cce7c051eec34377d42aacbe0a4f47ac5145eb08966a338ecddd2b83c8f787ca9956508ad5c39ee2088ad875166410 cloudy_emissivity.h5' > cloudy_emissivity.h5.sha512
- [ ! -e cloudy_emissivity.h5 ] && get_ytdata cloudy_emissivity.h5
- echo '0f714ae2eace0141b1381abf1160dc8f8a521335e886f99919caf3beb31df1fe271d67c7b2a804b1467949eb16b0ef87a3d53abad0e8160fccac1e90d8d9e85f apec_emissivity.h5' > apec_emissivity.h5.sha512
- [ ! -e apec_emissivity.h5 ] && get_ytdata apec_emissivity.h5
-
- mkdir -p ${DEST_DIR}/src
- cd ${DEST_DIR}/src
+if [ -f ${MINICONDA_PKG} ]
+then
+ rm $MINICONDA_PKG
+fi
- PYTHON2='Python-2.7.11'
- PYTHON3='Python-3.5.1'
- CYTHON='Cython-0.23.5'
- if [ $INST_PY3 -eq 0 ]
- then
- PYX='PyX-0.12.1'
- else
- PYX='PyX-0.14.1'
- fi
- BZLIB='bzip2-1.0.6'
- FREETYPE_VER='freetype-2.4.12'
- H5PY='h5py-2.5.0'
- HDF5='hdf5-1.8.14'
- LAPACK='lapack-3.4.2'
- PNG='libpng-1.6.3'
- MATPLOTLIB='matplotlib-1.5.1'
- NOSE='nose-1.3.7'
- NUMPY='numpy-1.11.0'
- GITPYTHON='GitPython-2.1.3'
- ROCKSTAR='rockstar-0.99.6'
- SCIPY='scipy-0.17.0'
- SQLITE='sqlite-autoconf-3071700'
- SYMPY='sympy-1.0'
- ZLIB='zlib-1.2.8'
- SETUPTOOLS='setuptools-20.6.7'
- ASTROPY='astropy-1.1.2'
-
- # Now we dump all our SHA512 files out.
- echo '9052d74bbd0c93757fd916939cc3c39eb1aba6c9692b48887ae577256bec64b39b1fd25b6c751e6c8fe723de4c0ddf9a1a207de39f75b0839500dfcdde69f925 Cython-0.23.5.tar.gz' > Cython-0.23.5.tar.gz.sha512
- if [ $INST_PY3 -eq 0 ]
- then
- echo '4941f5aa21aff3743546495fb073c10d2657ff42b2aff401903498638093d0e31e344cce778980f28a7170c6d29eab72ac074277b9d4088376e8692dc71e55c1 PyX-0.12.1.tar.gz' > PyX-0.12.1.tar.gz.sha512
- else
- echo '16265bbdcaf28ce194189a2987b32952f296c850b829454bcccce0abd23838bfca0276c3e9c8e96b8cbfaf1473bf14669f9b7f2032ee039b61ae59ea3aa45a20 PyX-0.14.1.tar.gz' > PyX-0.14.1.tar.gz.sha512
- fi
- echo 'f21df53da87e9e3c14599a34388976e7dd09b951dff3c4b978fe224beeff07e749c0059ffd94f68ca9b75ecaef142b285d579b8dfaad4eab85aca33957114937 Python-2.7.11.tgz' > Python-2.7.11.tgz.sha512
- echo '73f1477f3d3f5bd978c4ea1d1b679467b45e9fd2f443287b88c5c107a9ced580c56e0e8f33acea84e06b11a252e2a4e733120b721a9b6e1bb3d34493a3353bfb Python-3.5.1.tgz' > Python-3.5.1.tgz.sha512
- echo 'b83c4a1415a3eb8c016507705d0d2f22971e4da937bb97953eec08f8f856933d8fa76ce8c536122235b19e7879b16add2e20fd2fee3e488f9b2b4bf1b9f4dbdb astropy-1.1.2.tar.gz' > astropy-1.1.2.tar.gz.sha512
- echo '276bd9c061ec9a27d478b33078a86f93164ee2da72210e12e2c9da71dcffeb64767e4460b93f257302b09328eda8655e93c4b9ae85e74472869afbeae35ca71e blas.tar.gz' > blas.tar.gz.sha512
- echo '00ace5438cfa0c577e5f578d8a808613187eff5217c35164ffe044fbafdfec9e98f4192c02a7d67e01e5a5ccced630583ad1003c37697219b0f147343a3fdd12 bzip2-1.0.6.tar.gz' > bzip2-1.0.6.tar.gz.sha512
- echo '609a68a3675087e0cc95268574f31e104549daa48efe15a25a33b8e269a93b4bd160f4c3e8178dca9c950ef5ca514b039d6fd1b45db6af57f25342464d0429ce freetype-2.4.12.tar.gz' > freetype-2.4.12.tar.gz.sha512
- echo '4a83f9ae1855a7fad90133b327d426201c8ccfd2e7fbe9f39b2d61a2eee2f3ebe2ea02cf80f3d4e1ad659f8e790c173df8cc99b87d0b7ce63d34aa88cfdc7939 h5py-2.5.0.tar.gz' > h5py-2.5.0.tar.gz.sha512
- echo '4073fba510ccadaba41db0939f909613c9cb52ba8fb6c1062fc9118edc601394c75e102310be1af4077d07c9b327e6bbb1a6359939a7268dc140382d0c1e0199 hdf5-1.8.14.tar.gz' > hdf5-1.8.14.tar.gz.sha512
- echo '8770214491e31f0a7a3efaade90eee7b0eb20a8a6ab635c5f854d78263f59a1849133c14ef5123d01023f0110cbb9fc6f818da053c01277914ae81473430a952 lapack-3.4.2.tar.gz' > lapack-3.4.2.tar.gz.sha512
- echo '887582e5a22e4cde338aa8fec7a89f6dd31f2f02b8842735f00f970f64582333fa03401cea6d01704083403c7e8b7ebc26655468ce930165673b33efa4bcd586 libpng-1.6.3.tar.gz' > libpng-1.6.3.tar.gz.sha512
- echo 'a0e78b5027a3a49cf8e77dc0d26f5f380dcd80f7b309b6121199acd5e1d94f48482864a9eee3bd397f7ac6f07fe1d3c21bf517217df3c72e8e3d105b7c2ae58e matplotlib-1.5.1.tar.gz' > matplotlib-1.5.1.tar.gz.sha512
- echo 'e65c914f621f8da06b9ab11a0ff2763d6e29b82ce2aaed56da0e3773dc899d9deb1f20015789d44c65a5dad7214520f5b659b3f8d7695fb207ad3f78e5cf1b62 nose-1.3.7.tar.gz' > nose-1.3.7.tar.gz.sha512
- echo '92c1889397ad013e25da3a0657fc01e787d528fc19c29cc2acd286c3f07d41b984252583457b1b9259fc303afbe9694565cdcf5752eb4ecb950cc7a99ec1ad8b numpy-1.11.0.tar.gz' > numpy-1.11.0.tar.gz.sha512
- echo '918ff1765a85a818619165c2bcbb0d417f35c979c2f42f1bb7e41636696c0cb4d6837725f3655fbdfebea966476d1255ee18adabe9ed5536455b63336a1f399d GitPython-2.1.3.tar.gz' > GitPython-2.1.3.tar.gz.sha512
- echo 'de6409d75a3ff3cf1e5391d3b09126f0bc7e1a40a15f9bee244195638fe2f8481fca032896d8534623e6122ff59aaf669664e27ff89cf1b094a5ce7312f220b7 scipy-0.17.0.tar.gz' > scipy-0.17.0.tar.gz.sha512
- echo '96f3e51b46741450bc6b63779c10ebb4a7066860fe544385d64d1eda52592e376a589ef282ace2e1df73df61c10eab1a0d793abbdaf770e60289494d4bf3bcb4 sqlite-autoconf-3071700.tar.gz' > sqlite-autoconf-3071700.tar.gz.sha512
- echo '977db6e9bc6a5918cceb255981a57e85e7060c0922aefd2968b004d25d704e25a5cb5bbe09eb387e8695581e23e2825d9c40310068fe25ece7e9c23037a21f39 sympy-1.0.tar.gz' > sympy-1.0.tar.gz.sha512
- echo 'ece209d4c7ec0cb58ede791444dc754e0d10811cbbdebe3df61c0fd9f9f9867c1c3ccd5f1827f847c005e24eef34fb5bf87b5d3f894d75da04f1797538290e4a zlib-1.2.8.tar.gz' > zlib-1.2.8.tar.gz.sha512
- echo '91a212b5007f9fdfacb4341e06dc0355c5c29897eb8ea407dd4864091f845ba1417bb0d33b5ed6897869d0233e2d0ec6548898d3dbe9eda23f751829bd51a104 setuptools-20.6.7.tar.gz' > setuptools-20.6.7.tar.gz.sha512
- # Individual processes
- [ -z "$HDF5_DIR" ] && get_ytproject $HDF5.tar.gz
- [ $INST_ZLIB -eq 1 ] && get_ytproject $ZLIB.tar.gz
- [ $INST_BZLIB -eq 1 ] && get_ytproject $BZLIB.tar.gz
- [ $INST_PNG -eq 1 ] && get_ytproject $PNG.tar.gz
- [ $INST_FTYPE -eq 1 ] && get_ytproject $FREETYPE_VER.tar.gz
- [ $INST_SQLITE3 -eq 1 ] && get_ytproject $SQLITE.tar.gz
- [ $INST_PYX -eq 1 ] && get_ytproject $PYX.tar.gz
- [ $INST_SCIPY -eq 1 ] && get_ytproject $SCIPY.tar.gz
- [ $INST_SCIPY -eq 1 ] && get_ytproject blas.tar.gz
- [ $INST_SCIPY -eq 1 ] && get_ytproject $LAPACK.tar.gz
- if [ $INST_PY3 -eq 1 ]
- then
- get_ytproject $PYTHON3.tgz
- else
- get_ytproject $PYTHON2.tgz
- fi
- [ $INST_H5PY -eq 1 ] && get_ytproject $H5PY.tar.gz
- [ $INST_NOSE -eq 1 ] && get_ytproject $NOSE.tar.gz
- [ $INST_ASTROPY -eq 1 ] && get_ytproject $ASTROPY.tar.gz
- get_ytproject $NUMPY.tar.gz
- get_ytproject $MATPLOTLIB.tar.gz
- get_ytproject $CYTHON.tar.gz
- get_ytproject $GITPYTHON.tar.gz
- get_ytproject $SYMPY.tar.gz
- get_ytproject $SETUPTOOLS.tar.gz
+echo "Installing the Miniconda python environment."
+
+if [ -e ${DEST_DIR} ]
+then
+ rm -rf $DEST_DIR/*
+else
+ mkdir $DEST_DIR
+fi
- if [ $INST_BZLIB -eq 1 ]
- then
- if [ ! -e $BZLIB/done ]
- then
- [ ! -e $BZLIB ] && tar xfz $BZLIB.tar.gz
- echo "Installing BZLIB"
- cd $BZLIB
- if [ `uname` = "Darwin" ]
- then
- if [ -z "${CC}" ]
- then
- sed -i.bak 's/soname/install_name/' Makefile-libbz2_so
- else
- sed -i.bak -e 's/soname/install_name/' -e "s|CC=gcc|CC=${CC}|" Makefile-libbz2_so
- fi
- fi
- ( make install CFLAGS=-fPIC LDFLAGS=-fPIC PREFIX=${DEST_DIR} 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make -f Makefile-libbz2_so CFLAGS=-fPIC LDFLAGS=-fPIC PREFIX=${DEST_DIR} 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( cp -v libbz2.so.1.0.6 ${DEST_DIR}/lib 2>&1 ) 1>> ${LOG_FILE} || do_exit
- touch done
- cd ..
- fi
- BZLIB_DIR=${DEST_DIR}
- export LDFLAGS="${LDFLAGS} -L${BZLIB_DIR}/lib/ -L${BZLIB_DIR}/lib64/"
- LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${BZLIB_DIR}/lib/"
- fi
+log_cmd ${GETFILE} ${MINICONDA_URLBASE}/${MINICONDA_PKG} || do_exit
+
+log_cmd bash ./${MINICONDA_PKG} -b -p $DEST_DIR -f
+
+# Need to set PATH so we use miniconda's python environment
+export PATH=${DEST_DIR}/bin:$PATH
+
+echo "Installing the necessary packages for yt."
+echo "This may take a while, but don't worry. yt loves you."
- if [ $INST_ZLIB -eq 1 ]
- then
- if [ ! -e $ZLIB/done ]
- then
- [ ! -e $ZLIB ] && tar xfz $ZLIB.tar.gz
- echo "Installing ZLIB"
- cd $ZLIB
- ( ./configure --shared --prefix=${DEST_DIR}/ 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make install 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make clean 2>&1 ) 1>> ${LOG_FILE} || do_exit
- touch done
- cd ..
- fi
- ZLIB_DIR=${DEST_DIR}
- export LDFLAGS="${LDFLAGS} -L${ZLIB_DIR}/lib/ -L${ZLIB_DIR}/lib64/"
- LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${ZLIB_DIR}/lib/"
- fi
-
- if [ $INST_PNG -eq 1 ]
- then
- if [ ! -e $PNG/done ]
- then
- [ ! -e $PNG ] && tar xfz $PNG.tar.gz
- echo "Installing PNG"
- cd $PNG
- ( ./configure CPPFLAGS=-I${DEST_DIR}/include CFLAGS=-I${DEST_DIR}/include --prefix=${DEST_DIR}/ 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make install 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make clean 2>&1) 1>> ${LOG_FILE} || do_exit
- touch done
- cd ..
- fi
- PNG_DIR=${DEST_DIR}
- export LDFLAGS="${LDFLAGS} -L${PNG_DIR}/lib/ -L${PNG_DIR}/lib64/"
- LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${PNG_DIR}/lib/"
- fi
-
- if [ $INST_FTYPE -eq 1 ]
- then
- if [ ! -e $FREETYPE_VER/done ]
- then
- [ ! -e $FREETYPE_VER ] && tar xfz $FREETYPE_VER.tar.gz
- echo "Installing FreeType2"
- cd $FREETYPE_VER
- ( ./configure CFLAGS=-I${DEST_DIR}/include --prefix=${DEST_DIR}/ 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make install 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make clean 2>&1) 1>> ${LOG_FILE} || do_exit
- touch done
- cd ..
- fi
- FTYPE_DIR=${DEST_DIR}
- export LDFLAGS="${LDFLAGS} -L${FTYPE_DIR}/lib/ -L${FTYPE_DIR}/lib64/"
- LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${FTYPE_DIR}/lib/"
- fi
+declare -a YT_DEPS
+YT_DEPS+=('python')
+YT_DEPS+=('setuptools')
+YT_DEPS+=('numpy')
+YT_DEPS+=('jupyter')
+YT_DEPS+=('ipython')
+YT_DEPS+=('sphinx')
+if [ ${INST_GIT} -eq 1 ]
+then
+ YT_DEPS+=('git')
+ YT_DEPS+=('gitpython')
+fi
+if [ $INST_H5PY -ne 0 ]
+then
+ YT_DEPS+=('h5py')
+fi
+YT_DEPS+=('matplotlib')
+YT_DEPS+=('cython')
+if [ $INST_NOSE -ne 0 ]
+then
+ YT_DEPS+=('nose')
+fi
+if [ $INST_SCIPY -ne 0 ]
+then
+ YT_DEPS+=('scipy')
+fi
+if [ $INST_ASTROPY -ne 0 ]
+then
+ YT_DEPS+=('astropy')
+fi
+YT_DEPS+=('conda-build')
+if [ $INST_PY3 -eq 0 ] && [ $INST_HG -eq 1 ]
+then
+ YT_DEPS+=('mercurial')
+fi
+YT_DEPS+=('sympy')
- if [ -z "$HDF5_DIR" ]
- then
- if [ ! -e $HDF5/done ]
- then
- [ ! -e $HDF5 ] && tar xfz $HDF5.tar.gz
- echo "Installing HDF5"
- cd $HDF5
- ( ./configure --prefix=${DEST_DIR}/ --enable-shared 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make ${MAKE_PROCS} install 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make clean 2>&1) 1>> ${LOG_FILE} || do_exit
- touch done
- cd ..
- fi
- export HDF5_DIR=${DEST_DIR}
- else
- export HDF5_DIR=${HDF5_DIR}
- fi
- export HDF5_API=16
-
- if [ $INST_SQLITE3 -eq 1 ]
- then
- if [ ! -e $SQLITE/done ]
- then
- [ ! -e $SQLITE ] && tar xfz $SQLITE.tar.gz
- echo "Installing SQLite3"
- cd $SQLITE
- ( ./configure --prefix=${DEST_DIR}/ 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make ${MAKE_PROCS} install 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make clean 2>&1) 1>> ${LOG_FILE} || do_exit
- touch done
- cd ..
- fi
- fi
+if [ $INST_NETCDF4 -eq 1 ]
+then
+ YT_DEPS+=('netcdf4')
+fi
- if [ $INST_PY3 -eq 1 ]
- then
- if [ ! -e $PYTHON3/done ]
- then
- echo "Installing Python 3"
- [ ! -e $PYTHON3 ] && tar xfz $PYTHON3.tgz
- cd $PYTHON3
- ( ./configure --prefix=${DEST_DIR}/ ${PYCONF_ARGS} 2>&1 ) 1>> ${LOG_FILE} || do_exit
-
- ( make ${MAKE_PROCS} 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make install 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( ln -sf ${DEST_DIR}/bin/python3.5 ${DEST_DIR}/bin/pyyt 2>&1 ) 1>> ${LOG_FILE}
- ( ln -sf ${DEST_DIR}/bin/python3.5 ${DEST_DIR}/bin/python 2>&1 ) 1>> ${LOG_FILE}
- ( ln -sf ${DEST_DIR}/bin/python3-config ${DEST_DIR}/bin/python-config 2>&1 ) 1>> ${LOG_FILE}
- ( make clean 2>&1) 1>> ${LOG_FILE} || do_exit
- touch done
- cd ..
- fi
- else
- if [ ! -e $PYTHON2/done ]
- then
- echo "Installing Python 2. This may take a while, but don't worry. yt loves you."
- [ ! -e $PYTHON2 ] && tar xfz $PYTHON2.tgz
- cd $PYTHON2
- ( ./configure --prefix=${DEST_DIR}/ ${PYCONF_ARGS} 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make ${MAKE_PROCS} 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( make install 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( ln -sf ${DEST_DIR}/bin/python2.7 ${DEST_DIR}/bin/pyyt 2>&1 ) 1>> ${LOG_FILE}
- ( make clean 2>&1) 1>> ${LOG_FILE} || do_exit
- touch done
- cd ..
- fi
- fi
+log_cmd ${DEST_DIR}/bin/conda update --yes conda
- ( ${DEST_DIR}/bin/python -c "import _ssl" 2>&1 ) 1>> ${LOG_FILE}
- RESULT=$?
- if [ $RESULT -ne 0 ]
- then
- echo "Unable to import the python SSL bindings."
- echo "This means that OpenSSL is not installed or your system's OpenSSL"
- echo "installation is out of date."
- echo "Please install OpenSSL or set INST_CONDA=1"
- do_exit
- fi
-
- export PYTHONPATH=${DEST_DIR}/lib/${PYTHON_EXEC}/site-packages/
-
- # Install setuptools
- do_setup_py $SETUPTOOLS
-
+if [ $INST_GIT -eq 1 ]
+then
+ GIT_EXE=${DEST_DIR}/bin/git
+else
if type -P git &>/dev/null
then
GIT_EXE="git"
else
- echo "Cannot find git. Please install git."
- do_exit
+ if [ $INST_YT_SOURCE -eq 1 ]
+ then
+ echo "Cannot find git. Please install git or set INST_GIT=1."
+ do_exit
+ fi
+ fi
+fi
+
+log_cmd echo "DEPENDENCIES" ${YT_DEPS[@]}
+for YT_DEP in "${YT_DEPS[@]}"; do
+ echo "Installing $YT_DEP"
+ log_cmd ${DEST_DIR}/bin/conda install -c conda-forge --yes ${YT_DEP}
+done
+
+if [ $INST_PY3 -eq 1 ] && [ $INST_HG -eq 1 ]
+then
+ echo "Installing mercurial"
+ log_cmd ${DEST_DIR}/bin/conda create -y -n py27 python=2.7 mercurial
+ log_cmd ln -s ${DEST_DIR}/envs/py27/bin/hg ${DEST_DIR}/bin
+fi
+
+if [ $INST_YT_SOURCE -eq 1 ]
+then
+ log_cmd ${GIT_EXE} clone https://github.com/yt-project/yt_conda ${DEST_DIR}/src/yt_conda
+fi
+
+if [ $INST_EMBREE -eq 1 ]
+then
+ echo "Installing Embree"
+ if [ ! -d ${DEST_DIR}/src ]
+ then
+ mkdir ${DEST_DIR}/src
fi
+ cd ${DEST_DIR}/src
+ ( ${GETFILE} "$EMBREE_URL" 2>&1 ) 1>> ${LOG_FILE} || do_exit
+ log_cmd tar xfz ${EMBREE}.tar.gz
+ log_cmd mv ${DEST_DIR}/src/${EMBREE}/include/embree2 ${DEST_DIR}/include
+ log_cmd mv ${DEST_DIR}/src/${EMBREE}/lib/lib*.* ${DEST_DIR}/lib
+ if [ `uname` = "Darwin" ]
+ then
+ ln -s ${DEST_DIR}/lib/libembree.2.dylib ${DEST_DIR}/lib/libembree.dylib
+ install_name_tool -id ${DEST_DIR}/lib/libembree.2.dylib ${DEST_DIR}/lib/libembree.2.dylib
+ else
+ ln -s ${DEST_DIR}/lib/libembree.so.2 ${DEST_DIR}/lib/libembree.so
+ fi
+
+ echo "Installing pyembree from source"
+ ( ${GETFILE} "$PYEMBREE_URL" 2>&1 ) 1>> ${LOG_FILE} || do_exit
+ log_cmd unzip ${DEST_DIR}/src/master.zip
+ pushd ${DEST_DIR}/src/pyembree-master &> /dev/null
+ log_cmd ${DEST_DIR}/bin/${PYTHON_EXEC} setup.py install build_ext -I${DEST_DIR}/include -L${DEST_DIR}/lib
+ popd &> /dev/null
+fi
+if [ $INST_ROCKSTAR -eq 1 ]
+then
+ echo "Building Rockstar"
+ ( ${GIT_EXE} clone https://github.com/yt-project/rockstar ${DEST_DIR}/src/rockstar/ 2>&1 ) 1>> ${LOG_FILE}
+ ROCKSTAR_PACKAGE=$(${DEST_DIR}/bin/conda build ${DEST_DIR}/src/yt_conda/rockstar --output)
+ log_cmd ${DEST_DIR}/bin/conda build ${DEST_DIR}/src/yt_conda/rockstar
+ log_cmd ${DEST_DIR}/bin/conda install $ROCKSTAR_PACKAGE
+ ROCKSTAR_DIR=${DEST_DIR}/src/rockstar
+fi
+
+# conda doesn't package pyx, so we install manually with pip
+if [ $INST_PYX -eq 1 ]
+then
+ if [ $INST_PY3 -eq 1 ]
+ then
+ log_cmd ${DEST_DIR}/bin/pip install pyx
+ else
+ log_cmd ${DEST_DIR}/bin/pip install pyx==0.12.1
+ fi
+fi
+
+if [ $INST_YT_SOURCE -eq 0 ]
+then
+ echo "Installing yt"
+ log_cmd ${DEST_DIR}/bin/conda install -c conda-forge --yes yt
+else
+ echo "Building yt from source"
if [ -z "$YT_DIR" ]
then
if [ -e $ORIG_PWD/yt/mods.py ]
@@ -1088,512 +620,86 @@
elif [ -e $ORIG_PWD/../yt/mods.py ]
then
YT_DIR=$(dirname $ORIG_PWD)
- elif [ ! -e yt-git ]
- then
- echo "Cloning yt"
- YT_DIR="$PWD/yt-git/"
- ( ${GIT_EXE} clone https://github.com/yt-project/yt/ ${YT_DIR} 2>&1 ) 1>> ${LOG_FILE}
- elif [ -e yt-git ]
- then
- YT_DIR="$PWD/yt-git/"
+ else
+ YT_DIR="${DEST_DIR}/src/yt-git"
+ log_cmd ${GIT_EXE} clone https://github.com/yt-project/yt ${YT_DIR}
+ log_cmd ${GIT_EXE} -C ${YT_DIR} checkout ${BRANCH}
fi
echo Setting YT_DIR=${YT_DIR}
- fi
-
- # This fixes problems with gfortran linking.
- unset LDFLAGS
-
- echo "Installing pip"
- ( ${GETFILE} https://bootstrap.pypa.io/get-pip.py 2>&1 ) 1>> ${LOG_FILE} || do_exit
- ( ${DEST_DIR}/bin/${PYTHON_EXEC} get-pip.py 2>&1 ) 1>> ${LOG_FILE} || do_exit
-
- if [ $INST_SCIPY -eq 0 ]
- then
- do_setup_py $NUMPY ${NUMPY_ARGS}
else
- if [ ! -e $SCIPY/done ]
- then
- if [ ! -e BLAS/done ]
- then
- tar xfz blas.tar.gz
- echo "Building BLAS"
- cd BLAS
- gfortran -O2 -fPIC -fno-second-underscore -c *.f
- ( ar r libfblas.a *.o 2>&1 ) 1>> ${LOG_FILE}
- ( ranlib libfblas.a 2>&1 ) 1>> ${LOG_FILE}
- rm -rf *.o
- touch done
- cd ..
- fi
- if [ ! -e $LAPACK/done ]
- then
- tar xfz $LAPACK.tar.gz
- echo "Building LAPACK"
- cd $LAPACK/
- cp INSTALL/make.inc.gfortran make.inc
- ( make lapacklib OPTS="-fPIC -O2" NOOPT="-fPIC -O0" CFLAGS=-fPIC LDFLAGS=-fPIC 2>&1 ) 1>> ${LOG_FILE} || do_exit
- touch done
- cd ..
- fi
- fi
- export BLAS=$PWD/BLAS/libfblas.a
- export LAPACK=$PWD/$LAPACK/liblapack.a
- do_setup_py $NUMPY ${NUMPY_ARGS}
- do_setup_py $SCIPY ${NUMPY_ARGS}
- fi
-
- if [ -n "${MPL_SUPP_LDFLAGS}" ]
- then
- OLD_LDFLAGS=${LDFLAGS}
- export LDFLAGS="${MPL_SUPP_LDFLAGS}"
- echo "Setting LDFLAGS ${LDFLAGS}"
- fi
- if [ -n "${MPL_SUPP_CXXFLAGS}" ]
- then
- OLD_CXXFLAGS=${CXXFLAGS}
- export CXXFLAGS="${MPL_SUPP_CXXFLAGS}"
- echo "Setting CXXFLAGS ${CXXFLAGS}"
- fi
- if [ -n "${MPL_SUPP_CFLAGS}" ]
- then
- OLD_CFLAGS=${CFLAGS}
- export CFLAGS="${MPL_SUPP_CFLAGS}"
- echo "Setting CFLAGS ${CFLAGS}"
- fi
- # Now we set up the basedir for matplotlib:
- mkdir -p ${DEST_DIR}/src/$MATPLOTLIB
- echo "[directories]" >> ${DEST_DIR}/src/$MATPLOTLIB/setup.cfg
- echo "basedirlist = ${DEST_DIR}" >> ${DEST_DIR}/src/$MATPLOTLIB/setup.cfg
- if [ `uname` = "Darwin" ]
- then
- echo "[gui_support]" >> ${DEST_DIR}/src/$MATPLOTLIB/setup.cfg
- echo "macosx = False" >> ${DEST_DIR}/src/$MATPLOTLIB/setup.cfg
- fi
-
- _user_DISPLAY=$DISPLAY
- unset DISPLAY # see (yt-user link missing: "Installation failure" 01/29/15)
- do_setup_py $MATPLOTLIB
- export DISPLAY=${_user_DISPLAY}
- if [ -n "${OLD_LDFLAGS}" ]
- then
- export LDFLAG=${OLD_LDFLAGS}
- fi
- [ -n "${OLD_LDFLAGS}" ] && export LDFLAGS=${OLD_LDFLAGS}
- [ -n "${OLD_CXXFLAGS}" ] && export CXXFLAGS=${OLD_CXXFLAGS}
- [ -n "${OLD_CFLAGS}" ] && export CFLAGS=${OLD_CFLAGS}
-
- echo "Installing Jupyter"
- ( ${DEST_DIR}/bin/pip install "jupyter<2.0.0" 2>&1 ) 1>> ${LOG_FILE}
-
- do_setup_py $CYTHON
- if [ $INST_H5PY -eq 1 ]
- then
- do_setup_py $H5PY
- fi
- if [ $INST_NOSE -eq 1 ]
- then
- do_setup_py $NOSE
- fi
- if [ $INST_ASTROPY -eq 1 ]
- then
- do_setup_py $ASTROPY
- fi
- do_setup_py $GITPYTHON
- do_setup_py $SYMPY
- [ $INST_PYX -eq 1 ] && do_setup_py $PYX
-
- ( ${DEST_DIR}/bin/pip install jinja2 2>&1 ) 1>> ${LOG_FILE}
-
- # Now we build Rockstar and set its environment variable.
- if [ $INST_ROCKSTAR -eq 1 ]
- then
- if [ ! -e rockstar/done ]
- then
- echo "Building Rockstar"
- if [ ! -e rockstar ]
- then
- ( ${GIT_EXE} clone https://github.com/yt-project/rockstar 2>&1 ) 1>> ${LOG_FILE}
- fi
- cd rockstar
- ( make lib 2>&1 ) 1>> ${LOG_FILE} || do_exit
- cp librockstar.so ${DEST_DIR}/lib
- ROCKSTAR_DIR=${DEST_DIR}/src/rockstar
- echo $ROCKSTAR_DIR > ${YT_DIR}/rockstar.cfg
- touch done
- cd ..
- fi
- fi
-
- MY_PWD=`pwd`
- cd $YT_DIR
- ( ${GIT_EXE} pull 2>1 && ${GIT_EXE} checkout ${BRANCH} 2>&1 ) 1>> ${LOG_FILE}
-
- echo "Installing yt"
- [ $INST_PNG -eq 1 ] && echo $PNG_DIR > png.cfg
- ( export PATH=$DEST_DIR/bin:$PATH ; ${DEST_DIR}/bin/${PYTHON_EXEC} setup.py develop 2>&1 ) 1>> ${LOG_FILE} || do_exit
- touch done
- cd $MY_PWD
-
- if !( ( ${DEST_DIR}/bin/${PYTHON_EXEC} -c "import readline" 2>&1 )>> ${LOG_FILE}) || \
- [[ "${MYOS##Darwin}" != "${MYOS}" && $INST_PY3 -eq 1 ]]
- then
- if !( ( ${DEST_DIR}/bin/${PYTHON_EXEC} -c "import gnureadline" 2>&1 )>> ${LOG_FILE})
+ if [ ! -e $YT_DIR/.git ]
then
- echo "Installing pure-python readline"
- ( ${DEST_DIR}/bin/pip install gnureadline 2>&1 ) 1>> ${LOG_FILE}
- fi
- fi
-
- if [ -e $HOME/.matplotlib/fontList.cache ] && \
- ( grep -q python2.6 $HOME/.matplotlib/fontList.cache )
- then
- echo "WARNING WARNING WARNING WARNING WARNING WARNING WARNING"
- echo "*******************************************************"
- echo
- echo " You likely need to remove your old fontList.cache!"
- echo " You can do this with this command:"
- echo ""
- echo " rm $HOME/.matplotlib/fontList.cache"
- echo
- echo "*******************************************************"
- fi
-
- # Add the environment scripts
- ( cp ${YT_DIR}/doc/activate ${DEST_DIR}/bin/activate 2>&1 ) 1>> ${LOG_FILE}
- sed -i.bak -e "s,__YT_DIR__,${DEST_DIR}," ${DEST_DIR}/bin/activate
- ( cp ${YT_DIR}/doc/activate.csh ${DEST_DIR}/bin/activate.csh 2>&1 ) 1>> ${LOG_FILE}
- sed -i.bak -e "s,__YT_DIR__,${DEST_DIR}," ${DEST_DIR}/bin/activate.csh
-
- test_install
-
- function print_afterword
- {
- echo
- echo
- echo "========================================================================"
- echo
- echo "yt is now installed in $DEST_DIR ."
- echo
- echo "To run from this new installation, use the activate script for this "
- echo "environment."
- echo
- echo " $ source $DEST_DIR/bin/activate"
- echo
- echo "This modifies the environment variables YT_DEST, PATH, PYTHONPATH, and"
- echo "LD_LIBRARY_PATH to match your new yt install. If you use csh, just"
- echo "append .csh to the above."
- echo
- echo "To get started with yt, check out the orientation:"
- echo
- echo " http://yt-project.org/doc/quickstart/"
- echo
- echo "The source for yt is located at:"
- echo " $YT_DIR"
- echo
- echo "For support, see the website and join the mailing list:"
- echo
- echo " http://yt-project.org/"
- echo " http://yt-project.org/data/ (Sample data)"
- echo " http://yt-project.org/doc/ (Docs)"
- echo
- echo " http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org"
- echo
- echo "========================================================================"
- echo
- echo "Oh, look at me, still talking when there's science to do!"
- echo "Good luck, and email the user list if you run into any problems."
- }
-
- print_afterword
- print_afterword >> ${LOG_FILE}
-
- echo "yt dependencies were last updated on" > ${DEST_DIR}/.yt_update
- date >> ${DEST_DIR}/.yt_update
-else # INST_CONDA -eq 1
- MYARCH=`uname -m` # A guess at the OS
- MYOS=`uname -s`
-
- if [ $MYOS = "Darwin" ]
- then
- MINICONDA_OS="MacOSX"
- MINICONDA_ARCH="x86_64"
- elif [ $MYOS = "Linux" ]
- then
- MINICONDA_OS="Linux"
- if [ $MYARCH = "i386" ]
- then
- MINICONDA_ARCH="x86"
- elif [ $MYARCH = "i686" ]
- then
- MINICONDA_ARCH="x86"
- elif [ $MYARCH = "x86_64" ]
- then
- MINICONDA_ARCH="x86_64"
- else
- echo "Not sure which architecture you are running."
- echo "Going with x86_64 architecture."
- MINICONDA_OS="Linux-x86_64"
- fi
- else
- echo "The yt install script is not supported on the ${MYOS}"
- echo "operating system."
- exit 1
- fi
-
- if [ $INST_PY3 -eq 1 ]
- then
- PY_VERSION='3'
- else
- PY_VERSION='2'
- fi
-
- MINICONDA_PKG="Miniconda${PY_VERSION}-${MINICONDA_VERSION}-${MINICONDA_OS}-${MINICONDA_ARCH}.sh"
-
- echo
- echo "Downloading ${MINICONDA_URLBASE}/${MINICONDA_PKG}"
- echo
-
- if [ -f ${MINICONDA_PKG} ]
- then
- rm $MINICONDA_PKG
- fi
-
- echo "Installing the Miniconda python environment."
-
- if [ -e ${DEST_DIR} ]
- then
- rm -rf $DEST_DIR/*
- else
- mkdir $DEST_DIR
- fi
-
- log_cmd ${GETFILE} ${MINICONDA_URLBASE}/${MINICONDA_PKG} || do_exit
-
- log_cmd bash ./${MINICONDA_PKG} -b -p $DEST_DIR -f
-
- # Need to set PATH so we use miniconda's python environment
- export PATH=${DEST_DIR}/bin:$PATH
-
- echo "Installing the necessary packages for yt."
- echo "This may take a while, but don't worry. yt loves you."
-
- declare -a YT_DEPS
- YT_DEPS+=('python')
- YT_DEPS+=('setuptools')
- YT_DEPS+=('numpy')
- YT_DEPS+=('jupyter')
- YT_DEPS+=('ipython')
- YT_DEPS+=('sphinx')
- if [ ${INST_GIT} -eq 1 ]
- then
- YT_DEPS+=('git')
- YT_DEPS+=('gitpython')
- fi
- if [ $INST_H5PY -ne 0 ]
- then
- YT_DEPS+=('h5py')
- fi
- YT_DEPS+=('matplotlib')
- YT_DEPS+=('cython')
- if [ $INST_NOSE -ne 0 ]
- then
- YT_DEPS+=('nose')
- fi
- if [ $INST_SCIPY -ne 0 ]
- then
- YT_DEPS+=('scipy')
- fi
- if [ $INST_ASTROPY -ne 0 ]
- then
- YT_DEPS+=('astropy')
- fi
- YT_DEPS+=('conda-build')
- if [ $INST_PY3 -eq 0 ] && [ $INST_HG -eq 1 ]
- then
- YT_DEPS+=('mercurial')
- fi
- YT_DEPS+=('sympy')
-
- if [ $INST_NETCDF4 -eq 1 ]
- then
- YT_DEPS+=('netcdf4')
- fi
-
- log_cmd ${DEST_DIR}/bin/conda update --yes conda
-
- if [ $INST_GIT -eq 1 ]
- then
- GIT_EXE=${DEST_DIR}/bin/git
- else
- if type -P git &>/dev/null
- then
- GIT_EXE="git"
- else
- echo "Cannot find git. Please install git or set INST_GIT=1."
+ echo "$YT_DIR is not a clone of the yt git repository, exiting"
do_exit
fi
fi
-
- log_cmd echo "DEPENDENCIES" ${YT_DEPS[@]}
- for YT_DEP in "${YT_DEPS[@]}"; do
- echo "Installing $YT_DEP"
- log_cmd ${DEST_DIR}/bin/conda install -c conda-forge --yes ${YT_DEP}
- done
-
- if [ $INST_PY3 -eq 1 ] && [ $INST_HG -eq 1 ]
- then
- echo "Installing mercurial"
- log_cmd ${DEST_DIR}/bin/conda create -y -n py27 python=2.7 mercurial
- log_cmd ln -s ${DEST_DIR}/envs/py27/bin/hg ${DEST_DIR}/bin
- fi
-
- log_cmd ${GIT_EXE} clone https://github.com/yt-project/yt_conda ${DEST_DIR}/src/yt_conda
-
if [ $INST_EMBREE -eq 1 ]
then
-
- echo "Installing Embree"
- if [ ! -d ${DEST_DIR}/src ]
- then
- mkdir ${DEST_DIR}/src
- fi
- cd ${DEST_DIR}/src
- ( ${GETFILE} "$EMBREE_URL" 2>&1 ) 1>> ${LOG_FILE} || do_exit
- log_cmd tar xfz ${EMBREE}.tar.gz
- log_cmd mv ${DEST_DIR}/src/${EMBREE}/include/embree2 ${DEST_DIR}/include
- log_cmd mv ${DEST_DIR}/src/${EMBREE}/lib/lib*.* ${DEST_DIR}/lib
- if [ `uname` = "Darwin" ]
- then
- ln -s ${DEST_DIR}/lib/libembree.2.dylib ${DEST_DIR}/lib/libembree.dylib
- install_name_tool -id ${DEST_DIR}/lib/libembree.2.dylib ${DEST_DIR}/lib/libembree.2.dylib
- else
- ln -s ${DEST_DIR}/lib/libembree.so.2 ${DEST_DIR}/lib/libembree.so
- fi
-
- echo "Installing pyembree from source"
- ( ${GETFILE} "$PYEMBREE_URL" 2>&1 ) 1>> ${LOG_FILE} || do_exit
- log_cmd unzip ${DEST_DIR}/src/master.zip
- pushd ${DEST_DIR}/src/pyembree-master &> /dev/null
- log_cmd ${DEST_DIR}/bin/${PYTHON_EXEC} setup.py install build_ext -I${DEST_DIR}/include -L${DEST_DIR}/lib
- popd &> /dev/null
+ echo $DEST_DIR > ${YT_DIR}/embree.cfg
fi
-
if [ $INST_ROCKSTAR -eq 1 ]
then
- echo "Building Rockstar"
- ( ${GIT_EXE} clone https://github.com/yt-project/rockstar ${DEST_DIR}/src/rockstar/ 2>&1 ) 1>> ${LOG_FILE}
- ROCKSTAR_PACKAGE=$(${DEST_DIR}/bin/conda build ${DEST_DIR}/src/yt_conda/rockstar --output)
- log_cmd ${DEST_DIR}/bin/conda build ${DEST_DIR}/src/yt_conda/rockstar
- log_cmd ${DEST_DIR}/bin/conda install $ROCKSTAR_PACKAGE
- ROCKSTAR_DIR=${DEST_DIR}/src/rockstar
- fi
-
- # conda doesn't package pyx, so we install manually with pip
- if [ $INST_PYX -eq 1 ]
- then
- if [ $INST_PY3 -eq 1 ]
- then
- log_cmd ${DEST_DIR}/bin/pip install pyx
- else
- log_cmd ${DEST_DIR}/bin/pip install pyx==0.12.1
- fi
- fi
-
- if [ $INST_YT_SOURCE -eq 0 ]
- then
- echo "Installing yt"
- log_cmd ${DEST_DIR}/bin/conda install -c conda-forge --yes yt
- else
- echo "Building yt from source"
- if [ -z "$YT_DIR" ]
- then
- if [ -e $ORIG_PWD/yt/mods.py ]
- then
- YT_DIR="$ORIG_PWD"
- elif [ -e $ORIG_PWD/../yt/mods.py ]
- then
- YT_DIR=$(dirname $ORIG_PWD)
- else
- YT_DIR="${DEST_DIR}/src/yt-git"
- log_cmd ${GIT_EXE} clone https://github.com/yt-project/yt ${YT_DIR}
- log_cmd ${GIT_EXE} -C ${YT_DIR} checkout ${BRANCH}
- fi
- echo Setting YT_DIR=${YT_DIR}
- else
- if [ ! -e $YT_DIR/.git ]
- then
- echo "$YT_DIR is not a clone of the yt git repository, exiting"
- do_exit
- fi
- fi
- if [ $INST_EMBREE -eq 1 ]
- then
- echo $DEST_DIR > ${YT_DIR}/embree.cfg
- fi
- if [ $INST_ROCKSTAR -eq 1 ]
- then
- echo $ROCKSTAR_DIR > ${YT_DIR}/rockstar.cfg
- ROCKSTAR_LIBRARY_PATH=${DEST_DIR}/lib
- fi
- pushd ${YT_DIR} &> /dev/null
- ( LIBRARY_PATH=$ROCKSTAR_LIBRARY_PATH ${DEST_DIR}/bin/${PYTHON_EXEC} setup.py develop 2>&1) 1>> ${LOG_FILE} || do_exit
- popd &> /dev/null
+ echo $ROCKSTAR_DIR > ${YT_DIR}/rockstar.cfg
+ ROCKSTAR_LIBRARY_PATH=${DEST_DIR}/lib
fi
+ pushd ${YT_DIR} &> /dev/null
+ ( LIBRARY_PATH=$ROCKSTAR_LIBRARY_PATH ${DEST_DIR}/bin/${PYTHON_EXEC} setup.py develop 2>&1) 1>> ${LOG_FILE} || do_exit
+ popd &> /dev/null
+fi
- test_install
+test_install
- echo
- echo
- echo "========================================================================"
- echo
- echo "yt and the Conda system are now installed in $DEST_DIR"
- echo
- echo "To get started with yt, check out the orientation:"
- echo
- echo " http://yt-project.org/doc/orientation/"
- echo
- echo "For support, see the website and join the mailing list:"
- echo
- echo " http://yt-project.org/"
- echo " http://yt-project.org/data/ (Sample data)"
- echo " http://yt-project.org/doc/ (Docs)"
- echo
- echo " http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org"
- echo
- echo "You must now prepend the following folder to your PATH environment variable:"
- echo
- echo " $DEST_DIR/bin"
- echo
- echo "On Bash-style shells you can copy/paste the following command to "
- echo "temporarily activate the yt installation:"
+echo
+echo
+echo "========================================================================"
+echo
+echo "yt and the Conda system are now installed in $DEST_DIR"
+echo
+echo "To get started with yt, check out the orientation:"
+echo
+echo " http://yt-project.org/doc/orientation/"
+echo
+echo "For support, see the website and join the mailing list:"
+echo
+echo " http://yt-project.org/"
+echo " http://yt-project.org/data/ (Sample data)"
+echo " http://yt-project.org/doc/ (Docs)"
+echo
+echo " http://lists.spacepope.org/listinfo.cgi/yt-users-spacepope.org"
+echo
+echo "You must now prepend the following folder to your PATH environment variable:"
+echo
+echo " $DEST_DIR/bin"
+echo
+echo "On Bash-style shells you can copy/paste the following command to "
+echo "temporarily activate the yt installation:"
+echo
+echo " export PATH=$DEST_DIR/bin:\$PATH"
+echo
+echo "and on csh-style shells:"
+echo
+echo " setenv PATH $DEST_DIR/bin:\$PATH"
+echo
+echo "You can also update the init file appropriate for your shell"
+echo "(e.g. .bashrc, .bash_profile, .cshrc, or .zshrc) to include"
+echo "the same command."
+echo
+if [ $INST_ROCKSTAR -eq 1 ]
+then
+ if [ $MYOS = "Darwin" ]
+ then
+ LD_NAME="DYLD_LIBRARY_PATH"
+ else
+ LD_NAME="LD_LIBRARY_PATH"
+ fi
echo
- echo " export PATH=$DEST_DIR/bin:\$PATH"
- echo
- echo "and on csh-style shells:"
+ echo "For rockstar to work, you must also set $LD_NAME:"
echo
- echo " setenv PATH $DEST_DIR/bin:\$PATH"
- echo
- echo "You can also update the init file appropriate for your shell"
- echo "(e.g. .bashrc, .bash_profile, .cshrc, or .zshrc) to include"
- echo "the same command."
+ echo " export $LD_NAME=$DEST_DIR/lib:\$$LD_NAME"
echo
- if [ $INST_ROCKSTAR -eq 1 ]
- then
- if [ $MYOS = "Darwin" ]
- then
- LD_NAME="DYLD_LIBRARY_PATH"
- else
- LD_NAME="LD_LIBRARY_PATH"
- fi
- echo
- echo "For rockstar to work, you must also set $LD_NAME:"
- echo
- echo " export $LD_NAME=$DEST_DIR/lib:\$$LD_NAME"
- echo
- echo "or whichever invocation is appropriate for your shell."
- fi
- echo "========================================================================"
- echo
- echo "Oh, look at me, still talking when there's science to do!"
- echo "Good luck, and email the mailing list if you run into any problems."
+ echo "or whichever invocation is appropriate for your shell."
fi
+echo "========================================================================"
+echo
+echo "Oh, look at me, still talking when there's science to do!"
+echo "Good luck, and email the mailing list if you run into any problems."
diff -r e49ad643fc2f148b57540babd31571d2f6f450d2 -r ca55361b131f0526d595e37a4cc05f4b2079783e doc/source/analyzing/objects.rst
--- a/doc/source/analyzing/objects.rst
+++ b/doc/source/analyzing/objects.rst
@@ -197,7 +197,6 @@
(900.1, 'm')]
sl.plot()
-.. _available-objects:
Making Image Buffers
^^^^^^^^^^^^^^^^^^^^
@@ -214,6 +213,41 @@
This `frb` object then can be queried like a normal fixed resolution buffer,
and it will return arrays of shape (1024, 1024).
+Making Rays
+^^^^^^^^^^^
+
+The slicing syntax can also be used select 1D rays of points, whether along
+an axis or off-axis. To create a ray along an axis:::
+
+ ortho_ray = ds.r[(500.0, "kpc"), (200, "kpc"):(300.0, "kpc"), (-2.0, "Mpc")]
+
+To create a ray off-axis, use a single slice between the start and end points
+of the ray:::
+
+ start = [0.1, 0.2, 0.3] # interpreted in code_length
+ end = [0.4, 0.5, 0.6] # interpreted in code_length
+ ray = ds.r[start:end]
+
+As for the other slicing options, combinations of unitful quantities with even
+different units can be used. Here's a somewhat convoluted (yet working) example:::
+
+ start = ((500.0, "kpc"), (0.2, "Mpc"), (100.0, "kpc"))
+ end = ((1.0, "Mpc"), (300.0, "kpc"), (0.0, "kpc"))
+ ray = ds.r[start:end]
+
+Selecting Points
+^^^^^^^^^^^^^^^^
+
+Finally, you can quickly select a single point within the domain by providing
+a single coordinate for every axis:::
+
+ pt = ds.r[(10.0, 'km'), (200, 'm'), (1.0,'km')]
+
+Querying this object for fields will give you the value of the field at that
+point.
+
+.. _available-objects:
+
Available Objects
-----------------
diff -r e49ad643fc2f148b57540babd31571d2f6f450d2 -r ca55361b131f0526d595e37a4cc05f4b2079783e doc/source/examining/loading_data.rst
--- a/doc/source/examining/loading_data.rst
+++ b/doc/source/examining/loading_data.rst
@@ -482,6 +482,36 @@
fields. Projections, volume rendering, and many of the analysis modules will not
work.
+.. _loading-enzop-data:
+
+Enzo-P Data
+-----------
+
+Enzo-P outputs have three types of files.
+
+.. code-block:: none
+
+ hello-0200/
+ hello-0200/hello-0200.block_list
+ hello-0200/hello-0200.file_list
+ hello-0200/hello-0200.hello-c0020-p0000.h5
+
+To load Enzo-P data into yt, provide the block list file:
+
+.. code-block:: python
+
+ import yt
+ ds = yt.load("hello-0200/hello-0200.block_list")
+
+Mesh fields are fully supported for 1, 2, and 3D datasets.
+
+.. rubric:: Caveats
+
+ * The Enzo-P output format is still evolving somewhat as the code is being
+ actively developed. This frontend will be updated as development continues.
+ * Units are currently assumed to be in CGS.
+ * Particles are not yet supported.
+
.. _loading-exodusii-data:
Exodus II Data
diff -r e49ad643fc2f148b57540babd31571d2f6f450d2 -r ca55361b131f0526d595e37a4cc05f4b2079783e doc/source/faq/index.rst
--- a/doc/source/faq/index.rst
+++ b/doc/source/faq/index.rst
@@ -28,25 +28,16 @@
$ yt version
yt module located at:
- /Users/username/src/yt-x86_64/src/yt-hg
- The supplemental repositories are located at:
- /Users/username/src/yt-x86_64/src/yt-supplemental
+ /Users/username/src/yt-conda/src/yt-git
- The current version and changeset for the code is:
+ The current version of yt is:
---
- Version = 2.7-dev
- Changeset = 6bffc737a67a
+ Version = 3.4-dev
+ Changeset = 94033fca00e5
---
This installation CAN be automatically updated.
- yt dependencies were last updated on
- Wed Dec 4 15:47:40 MST 2013
-
- To update all dependencies, run "yt update --all".
-
-If the changeset is displayed followed by a "+", it means you have made
-modifications to the code since the last changeset.
For more information on this topic, see :ref:`updating-yt`.
diff -r e49ad643fc2f148b57540babd31571d2f6f450d2 -r ca55361b131f0526d595e37a4cc05f4b2079783e doc/source/help/index.rst
--- a/doc/source/help/index.rst
+++ b/doc/source/help/index.rst
@@ -36,19 +36,24 @@
Sometimes the pace of development is pretty fast on yt, particularly in the
development branch, so a fix to your problem may have already been developed
by the time you encounter it. Many users' problems can simply be corrected
-by updating to the latest version of the code and/or its dependencies. You
-can update yt's source by running:
+by updating to the latest version of the code and/or its dependencies. If you
+have installed the latest stable release of yt then you should update yt using
+the package manager appropriate for your python installation. For example, with
+``pip``::
+
+ $ pip install -U yt
+
+Or with conda::
+
+ $ conda update yt
+
+If you installed yt from a checkout of the git repository, you can update to
+the latest development version by issuing the following command:
.. code-block:: bash
$ yt update
-or you could update yt's source as well as any software dependencies by running:
-
-.. code-block:: bash
-
- $ yt update --all
-
.. _update-errors:
Update errors
This diff is so big that we needed to truncate the remainder.
https://bitbucket.org/yt_analysis/yt/commits/88a0dbcb3de1/
Changeset: 88a0dbcb3de1
User: atmyers
Date: 2017-07-05 20:35:10+00:00
Summary: add a test for multilevel WarpX
Affected #: 1 file
diff -r ca55361b131f0526d595e37a4cc05f4b2079783e -r 88a0dbcb3de1e3edf9fc37a9704779b622c5274d yt/frontends/boxlib/tests/test_outputs.py
--- a/yt/frontends/boxlib/tests/test_outputs.py
+++ b/yt/frontends/boxlib/tests/test_outputs.py
@@ -167,6 +167,17 @@
test_plasma.__name__ = test.description
yield test
+beam = "GaussianBeam/plt03008"
+ at requires_ds(beam)
+def test_beam():
+ ds = data_dir_load(beam)
+ assert_equal(str(ds), "plt03008")
+ for test in small_patch_amr(ds, _warpx_fields,
+ input_center="c",
+ input_weight="Ex"):
+ test_beam.__name__ = test.description
+ yield test
+
@requires_file(plasma)
def test_warpx_particle_io():
ds = data_dir_load(plasma)
https://bitbucket.org/yt_analysis/yt/commits/f2efe822de77/
Changeset: f2efe822de77
User: atmyers
Date: 2017-07-06 17:38:21+00:00
Summary: add test_beam to the list of tests to be run.
Affected #: 1 file
diff -r 88a0dbcb3de1e3edf9fc37a9704779b622c5274d -r f2efe822de7748e399713de9c0094e44e54b543c tests/tests.yaml
--- a/tests/tests.yaml
+++ b/tests/tests.yaml
@@ -89,6 +89,7 @@
- yt/frontends/boxlib/tests/test_outputs.py:test_castro_particle_io
- yt/frontends/boxlib/tests/test_outputs.py:test_langmuir
- yt/frontends/boxlib/tests/test_outputs.py:test_plasma
+ - yt/frontends/boxlib/tests/test_outputs.py:test_beam
- yt/frontends/boxlib/tests/test_outputs.py:test_warpx_particle_io
- yt/frontends/boxlib/tests/test_outputs.py:test_NyxDataset
- yt/frontends/boxlib/tests/test_outputs.py:test_WarpXDataset
https://bitbucket.org/yt_analysis/yt/commits/991270483d51/
Changeset: 991270483d51
User: atmyers
Date: 2017-07-06 18:34:17+00:00
Summary: bump answer test number.
Affected #: 1 file
diff -r f2efe822de7748e399713de9c0094e44e54b543c -r 991270483d512e5d2ef0d4adecc91334653859b0 tests/tests.yaml
--- a/tests/tests.yaml
+++ b/tests/tests.yaml
@@ -83,7 +83,7 @@
- yt/frontends/boxlib/tests/test_outputs.py:test_units_override
- yt/frontends/boxlib/tests/test_outputs.py:test_raw_fields
- local_boxlib_particles_003:
+ local_boxlib_particles_004:
- yt/frontends/boxlib/tests/test_outputs.py:test_LyA
- yt/frontends/boxlib/tests/test_outputs.py:test_nyx_particle_io
- yt/frontends/boxlib/tests/test_outputs.py:test_castro_particle_io
https://bitbucket.org/yt_analysis/yt/commits/91d4c5f842e1/
Changeset: 91d4c5f842e1
User: ngoldbaum
Date: 2017-07-16 14:32:51+00:00
Summary: Merge pull request #1465 from atmyers/master
Be smarter about parsing the WarpX header file.
Affected #: 4 files
diff -r fcedb2fbeb7c953194c0f10d808f6493b1eab945 -r 91d4c5f842e13395f9f6357b996def74a8823687 tests/tests.yaml
--- a/tests/tests.yaml
+++ b/tests/tests.yaml
@@ -84,12 +84,13 @@
- yt/frontends/boxlib/tests/test_outputs.py:test_units_override
- yt/frontends/boxlib/tests/test_outputs.py:test_raw_fields
- local_boxlib_particles_003:
+ local_boxlib_particles_004:
- yt/frontends/boxlib/tests/test_outputs.py:test_LyA
- yt/frontends/boxlib/tests/test_outputs.py:test_nyx_particle_io
- yt/frontends/boxlib/tests/test_outputs.py:test_castro_particle_io
- yt/frontends/boxlib/tests/test_outputs.py:test_langmuir
- yt/frontends/boxlib/tests/test_outputs.py:test_plasma
+ - yt/frontends/boxlib/tests/test_outputs.py:test_beam
- yt/frontends/boxlib/tests/test_outputs.py:test_warpx_particle_io
- yt/frontends/boxlib/tests/test_outputs.py:test_NyxDataset
- yt/frontends/boxlib/tests/test_outputs.py:test_WarpXDataset
diff -r fcedb2fbeb7c953194c0f10d808f6493b1eab945 -r 91d4c5f842e13395f9f6357b996def74a8823687 yt/frontends/boxlib/data_structures.py
--- a/yt/frontends/boxlib/data_structures.py
+++ b/yt/frontends/boxlib/data_structures.py
@@ -30,7 +30,6 @@
from yt.data_objects.grid_patch import AMRGridPatch
from yt.geometry.grid_geometry_handler import GridIndex
from yt.data_objects.static_output import Dataset
-from yt.units import YTQuantity
from yt.utilities.parallel_tools.parallel_analysis_interface import \
parallel_root_only
@@ -1382,6 +1381,48 @@
return boxes, file_names, offsets
+class WarpXHeader(object):
+ def __init__(self, header_fn):
+ self.data = {}
+ with open(header_fn, "r") as f:
+ self.data["Checkpoint_version"] = int(f.readline().strip().split()[-1])
+
+ self.data["num_levels"] = int(f.readline().strip().split()[-1])
+ self.data["istep"] = [int(num) for num in f.readline().strip().split()]
+ self.data["nsubsteps"] = [int(num) for num in f.readline().strip().split()]
+
+ self.data["t_new"] = [float(num) for num in f.readline().strip().split()]
+ self.data["t_old"] = [float(num) for num in f.readline().strip().split()]
+ self.data["dt"] = [float(num) for num in f.readline().strip().split()]
+
+ self.data["moving_window_x"] = float(f.readline().strip().split()[-1])
+
+ # not all datasets will have is_synchronized
+ line = f.readline().strip().split()
+ if (len(line) == 1):
+ self.data["is_synchronized"] = bool(line[-1])
+ self.data["prob_lo"] = [float(num) for num in f.readline().strip().split()]
+ else:
+ self.data["is_synchronized"] = True
+ self.data["prob_lo"] = [float(num) for num in line]
+
+ self.data["prob_hi"] = [float(num) for num in f.readline().strip().split()]
+
+ for _ in range(self.data["num_levels"]):
+ num_boxes = int(f.readline().strip().split()[0][1:])
+ for __ in range(num_boxes):
+ f.readline()
+ f.readline()
+
+ i = 0
+ line = f.readline()
+ while line:
+ line = line.strip().split()
+ self.data["species_%d" % i] = [float(val) for val in line]
+ i = i + 1
+ line = f.readline()
+
+
class WarpXHierarchy(BoxlibHierarchy):
def __init__(self, ds, dataset_type="boxlib_native"):
@@ -1392,27 +1433,17 @@
self._read_particles(ptype, is_checkpoint)
# Additional WarpX particle information (used to set up species)
- with open(self.ds.output_dir + "/WarpXHeader", 'r') as f:
-
- # skip to the end, where species info is written out
- line = f.readline()
- while line and line != ')\n':
- line = f.readline()
- line = f.readline()
-
- # Read in the species information
- species_id = 0
- while line:
- line = line.strip().split()
- charge = YTQuantity(float(line[0]), "C")
- mass = YTQuantity(float(line[1]), "kg")
- charge_name = 'particle%.1d_charge' % species_id
- mass_name = 'particle%.1d_mass' % species_id
- self.parameters[charge_name] = charge
- self.parameters[mass_name] = mass
- line = f.readline()
- species_id += 1
-
+ self.warpx_header = WarpXHeader(self.ds.output_dir + "/WarpXHeader")
+
+ i = 0
+ for key, val in self.warpx_header.data.items():
+ if key.startswith("species_"):
+ charge_name = 'particle%.1d_charge' % i
+ mass_name = 'particle%.1d_mass' % i
+ self.parameters[charge_name] = val[0]
+ self.parameters[mass_name] = val[1]
+ i = i + 1
+
def _detect_output_fields(self):
super(WarpXHierarchy, self)._detect_output_fields()
diff -r fcedb2fbeb7c953194c0f10d808f6493b1eab945 -r 91d4c5f842e13395f9f6357b996def74a8823687 yt/frontends/boxlib/fields.py
--- a/yt/frontends/boxlib/fields.py
+++ b/yt/frontends/boxlib/fields.py
@@ -18,6 +18,7 @@
boltzmann_constant_cgs, amu_cgs
from yt.fields.field_info_container import \
FieldInfoContainer
+from yt.units import YTQuantity
rho_units = "code_mass / code_length**3"
mom_units = "code_mass / (code_time * code_length**2)"
@@ -93,7 +94,7 @@
def get_mass(field, data):
species_mass = data.ds.index.parameters[ptype + '_mass']
- return data["particle_weight"]*species_mass
+ return data["particle_weight"]*YTQuantity(species_mass, 'kg')
self.add_field((ptype, "particle_mass"), sampling_type="particle",
function=get_mass,
@@ -101,7 +102,7 @@
def get_charge(field, data):
species_charge = data.ds.index.parameters[ptype + '_charge']
- return data["particle_weight"]*species_charge
+ return data["particle_weight"]*YTQuantity(species_charge, 'C')
self.add_field((ptype, "particle_charge"), sampling_type="particle",
function=get_charge,
diff -r fcedb2fbeb7c953194c0f10d808f6493b1eab945 -r 91d4c5f842e13395f9f6357b996def74a8823687 yt/frontends/boxlib/tests/test_outputs.py
--- a/yt/frontends/boxlib/tests/test_outputs.py
+++ b/yt/frontends/boxlib/tests/test_outputs.py
@@ -167,6 +167,17 @@
test_plasma.__name__ = test.description
yield test
+beam = "GaussianBeam/plt03008"
+ at requires_ds(beam)
+def test_beam():
+ ds = data_dir_load(beam)
+ assert_equal(str(ds), "plt03008")
+ for test in small_patch_amr(ds, _warpx_fields,
+ input_center="c",
+ input_weight="Ex"):
+ test_beam.__name__ = test.description
+ yield test
+
@requires_file(plasma)
def test_warpx_particle_io():
ds = data_dir_load(plasma)
Repository URL: https://bitbucket.org/yt_analysis/yt/
--
This is a commit notification from bitbucket.org. You are receiving
this because you have the service enabled, addressing the recipient of
this email.
More information about the yt-svn
mailing list