CustomParticle

class plasmapy.particles.particle_class.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

The electric charge of the CustomParticle in coulombs.

json_dict

A json friendly dictionary representation of the CustomParticle.

mass

The mass of the CustomParticle.

mass_energy

The mass energy of the CustomParticle.

symbol

The symbol assigned to the CustomParticle.

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

The electric charge of the CustomParticle in coulombs.

json_dict

A json friendly dictionary representation of the CustomParticle.

See 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

The mass of the CustomParticle.

mass_energy

The mass energy of the CustomParticle.

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 CustomParticle.

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