This tool performs static and transient thermal finite element analysis (FEA) of a MEMS bolometer pixel structure directly in the browser, with no installation required. It is intended for rapid estimation of thermal conductance G, thermal capacitance C, and the thermal time constant τ = C/G of a suspended membrane pixel.
The geometry represents a square pixel membrane (block A) supported by four legs (blocks B–E), with a thin VOx sensing film (F) on top of the membrane and NiCr interconnect films (G–J) on the legs. Heat is generated uniformly over the membrane+film volume and conducted out through the legs to fixed-temperature anchors at both ends.
The modeled structure consists of ten rectangular blocks defined in Cartesian coordinates, all dimensions in micrometers:
| Block | Material | Role |
|---|---|---|
| A | PECVD SiN | Square pixel membrane (substrate layer) |
| B, C | PECVD SiN | Bottom legs connecting membrane to anchors |
| D, E | PECVD SiN | Top legs connecting membrane to anchors |
| F | VOx (sputtered) | Sensing film on membrane surface |
| G, H, I, J | NiCr (sputtered) | Interconnect/resistor film on legs |
Boundary conditions: all nodes at x = −d and x = l+d (the anchor ends of both leg pairs) are fixed at 20 °C. No convection or radiation is included.
The solver uses 8-node hexahedral (Hex8) elements with full 2×2×2 Gauss quadrature for both stiffness and mass matrix assembly. Each rectangular block is meshed with 10 divisions along the in-plane directions (x and y for the square, length direction for the legs) and 2 divisions through the thickness (z), giving a total of 2,000 elements and approximately 2,800 nodes for the default geometry. Adjacent blocks share nodes at their common faces (conforming mesh), ensuring continuity of temperature across material interfaces.
The steady-state heat equation is solved:
The weak form yields the global stiffness system K u = f, where u is the nodal temperature rise above the boundary condition temperature (20 °C), and f is the heat source vector. Heat is distributed uniformly by volume over the membrane region (blocks A and F combined).
The linear system is solved with a Jacobi-preconditioned conjugate gradient (PCG) method. Dirichlet boundary conditions are applied by row/column elimination, and the system is formulated in terms of temperature rise (shifted coordinates) so that numerical precision is maintained regardless of the absolute boundary temperature value.
All computations use P = 1 W internally. The displayed temperatures are then scaled by the user-specified total input power, exploiting the linearity of the problem. Thermal conductance is reported as:
where umax is the maximum temperature rise per unit watt.
The time-dependent heat equation is integrated using the implicit (backward) Euler method:
where M is the lumped thermal mass matrix assembled from nodal heat capacity contributions (ρ cp per material). Implicit Euler is unconditionally stable, so time steps are not constrained by a stability limit; only accuracy determines the step size.
The solver runs in two phases. In the first phase it takes 100 steps of 1 ms each to estimate the thermal time constant τ. In the second phase it refines the time step to τ/40 and integrates out to 6τ, producing a smooth time–temperature curve. A new PCG solve is performed at each time step, but the system matrix (M/Δt + K) is assembled once per phase and reused.
The thermal time constant, thermal capacitance, and steady-state temperature are extracted from the response at the probe point (l/2, l/2, ts), i.e. the center of the top surface of the membrane:
Parameters are organized into four sections. Geometry values are in micrometers. Material properties (k, ρ, cp) are entered per material; hovering over each input field shows the property name. Default values correspond to typical MEMS bolometer fabrication: PECVD SiN, sputtered VOx sensing film, and sputtered NiCr for the leg resistors.
| Section | Description |
|---|---|
| Geometry | Pixel size l, leg width w and length d, substrate thickness ts, VOx film thickness tv. All in μm. |
| Material Properties | Thermal conductivity k [W/(m·K)], density ρ [kg/m³], specific heat cp [J/(kg·K)] for each of the three materials. k affects both static and transient results; ρ and cp affect only the transient analysis. |
| Thermal Load | Total input power P [W]. The static and transient results scale linearly with this value. |
| Mesh Statistics | Shown after Generate Mesh: node count, element count, DOF, estimated K matrix non-zeros, and current JS heap usage. |
Displays the mesh with element edges (black lines) and face colors indicating material (before solving) or temperature (after solving, jet colormap). The color scale bar on the right shows the temperature range. Max Temperature and thermal conductance G are shown in the top-left overlay.
Navigation: drag to rotate, scroll to zoom, Shift+drag to pan.
Shows T vs. time at the membrane center. A red dashed vertical line marks τ, a yellow dashed horizontal line marks T∞. The header bar reports τ [ms], C [J/K], T∞ [°C], and the total simulated time tend [ms].
| Quantity | Value | Note |
|---|---|---|
| G | ~ 2–5 × 10−7 W/K | Dominated by SiN and NiCr leg conductance |
| C | ~ 3 × 10−9 J/K | Dominated by SiN membrane volume |
| τ = C/G | ~ 6–15 ms | |
| Mesh | 2000 elements, ~2800 nodes | Default geometry |
| Memory | ~10 MB JS heap | Single browser tab |