Home Examples Screenshots User manual Bluesky logo YouTube
OghmaNano Multiphysics simulation platform for optoelectronic devices and photonic systems DOWNLOAD Quick Start guide

crown_glass material model

1. Introduction

This page contains the OghmaNano material model for crown_glass (SiO2-B2O3-Na2O-K2O (borosilicate crown)).

Crown glass (low-dispersion borosilicate crown, N-BK7 archetype), passive optical medium

The model is written in Lua and provides simulation-ready material parameterisations for use within OghmaNano. For documentation, licensing, references, and information about the scope and accuracy of these models, see the material scripting documentation.

2. Lua material model


-- See end of file for copyright, licensing and documentation links.

local material = {}

-- ---------------------------------------------------------------------
-- Crown glass is a PASSIVE OPTICAL DIELECTRIC, not a semiconductor.
-- The electronic/transport entries used for the semiconductor and
-- absorber material files (band gap, electron affinity, Nc/Nv, carrier
-- mobilities, radiative/Auger/SRH recombination) have NO physical
-- meaning for an insulating optical glass with no free carriers, and
-- have therefore been removed. The amorphous glass also has no
-- crystalline lattice constant, so that entry is removed too.
--
-- What remains are the properties that actually define an optical
-- glass: refractive index, dispersion (Abbe number), the optical
-- permittivity (n^2), and bulk thermal/mechanical properties.
-- ---------------------------------------------------------------------


function material.name()
	local enabled = true

	return "crown_glass", enabled
end


function material.description()
	local enabled = true

	return "Crown glass (low-dispersion borosilicate crown, N-BK7 archetype), passive optical medium", enabled
end


function material.formula()
	local enabled = true

	-- Glasses are amorphous mixtures with no stoichiometric formula;
	-- crown glasses are broadly SiO2-B2O3 borosilicates with alkali
	-- (Na2O/K2O) modifiers.
	return "SiO2-B2O3-Na2O-K2O (borosilicate crown)", enabled
end


function material.epsilonr(state)
	-- Relative permittivity (OPTICAL)
	-- Dimensionless
	--
	-- Reference:
	-- Optical value epsilon = n_d^2 = 1.5168^2 ~ 2.301, i.e. the
	-- high-frequency permittivity relevant to electromagnetic (FDTD /
	-- ray-tracing) propagation through the glass.
	--
	-- Note: the low-frequency / DC permittivity of a borosilicate
	-- crown glass is considerably higher (~7) because of ionic and
	-- dipolar contributions. For a passive optical medium the OPTICAL
	-- value is the operative one and is returned here.

	local enabled = true
	local value = 2.301

	return value, enabled
end


function material.thermal_conductivity(state)
	-- Thermal conductivity
	-- Units: W m^-1 K^-1
	--
	-- Reference:
	-- SCHOTT N-BK7 datasheet, kappa ~ 1.11 W/m/K at ~300 K.

	local enabled = true
	local value = 1.11

	return value, enabled
end


function material.heat_capacity(state)
	-- Specific heat capacity
	-- Units: J kg^-1 K^-1
	--
	-- Reference:
	-- SCHOTT N-BK7 datasheet, c_p ~ 858 J/kg/K at ~300 K. Approximate.

	local enabled = true
	local value = 858.0

	return value, enabled
end


function material.density(state)
	-- Mass density
	-- Units: kg m^-3
	--
	-- Reference:
	-- SCHOTT N-BK7 datasheet, rho = 2.51 g/cm^3.

	local enabled = true
	local value = 2510.0

	return value, enabled
end


function material.print()
	local state = {
		T = 300.0,
		x = 0.0,
		y = 0.0,
		z = 0.0,
		photon_density = 0.0,
	}

	print(string.format("Material:               %s", material.name()))
	print(string.format("Description:            %s", material.description()))
	print(string.format("Formula:                %s", material.formula()))
	print(string.format("Temperature:            %.2f K", state.T))
	print(string.format("Position:               %.6e, %.6e, %.6e m", state.x, state.y, state.z))

	print(string.format("Optical permittivity:   %.6f", material.epsilonr(state)))

	print(string.format("Thermal conductivity:   %.6e W/m/K", material.thermal_conductivity(state)))
	print(string.format("Heat capacity:          %.6e J/kg/K", material.heat_capacity(state)))
	print(string.format("Mass density:           %.6e kg/m^3", material.density(state)))
end

return material

-- ============================================================================
-- Copyright (C) 2026 The OghmaNano Project
-- All rights reserved.
--
-- This file is part of the OghmaNano Materials Model Library.
--
-- Website:
-- https://www.oghma-nano.com
--
-- Documentation and accuracy statement:
-- https://www.oghma-nano.com/manual/material-scripts.html
--
-- These material models are provided to support scientific research and
-- semiconductor device simulation. If you find them useful, please cite
-- OghmaNano where appropriate. Please do not redistribute these files or
-- incorporate them into other software or databases without permission.
-- ============================================================================