ForHosting KIT · Science

Intrinsic carrier concentration calculator

Textbook silicon values at 300 K, with densities of states of 2.8 × 10^25 and 1.04 × 10^25 per cubic metre and a 1.12 eV bandgap, give an intrinsic carrier concentration of 6.675898719714808 × 10^15 per cubic metre. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Nc
28,000,000,000,000,000,000,000,000
Nv
10,400,000,000,000,000,000,000,000
Bandgap
1.12
Creativity
300
You get
Intrinsic carrier concentration
6,675,898,719,714,808 m^-3
Ni m3
6,675,898,719,714,808
Ni cm3
6,675,898,719.7148075
K b
0

This intrinsic carrier concentration calculator returns the equilibrium electron and hole density of an undoped semiconductor from the conduction-band and valence-band effective densities of states, the bandgap energy, and the absolute temperature. Densities of states are entered in inverse cubic metres and the result is the intrinsic carrier concentration per cubic metre, the SI unit used in device models, process notebooks, and semiconductor homework. Bandgap is in electronvolts and temperature is in kelvin; Boltzmann's constant is the exact SI 2019 value converted to electronvolts per kelvin so two clients never disagree about the thermal energy. The engine uses only finite arithmetic with no network calls, no sampling, and no date-dependent shortcuts.

What the intrinsic carrier concentration tells you

In a pure semiconductor, thermal energy lifts a few electrons across the bandgap into the conduction band, and each one leaves a hole behind in the valence band. At equilibrium the two densities are equal, and that shared value is the intrinsic carrier concentration. The calculation multiplies the two effective densities of states, takes the square root, and scales the result by an exponential factor set by the bandgap over twice the thermal energy. Boltzmann's constant uses the exact 2019 SI value, expressed in electronvolts per kelvin, so the thermal energy is always the same. In the usual non-degenerate approximation, the product of electron and hole densities equals the square of this number, which is why it appears in device models, pn-junction problems and process notebooks.

Units and mistakes to avoid

Enter the densities of states per cubic metre, not per cubic centimetre; the result is given per cubic metre and also per cubic centimetre, so you can compare it with either kind of table. The bandgap goes in electronvolts and the temperature in kelvin, never in Celsius, and a zero or negative temperature is refused. Because the tabulated densities of states already contain the temperature, use values that match the temperature you type, or the exponent and the prefactor will describe two different crystals.

What does the intrinsic carrier concentration calculator cost?

It is free in your browser on this page.

What happens if temperature is zero or negative?

Intrinsic carrier concentration is undefined for a non-positive absolute temperature because the Boltzmann factor exp(-E_g / (2 k_B T)) is not defined when T is not positive.

What units should I use?

Enter N_c and N_v in inverse cubic metres (m^-3), bandgap in electronvolts (eV), and temperature in kelvin (K).

Why does the result change so much with temperature or bandgap?

Because the bandgap divided by twice the thermal energy sits inside an exponential. A slightly warmer crystal or a slightly smaller gap therefore raises the intrinsic concentration by orders of magnitude, not by a few percent.

Does the calculator work out the densities of states from effective masses?

No. You enter the conduction-band and valence-band densities of states directly, as tabulated in textbooks. They already include the effective-mass and temperature prefactor, so the calculator does not rebuild them.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/phys/intrinsic-carrier-concentration

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/phys/intrinsic-carrier-concentration \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"nc":2.8e+25,"nv":1.04e+25,"bandgap":1.12,"temperature":300}'
{
  "nc": 2.8e+25,
  "nv": 1.04e+25,
  "bandgap": 1.12,
  "temperature": 300
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "phys.intrinsic_carrier_concentration",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

max_nc1e+40
max_nv1e+40
max_bandgap1000000
max_temperature1e+40
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

The closed-form identity is n_i equals the square root of N_c times N_v, multiplied by the exponential of minus E_g over two k_B T. Temperature must be strictly positive: zero or negative kelvin is rejected with invalid_input because the Boltzmann factor is undefined for a non-positive thermal energy.

What intrinsic carrier concentration means and what the response contains

N_c is the effective density of states in the conduction band and N_v is the effective density of states in the valence band; both already fold in the usual two-pi m-star k_B T over h-squared to the three-halves prefactor, so this calculator does not recompute them from effective masses. Bandgap E_g is the energy gap between the valence-band maximum and the conduction-band minimum, entered in electronvolts. Temperature T is the lattice temperature in kelvin. The intrinsic carrier concentration n_i is the equilibrium density of electrons in the conduction band of a pure semiconductor, equal at thermal equilibrium to the density of holes in the valence band. In the non-degenerate Boltzmann approximation the product of electron and hole concentrations is n_i squared, and n_i itself is the square root of N_c times N_v times the exponential of minus the bandgap over twice the thermal energy k_B T. The response echoes nc, nv, bandgap, and temperature, then returns the intrinsic carrier concentration in inverse cubic metres as both intrinsic_carrier_concentration and ni_m3, the equivalent density in inverse cubic centimetres as ni_cm3, which is n_i divided by one million because one cubic metre contains one million cubic centimetres. It also returns the Boltzmann constant in joules per kelvin and in electronvolts per kelvin, the elementary charge used to convert those units, a unit string m^-3, the method tag intrinsic_carrier_concentration, and a short formula reminder. There is no table of named materials and no doping model: you supply N_c, N_v, E_g, and T, and the engine either builds a finite non-negative n_i or rejects the input with invalid_input. Rejected cases include missing fields, non-finite values, magnitudes above the documented ceilings, non-positive densities of states, a negative bandgap, and any temperature that is not strictly positive, because n_i equals sqrt of N_c N_v times exp of minus E_g over two k_B T is undefined when the thermal energy vanishes or changes sign.

How N_c, N_v, bandgap and temperature are read and how n_i stays reproducible

N_c and N_v must likewise be strictly positive, because a non-positive density of states is not a semiconductor band. Computation multiplies the square root of the N_c N_v product by Math.exp of minus E_g over two k_B T, using the exact SI 2019 Boltzmann constant divided by the exact elementary charge so the exponent is dimensionless when E_g is in electronvolts. The preferred fields are nc for the conduction-band effective density of states in inverse cubic metres, nv for the valence-band effective density of states in inverse cubic metres, bandgap for E_g in electronvolts, and temperature for the absolute temperature in kelvin, but aliases Nc, n_c, nc_m3, and conduction_density are accepted for nc; Nv, n_v, nv_m3, and valence_density for nv; eg, Eg, eg_ev, bandgap_ev, and energy_gap for bandgap; and T, t, temperature_k, and temp for temperature, so spreadsheets, query strings, and typed forms can reuse the same contract. Optional leading plus signs and scientific notation on numeric strings are allowed when they parse as finite decimals; embedded spaces, hex prefixes, and non-numeric tokens are rejected with a clear message so a bad cell does not become a wrong n_i. Temperature must be strictly positive: if temperature is zero, negative, or negative zero, the request fails with invalid_input because intrinsic carrier concentration is undefined for a non-positive thermal energy. Bandgap may be zero, in which case n_i reduces to the geometric mean of N_c and N_v, but a negative gap is rejected. Pair the free browser run on this page with the priced API when you need the identical mathematical result inside an automated pipeline without re-implementing the Boltzmann n_i formula yourself, and keep densities in inverse cubic metres, bandgap in electronvolts, and temperature in kelvin so the published concentration fields stay in m^-3 without a hidden unit conversion from centimetre-gram-second textbooks.

Where intrinsic carrier concentration fits in study, process, and software

Teachers can pre-generate answer keys for modest densities of states and bandgaps without trusting opaque calculator apps that silently switch from inverse cubic metres to inverse cubic centimetres or drop scientific notation. Product and education tools use the formula when a learner types the four inputs and the UI must show the concentration in m^-3 next to the constants that produced it. Students meet n_i when a solid-state course moves from isolated atoms to energy bands, when a contest problem asks for the intrinsic concentration of silicon, germanium, or gallium arsenide from tabulated N_c, N_v, and E_g at 300 K, or when they compare how n_i explodes with temperature because of the exponential Boltzmann factor. Device engineers use n_i to seed charge-neutrality equations, to estimate ni squared for pn-junction law-of-mass-action checks, and to see how a 20 kelvin process-temperature swing moves the intrinsic population before doping terms dominate. Developers call the same contract from scripts to seed deterministic test vectors for compact models, to normalize user-entered N_c, N_v, E_g, and T before a band-diagram demo, or to satisfy programming-challenge statements that demand n_i rather than a hand-waved 1.5 times 10 to the 10 per cubic centimetre shortcut with undocumented material assumptions. Process notebooks compare n_i at anneal temperature versus room temperature for the same bandgap. On this page the work runs entirely in your browser; through the API each successful lookup costs $0.002, failed validation is not charged, and nothing is stored after the response returns. That split — free interactive exploration and a priced, identical API — matches the rest of the KIT tier-A catalog and lets you move from a classroom demo to an automated pipeline without changing the mathematical result. Pair it with Hall-coefficient or Debye-length tools when you need related semiconductor or plasma scales, and with other physics endpoints when you are building a small lab of free, deterministic science helpers.

Homework and solid-state table checks

Compute n_i from textbook N_c, N_v, E_g and T for silicon, germanium or GaAs and verify the intrinsic concentration before pn-junction or mass-action problems.

Deterministic test fixtures

Generate reproducible intrinsic carrier concentrations for unit tests, property checks, and CI assertions on compact models and device notebooks.

Education tools and process notes

Normalize user-entered densities of states, bandgap and temperature into n_i for interactive lessons, band-diagram demos, and process-temperature sweeps.

How is n_i defined here?

For conduction-band and valence-band effective densities of states N_c and N_v, bandgap E_g and temperature T, n_i = sqrt(N_c N_v) exp(-E_g / (2 k_B T)) with k_B = 1.380649×10⁻²³ J/K (exact SI 2019). Enter N_c and N_v in m^-3, E_g in eV and T in kelvin. The SI unit of n_i is m^-3; ni_cm3 is the same density in cm^-3.

Is this the same as a doped carrier concentration or a Fermi-level solver?

No. This tool returns only the undoped Boltzmann n_i from N_c, N_v, E_g and T. It does not apply charge neutrality with donor or acceptor densities, and it does not solve for the Fermi level.

Read the full KIT documentation →