Source code for yt.frontends.sph.fields

"""
SPH fields




"""
from __future__ import absolute_import

#-----------------------------------------------------------------------------
# Copyright (c) 2013, yt Development Team.
#
# Distributed under the terms of the Modified BSD License.
#
# The full license is in the file COPYING.txt, distributed with this software.
#-----------------------------------------------------------------------------

from yt.fields.field_info_container import \
    FieldInfoContainer
from yt.fields.species_fields import \
    setup_species_fields

[docs]class SPHFieldInfo(FieldInfoContainer): known_other_fields = () known_particle_fields = ( ("Mass", ("code_mass", ["particle_mass"], None)), ("Masses", ("code_mass", ["particle_mass"], None)), ("Coordinates", ("code_length", ["particle_position"], None)), ("Velocity", ("code_velocity", ["particle_velocity"], None)), ("Velocities", ("code_velocity", ["particle_velocity"], None)), ("ParticleIDs", ("", ["particle_index"], None)), ("InternalEnergy", ("code_velocity ** 2", ["thermal_energy"], None)), ("SmoothingLength", ("code_length", ["smoothing_length"], None)), ("Density", ("code_mass / code_length**3", ["density"], None)), ("MaximumTemperature", ("K", [], None)), ("Temperature", ("K", ["temperature"], None)), ("Epsilon", ("code_length", [], None)), ("Metals", ("code_metallicity", ["metallicity"], None)), ("Metallicity", ("code_metallicity", ["metallicity"], None)), ("Phi", ("code_length", [], None)), ("StarFormationRate", ("code_mass / code_time", [], None)), ("FormationTime", ("code_time", ["creation_time"], None)), # These are metallicity fields that get discovered for FIRE simulations ("Metallicity_00", ("", ["metallicity"], None)), ("Metallicity_01", ("", ["He_fraction"], None)), ("Metallicity_02", ("", ["C_fraction"], None)), ("Metallicity_03", ("", ["N_fraction"], None)), ("Metallicity_04", ("", ["O_fraction"], None)), ("Metallicity_05", ("", ["Ne_fraction"], None)), ("Metallicity_06", ("", ["Mg_fraction"], None)), ("Metallicity_07", ("", ["Si_fraction"], None)), ("Metallicity_08", ("", ["S_fraction"], None)), ("Metallicity_09", ("", ["Ca_fraction"], None)), ("Metallicity_10", ("", ["Fe_fraction"], None)), )
[docs] def __init__(self, *args, **kwargs): super(SPHFieldInfo, self).__init__(*args, **kwargs) # Special case for FIRE if ("PartType0", "Metallicity_00") in self.field_list: self.species_names += ["He", "C", "N", "O", "Ne", "Mg", "Si", "S", "Ca", "Fe"]
[docs] def setup_particle_fields(self, ptype, *args, **kwargs): super(SPHFieldInfo, self).setup_particle_fields(ptype, *args, **kwargs) setup_species_fields(self, ptype)