CustomParticle

class plasmapy.particles.CustomParticle(mass: u.kg = None, charge: u.C, Real = None, symbol=None)

Bases: plasmapy.particles.particle_class.AbstractPhysicalParticle

A class to represent custom particles.

Example use cases for this class include representing an average ion in a multi-component plasma, molecules, or dust grains.

Parameters
  • mass (Quantity, optional) – The mass of the custom particle in units of mass.

  • charge (Quantity or Real, optional) – The electric charge of the custom particle. If provided as a Quantity, then it must be in units of electric charge. If provided as a real number, then it is treated as the ratio of the charge to the elementary charge.

  • symbol (str, optional) – The symbol to be assigned to the custom particle.

Raises

InvalidParticleError – If the charge or mass provided is invalid so that the custom particle cannot be created.

Notes

If the charge or mass is not specified, then the corresponding value will be set to numpy.nan in the appropriate units.

Examples

>>> from astropy import units as u
>>> from plasmapy.particles import CustomParticle
>>> custom_particle = CustomParticle(mass=1.5e-26 * u.kg, charge=-1, symbol="Ξ")
>>> custom_particle.mass
<Quantity 1.5e-26 kg>
>>> custom_particle.charge
<Quantity -1.60217...e-19 C>
>>> custom_particle.symbol
'Ξ'

Attributes Summary

charge

Return the custom particle’s electric charge in coulombs.

json_dict

A json friendly dictionary representation of the particle.

mass

Return the custom particle’s mass.

mass_energy

The mass energy of the custom particle.

symbol

The symbol assigned to the custom particle.

Methods Summary

json_dump(fp, **kwargs)

Write the particle’s json_dict to the fp file object using json.dump.

json_dumps(**kwargs)

Serialize the particle’s json_dict into a JSON formatted str using json.dumps.

Attributes Documentation

charge

Return the custom particle’s electric charge in coulombs.

json_dict

A json friendly dictionary representation of the particle.

See AbstractParticle.json_dict for more details.

Examples

>>> custom_particle = CustomParticle(mass=5.12 * u.kg, charge=6.2 * u.C, symbol="ξ")
>>> custom_particle.json_dict
{'plasmapy_particle': {'type': 'CustomParticle',
    'module': 'plasmapy.particles.particle_class',
    'date_created': '...',
    '__init__': {'args': (), 'kwargs': {'mass': '5.12 kg', 'charge': '6.2 C',
    'symbol': 'ξ'}}}}
>>> custom_particle = CustomParticle(mass=1.5e-26 * u.kg)
>>> custom_particle.json_dict
{'plasmapy_particle': {'type': 'CustomParticle',
    'module': 'plasmapy.particles.particle_class',
    'date_created': '...',
    '__init__': {'args': (), 'kwargs': {'mass': '1.5e-26 kg', 'charge': 'nan C',
    'symbol': 'CustomParticle(mass=1.5e-26 kg, charge=nan C)'}}}}
mass

Return the custom particle’s mass.

mass_energy

The mass energy of the custom particle.

Examples

>>> import astropy.units as u
>>> custom_particle = CustomParticle(mass = 2e-25 * u.kg, charge = 0 * u.C)
>>> custom_particle.mass_energy.to('GeV')
<Quantity 112.19177208 GeV>
symbol

The symbol assigned to the custom particle.

If no symbol was defined, then return the value given by repr.

Methods Documentation

json_dump(fp, **kwargs)

Write the particle’s json_dict to the fp file object using json.dump.

Parameters
json_dumps(**kwargs)str

Serialize the particle’s json_dict into a JSON formatted str using json.dumps.

Parameters

**kwargs – Any keyword accepted by json.dumps.

Returns

JSON formatted str.

Return type

str