n physics and chemistry, plasma is a gas in which a certain portion of the particles are ionized. The presence of a non-negligible number of charge carriers makes the plasma electrically conductive so that it responds strongly to electromagnetic fields. Plasma, therefore, has properties quite unlike those of solids, liquids, or gases and is considered to be a distinct state of matter. Like gas, plasma does not have a definite shape or a definite volume unless enclosed in a container; unlike gas, in the influence of a magnetic field, it may form structures such as filaments, beams and double layers (see section 3, below). Some common plasmas are flame, lightning, and the Sun.

Plasma was first identified in a Crookes tube, and so described by Sir William Crookes in 1879 (he called it "radiant matter").[1] The nature of the Crookes tube "cathode ray" matter was subsequently identified by British physicist Sir J.J. Thomson in 1897,[2] and dubbed "plasma" by Irving Langmuir in 1928,[3] perhaps because it reminded him of a blood plasma. Langmuir wrote:

Except near the electrodes, where there are sheaths containing very few electrons, the ionized gas contains ions and electrons in about equal numbers so that the resultant space charge is very small. We shall use the name plasma to describe this region containing balanced charges of ions and electrons.[3]
