{
  "node": {
    "id": "term:specific-heat-capacity",
    "type": "Term",
    "label": "Specific heat capacity",
    "properties": {
      "id": "specific-heat-capacity",
      "name": "Specific heat capacity",
      "abbr": "cₚ",
      "aka": [
        "heat capacity",
        "specific heat"
      ],
      "section": "topic-thermal",
      "definition": "The heat needed to raise one kilogram of a material by one kelvin; multiplied by mass it gives a body’s heat capacity in J/K. Lithium-ion cells sit near 1,000 J/(kg·K), so a 0.5 kg pouch cell absorbs about 500 J per degree — the figure a thermal model uses to turn heat into temperature rise.",
      "formula": "Q = m·cₚ·ΔT",
      "unit": "J/(kg·K)",
      "related": [
        "thermal-mass",
        "thermal-characterisation",
        "thermal-model",
        "heat-generation",
        "thermal-diffusivity"
      ],
      "example": {
        "title": "Estimate a temperature rise",
        "text": "A 0.5 kg body with cₚ = 900 J/(kg·K) requires 4500 J for a 10 K temperature rise if heat loss and phase change are neglected. The heat capacity of the whole body is 450 J/K."
      },
      "url": "https://lemonergy.com/learn/glossary/specific-heat-capacity/",
      "mentions": [
        "pouch-cell"
      ]
    }
  },
  "edges": [
    {
      "id": "edge:usesBlock/term:specific-heat-capacity/block:phase-change-mass",
      "source": "term:specific-heat-capacity",
      "target": "block:phase-change-mass",
      "type": "usesBlock",
      "properties": {
        "sourceFile": "studio-help-catalog.json",
        "scope": "Declared interface quantity or semantic operation; not a numerical validation claim"
      }
    },
    {
      "id": "edge:usesBlock/term:specific-heat-capacity/block:thermal-mass",
      "source": "term:specific-heat-capacity",
      "target": "block:thermal-mass",
      "type": "usesBlock",
      "properties": {
        "sourceFile": "studio-help-catalog.json",
        "scope": "Declared interface quantity or semantic operation; not a numerical validation claim"
      }
    },
    {
      "id": "edge:belongsTo/term:specific-heat-capacity/topic:topic-thermal",
      "source": "term:specific-heat-capacity",
      "target": "topic:topic-thermal",
      "type": "belongsTo",
      "properties": {
        "sourceFile": "terms.json"
      }
    },
    {
      "id": "edge:relatedTo/term:specific-heat-capacity/term:thermal-mass",
      "source": "term:specific-heat-capacity",
      "target": "term:thermal-mass",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:relatedTo/term:specific-heat-capacity/term:thermal-characterisation",
      "source": "term:specific-heat-capacity",
      "target": "term:thermal-characterisation",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:relatedTo/term:specific-heat-capacity/term:thermal-model",
      "source": "term:specific-heat-capacity",
      "target": "term:thermal-model",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:relatedTo/term:specific-heat-capacity/term:heat-generation",
      "source": "term:specific-heat-capacity",
      "target": "term:heat-generation",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:relatedTo/term:specific-heat-capacity/term:thermal-diffusivity",
      "source": "term:specific-heat-capacity",
      "target": "term:thermal-diffusivity",
      "type": "relatedTo",
      "properties": {
        "sourceFile": "terms.json",
        "meaning": "Related context; not a causal claim"
      }
    },
    {
      "id": "edge:mentions/specific-heat-capacity/pouch-cell",
      "source": "term:specific-heat-capacity",
      "target": "term:pouch-cell",
      "type": "mentions",
      "properties": {
        "sourceFile": "terms.json",
        "method": "build_glossary.mention_index + mentions",
        "field": "definition",
        "meaning": "Text mention; not a causal claim"
      }
    },
    {
      "id": "edge:illustratedBy/term:specific-heat-capacity/visual:thermal",
      "source": "term:specific-heat-capacity",
      "target": "visual:thermal",
      "type": "illustratedBy",
      "properties": {
        "sourceFile": "visual-pages.json"
      }
    }
  ],
  "neighbors": [
    {
      "id": "block:phase-change-mass",
      "type": "Block",
      "label": "Phase-change thermal mass",
      "properties": {
        "id": "phase-change-mass",
        "name": "Phase-change thermal mass",
        "kind": "studio",
        "summary": "Enthalpy storage with a finite linear melting interval; constant sensible heat capacity, no supercooling or hysteresis",
        "behavior": "Conserving component solved simultaneously with the connected network. Enthalpy storage with a finite linear melting interval; constant sensible heat capacity, no supercooling or hysteresis",
        "ports": [
          {
            "name": "h",
            "direction": "terminal",
            "unit": "K; W",
            "description": "thermal conserving connection; absolute temperature with balanced heat flow."
          },
          {
            "name": "temperature",
            "direction": "output",
            "unit": "K",
            "description": "Recorded temperature measurement from the conserving simulation."
          },
          {
            "name": "liquidFraction",
            "direction": "output",
            "unit": "fraction",
            "description": "Recorded liquid fraction measurement from the conserving simulation."
          },
          {
            "name": "storedEnergy",
            "direction": "output",
            "unit": "J",
            "description": "Recorded stored energy measurement from the conserving simulation."
          }
        ],
        "parameters": [
          {
            "key": "massKg",
            "label": "Mass",
            "unit": "kg",
            "default": 1,
            "description": "Material mass that contributes sensible and, where enabled, latent heat storage.",
            "min": 1e-09,
            "max": 1000000000
          },
          {
            "key": "specificHeatJkgK",
            "label": "Specific heat capacity",
            "unit": "J/(kg K)",
            "default": 2000,
            "description": "Sensible heat required per unit mass and kelvin.",
            "min": 1e-06,
            "max": 1000000000
          },
          {
            "key": "latentHeatJkg",
            "label": "Latent heat",
            "unit": "J/kg",
            "default": 200000,
            "description": "Energy per unit mass stored while the liquid fraction changes from zero to one.",
            "min": 0,
            "max": 1000000000
          },
          {
            "key": "solidusK",
            "label": "Solidus temperature",
            "unit": "K",
            "default": 330,
            "description": "Temperature at which melting begins in the finite transition interval.",
            "min": 0,
            "max": 5000
          },
          {
            "key": "liquidusK",
            "label": "Liquidus temperature",
            "unit": "K",
            "default": 334,
            "description": "Temperature at which the model is fully liquid.",
            "min": 0,
            "max": 5000
          },
          {
            "key": "initialTemperatureK",
            "label": "Initial temperature",
            "unit": "K",
            "default": 300,
            "description": "Absolute initial temperature of the thermal storage.",
            "min": 0,
            "max": 5000
          }
        ],
        "equations": [
          "H = m cp T + m latentHeat × liquidFraction",
          "liquidFraction = clip((T − solidus)/(liquidus − solidus), 0, 1)",
          "dH/dt = Σ Q̇in"
        ],
        "example": {
          "title": "Phase-change thermal mass worked example",
          "text": "Editable first-party network. mass: specificHeatJkgK=2; mass: latentHeatJkg=100; mass: solidusK=310; mass: liquidusK=320; mass: initialTemperatureK=310; heater: heatFlowW=12. Checks below were verified in the native execution engine.",
          "url": "https://design.lemonergy.com/cosim.html?example=physical-phase-change-mass",
          "label": "Open Studio example",
          "inputs": [
            {
              "port": "massKg",
              "label": "Mass",
              "value": 1,
              "unit": "kg"
            },
            {
              "port": "specificHeatJkgK",
              "label": "Specific heat capacity",
              "value": 2,
              "unit": "J/(kg K)"
            },
            {
              "port": "latentHeatJkg",
              "label": "Latent heat",
              "value": 100,
              "unit": "J/kg"
            },
            {
              "port": "solidusK",
              "label": "Solidus temperature",
              "value": 310,
              "unit": "K"
            }
          ],
          "checks": [
            {
              "port": "mass/temperature",
              "label": "temperature",
              "atS": 1,
              "value": 311,
              "unit": "K",
              "tolerance": 0.00031100000000000273
            },
            {
              "port": "mass/liquidFraction",
              "label": "liquidFraction",
              "atS": 1,
              "value": 0.1,
              "unit": "fraction",
              "tolerance": 1.0000000000020123e-07
            },
            {
              "port": "mass/storedEnergy",
              "label": "storedEnergy",
              "atS": 1,
              "value": 12,
              "unit": "J",
              "tolerance": 1.2000000000020007e-05
            }
          ]
        },
        "limits": [
          "Enthalpy storage with a finite linear melting interval; constant sensible heat capacity, no supercooling or hysteresis",
          "Demonstration parameters are not calibrated hardware data. Singular or incompatible ideal constraints and unsupported state ranges stop the run."
        ],
        "references": [
          "physical-phase",
          "openstax-heat"
        ],
        "availability": {
          "status": "released",
          "label": "Available in Lemonergy Studio",
          "detail": "The bundled example is available in the production release verified on 28 October 2026. The parameters and examples here are synthetic teaching fixtures, not a characterized cell or a validated operating limit."
        },
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ],
        "sourceRepository": "Lemonergy Studio public contract",
        "sourceRevision": "verification-2026-10-27",
        "caseIds": [
          "native-phase-change-mass"
        ],
        "type": "phase-change-mass",
        "implementationId": "phase-change-mass",
        "url": "https://lemonergy.com/learn/glossary/blocks/phase-change-mass/",
        "documentationUrl": "https://lemonergy.com/learn/glossary/blocks/phase-change-mass/",
        "sourceFile": "block-library.json",
        "reviewed": "2026-10-27",
        "releaseEvidence": {
          "environment": "production",
          "status": "verified",
          "revision": "e76cadfc203e15eb41f3478d8b1044a5b851953d",
          "verifiedOn": "2026-10-28",
          "exampleUrls": [
            "https://design.lemonergy.com/cosim.html?example=physical-phase-change-mass"
          ]
        },
        "studioHelp": {
          "type": "phase-change-mass",
          "namespace": "physical",
          "slug": "phase-change-mass",
          "canonicalSlug": "phase-change-mass",
          "existing": true,
          "dynamic": false,
          "scene": {
            "kind": "component",
            "componentId": "reference",
            "type": "phase-change-mass",
            "name": "Phase-change thermal mass",
            "domain": "thermal",
            "family": "thermal-storage",
            "operation": "Stores sensible and latent heat across a finite melting interval; temperature and liquid fraction follow its enthalpy.",
            "mechanism": [
              "Heat exchange",
              "Sensible and latent storage",
              "Temperature and liquid fraction"
            ],
            "ports": [
              {
                "id": "h",
                "domain": "thermal",
                "kind": "conserving",
                "label": "Enthalpy-storage thermal contact",
                "net": null,
                "peers": []
              }
            ],
            "terms": [
              {
                "type": "thermal-mass",
                "label": "Thermal mass"
              },
              {
                "type": "thermal-heat-source",
                "label": "Heat flow source"
              }
            ],
            "symbol": [
              {
                "tag": "rect",
                "attrs": {
                  "x": 65,
                  "y": 10,
                  "width": 70,
                  "height": 60,
                  "rx": 3
                }
              },
              {
                "tag": "path",
                "attrs": {
                  "d": "M10 40H65M80 20V60M100 20V60M120 20V60"
                }
              }
            ],
            "selection": {},
            "commands": [],
            "outputs": [
              {
                "id": "temperature",
                "quantity": "temperature",
                "declared": true,
                "consumers": [],
                "label": "temperature",
                "unit": "K"
              },
              {
                "id": "storedEnergy",
                "quantity": "energy",
                "declared": true,
                "consumers": [],
                "label": "stored Energy",
                "unit": "J"
              },
              {
                "id": "liquidFraction",
                "quantity": "fraction",
                "declared": true,
                "consumers": [],
                "label": "liquid Fraction",
                "unit": "fraction"
              }
            ],
            "parameters": [
              {
                "id": "massKg",
                "default": 1,
                "unit": "kg",
                "min": 1e-09,
                "max": 1000000000,
                "value": 1
              },
              {
                "id": "specificHeatJkgK",
                "default": 2000,
                "unit": "J/(kg K)",
                "min": 1e-06,
                "max": 1000000000,
                "value": 2000
              },
              {
                "id": "latentHeatJkg",
                "default": 200000,
                "unit": "J/kg",
                "min": 0,
                "max": 1000000000,
                "value": 200000
              },
              {
                "id": "solidusK",
                "default": 330,
                "unit": "K",
                "min": 0,
                "max": 5000,
                "value": 330
              },
              {
                "id": "liquidusK",
                "default": 334,
                "unit": "K",
                "min": 0,
                "max": 5000,
                "value": 334
              },
              {
                "id": "initialTemperatureK",
                "default": 300,
                "unit": "K",
                "min": 0,
                "max": 5000,
                "value": 300
              }
            ]
          }
        }
      }
    },
    {
      "id": "block:thermal-mass",
      "type": "Block",
      "label": "Thermal mass",
      "properties": {
        "id": "thermal-mass",
        "name": "Thermal mass",
        "kind": "studio",
        "summary": "Constant heat capacity with conserved sensible energy",
        "behavior": "Conserving component solved simultaneously with the connected network. Constant heat capacity with conserved sensible energy",
        "ports": [
          {
            "name": "h",
            "direction": "terminal",
            "unit": "K; W",
            "description": "Thermal conserving terminal. It shares the connected node temperature and exchanges heat in watts. Incoming heat raises the body temperature according to mass × specific heat; outgoing heat lowers it. The thermal mass does not generate heat by itself."
          },
          {
            "name": "temperature",
            "direction": "output",
            "unit": "K",
            "description": "Recorded temperature measurement from the conserving simulation."
          },
          {
            "name": "storedEnergy",
            "direction": "output",
            "unit": "J",
            "description": "Recorded stored energy measurement from the conserving simulation."
          }
        ],
        "parameters": [
          {
            "key": "massKg",
            "label": "Mass",
            "unit": "kg",
            "default": 1,
            "description": "Material mass that contributes sensible and, where enabled, latent heat storage.",
            "min": 1e-09,
            "max": 1000000000
          },
          {
            "key": "specificHeatJkgK",
            "label": "Specific heat capacity",
            "unit": "J/(kg K)",
            "default": 1000,
            "description": "Sensible heat required per unit mass and kelvin.",
            "min": 1e-06,
            "max": 1000000000
          },
          {
            "key": "initialTemperatureK",
            "label": "Initial temperature",
            "unit": "K",
            "default": 300,
            "description": "Absolute initial temperature of the thermal storage.",
            "min": 0,
            "max": 5000
          }
        ],
        "equations": [
          "m cp dT/dt = Σ Q̇in"
        ],
        "example": {
          "title": "Thermal mass worked example",
          "text": "Editable first-party network. heater: heatFlowW=100. Checks below were verified in the native execution engine.",
          "url": "https://design.lemonergy.com/cosim.html?example=physical-thermal-mass",
          "label": "Open Studio example",
          "inputs": [
            {
              "port": "massKg",
              "label": "Mass",
              "value": 1,
              "unit": "kg"
            },
            {
              "port": "specificHeatJkgK",
              "label": "Specific heat capacity",
              "value": 1000,
              "unit": "J/(kg K)"
            },
            {
              "port": "initialTemperatureK",
              "label": "Initial temperature",
              "value": 300,
              "unit": "K"
            }
          ],
          "checks": [
            {
              "port": "mass/temperature",
              "label": "temperature",
              "atS": 1,
              "value": 300.1,
              "unit": "K",
              "tolerance": 0.0003001000000000015
            },
            {
              "port": "mass/storedEnergy",
              "label": "storedEnergy",
              "atS": 1,
              "value": 100,
              "unit": "J",
              "tolerance": 0.00010000000000159174
            }
          ]
        },
        "limits": [
          "Constant heat capacity with conserved sensible energy",
          "Demonstration parameters are not calibrated hardware data. Singular or incompatible ideal constraints and unsupported state ranges stop the run."
        ],
        "references": [
          "openstax-heat",
          "physical-enthalpy"
        ],
        "availability": {
          "status": "released",
          "label": "Available in Lemonergy Studio",
          "detail": "The bundled example is available in the production release verified on 28 October 2026. The parameters and examples here are synthetic teaching fixtures, not a characterized cell or a validated operating limit."
        },
        "evidence": [
          "docs/glossary/native-block-verification.json"
        ],
        "sourceRepository": "Lemonergy Studio public contract",
        "sourceRevision": "verification-2026-10-27",
        "caseIds": [
          "native-thermal-mass",
          "native-edge-cooling-plate",
          "native-parallel-cooling-plate",
          "native-u-cooling-plate"
        ],
        "connectionGuide": {
          "kind": "thermal-mass",
          "title": "A load is a body with stored heat",
          "summary": "In the plate example, load1 to load4 are passive thermal masses. Their temperatures change as heat crosses their h terminals.",
          "concepts": [
            {
              "id": "thermal-mass",
              "label": "Thermal mass"
            },
            {
              "id": "heat-transfer-modes",
              "label": "Heat transfer"
            },
            {
              "id": "thermal-model",
              "label": "Thermal model"
            },
            {
              "id": "specific-heat-capacity",
              "label": "Specific heat capacity"
            }
          ]
        },
        "type": "thermal-mass",
        "implementationId": "thermal-mass",
        "url": "https://lemonergy.com/learn/glossary/blocks/thermal-mass/",
        "documentationUrl": "https://lemonergy.com/learn/glossary/blocks/thermal-mass/",
        "sourceFile": "block-library.json",
        "reviewed": "2026-10-27",
        "releaseEvidence": {
          "environment": "production",
          "status": "verified",
          "revision": "e76cadfc203e15eb41f3478d8b1044a5b851953d",
          "verifiedOn": "2026-10-28",
          "exampleUrls": [
            "https://design.lemonergy.com/cosim.html?example=physical-thermal-mass"
          ]
        },
        "studioHelp": {
          "type": "thermal-mass",
          "namespace": "physical",
          "slug": "thermal-mass",
          "canonicalSlug": "thermal-mass",
          "existing": true,
          "dynamic": false,
          "scene": {
            "kind": "component",
            "componentId": "reference",
            "type": "thermal-mass",
            "name": "Thermal mass",
            "domain": "thermal",
            "family": "thermal-storage",
            "operation": "Stores sensible heat; net heat input changes temperature according to mass times specific heat.",
            "mechanism": [
              "Net heat flow",
              "Heat capacity",
              "Temperature"
            ],
            "ports": [
              {
                "id": "h",
                "domain": "thermal",
                "kind": "conserving",
                "label": "Stored-heat body contact",
                "net": null,
                "peers": []
              }
            ],
            "terms": [
              {
                "type": "thermal-heat-source",
                "label": "Heat flow source"
              },
              {
                "type": "thermal-conductor",
                "label": "Thermal conductor"
              }
            ],
            "symbol": [
              {
                "tag": "rect",
                "attrs": {
                  "x": 65,
                  "y": 10,
                  "width": 70,
                  "height": 60,
                  "rx": 3
                }
              },
              {
                "tag": "path",
                "attrs": {
                  "d": "M10 40H65M80 20V60M100 20V60M120 20V60"
                }
              }
            ],
            "selection": {},
            "commands": [],
            "outputs": [
              {
                "id": "temperature",
                "quantity": "temperature",
                "declared": true,
                "consumers": [],
                "label": "temperature",
                "unit": "K"
              },
              {
                "id": "storedEnergy",
                "quantity": "energy",
                "declared": true,
                "consumers": [],
                "label": "stored Energy",
                "unit": "J"
              }
            ],
            "parameters": [
              {
                "id": "massKg",
                "default": 1,
                "unit": "kg",
                "min": 1e-09,
                "max": 1000000000,
                "value": 1
              },
              {
                "id": "specificHeatJkgK",
                "default": 1000,
                "unit": "J/(kg K)",
                "min": 1e-06,
                "max": 1000000000,
                "value": 1000
              },
              {
                "id": "initialTemperatureK",
                "default": 300,
                "unit": "K",
                "min": 0,
                "max": 5000,
                "value": 300
              }
            ]
          }
        }
      }
    },
    {
      "id": "topic:topic-thermal",
      "type": "Topic",
      "label": "Thermal management and heat transfer",
      "properties": {
        "id": "topic-thermal",
        "name": "Thermal management and heat transfer",
        "lede": "How heat is made, moved and removed in cells and packs, and the hardware that keeps a battery at the right temperature.",
        "context": "Select spatial detail for the question.",
        "example": "Equal total heat in different layouts can produce different gradients. Average temperature can miss a hot spot.",
        "lesson_url": "https://lemonergy.com/learn/fundamentals/battery-aging/",
        "lesson_label": "Open temperature and aging"
      }
    },
    {
      "id": "term:thermal-mass",
      "type": "Term",
      "label": "Thermal mass",
      "properties": {
        "id": "thermal-mass",
        "name": "Thermal mass",
        "aka": [
          "thermal inertia",
          "thermal time constant"
        ],
        "section": "topic-thermal",
        "definition": "A body’s total heat capacity seen as a buffer against temperature change. A 500 kg pack at about 1 kJ/(kg·K) stores roughly 500 kJ per kelvin, so 10 kW of uncooled heat warms it only about 1.2 K a minute. Together with the thermal resistance to the coolant it sets the pack’s thermal time constant.",
        "formula": "τ = m·cₚ·R_th",
        "related": [
          "specific-heat-capacity",
          "thermal-resistance",
          "thermal-model",
          "phase-change-material",
          "thermal-management"
        ],
        "example": {
          "title": "Calculate a thermal time constant",
          "text": "With mass 0.5 kg, cₚ = 900 J/(kg·K) and R_th = 2 K/W, the lumped thermal time constant is 900 s, or 15 min. The calculation assumes a nearly uniform internal temperature."
        },
        "url": "https://lemonergy.com/learn/glossary/thermal-mass/",
        "mentions": []
      }
    },
    {
      "id": "term:thermal-characterisation",
      "type": "Term",
      "label": "Thermal characterisation",
      "properties": {
        "id": "thermal-characterisation",
        "name": "Thermal characterisation",
        "aka": [
          "heat capacity test",
          "entropy test"
        ],
        "section": "topic-testing",
        "definition": "Measuring the thermal properties a model needs: specific heat capacity in a calorimeter, thermal conductivity through and along the layers, the entropy coefficient from OCV against temperature, and heat generation under load. Without them a thermal model is a guess.",
        "related": [
          "heat-generation",
          "entropy-coefficient",
          "thermal-model",
          "accelerating-rate-calorimetry"
        ],
        "url": "https://lemonergy.com/learn/glossary/thermal-characterisation/",
        "mentions": [
          "open-circuit-voltage",
          "thermal-conductivity",
          "specific-heat-capacity"
        ]
      }
    },
    {
      "id": "term:thermal-model",
      "type": "Term",
      "label": "Thermal model",
      "properties": {
        "id": "thermal-model",
        "name": "Thermal model",
        "aka": [
          "lumped thermal model"
        ],
        "section": "topic-thermal",
        "definition": "A model of cell temperature: at its simplest one thermal mass with heat generation inside and convection outside, at its most detailed a 3D simulation of the pack. Temperature feeds back into every rate, so electrical and thermal models are usually solved together.",
        "related": [
          "heat-generation",
          "thermal-management",
          "arrhenius",
          "newman-model",
          "thermal-characterisation"
        ],
        "url": "https://lemonergy.com/learn/glossary/thermal-model/",
        "mentions": [
          "thermal-mass",
          "heat-transfer-modes"
        ]
      }
    },
    {
      "id": "term:heat-generation",
      "type": "Term",
      "label": "Heat generation",
      "properties": {
        "id": "heat-generation",
        "name": "Heat generation",
        "aka": [
          "Bernardi equation"
        ],
        "section": "topic-thermal",
        "definition": "The heat a cell produces in operation: an irreversible part equal to current times overpotential, and a reversible part from the entropy change, I·T·dE/dT. The Bernardi equation sums them and feeds every thermal model.",
        "formula": "q = I(V − E_OCV) + I·T·(dE/dT)",
        "unit": "W",
        "related": [
          "entropy-coefficient",
          "internal-resistance",
          "thermal-model",
          "thermal-management",
          "exothermic"
        ],
        "example": {
          "title": "Keep reversible and irreversible heat separate",
          "text": "With charging current +5 A and terminal voltage 0.10 V above OCV, the irreversible term is 0.50 W. At 300 K with dE/dT = +0.1 mV/K, the reversible contribution is +0.15 W, giving 0.65 W under this sign convention."
        },
        "url": "https://lemonergy.com/learn/glossary/heat-generation/",
        "mentions": [
          "overpotential"
        ]
      }
    },
    {
      "id": "term:thermal-diffusivity",
      "type": "Term",
      "label": "Thermal diffusivity",
      "properties": {
        "id": "thermal-diffusivity",
        "name": "Thermal diffusivity",
        "abbr": "α",
        "section": "topic-thermal",
        "definition": "How quickly temperature evens out inside a material: thermal conductivity divided by density times specific heat. Heat spreads a distance L in roughly L²/α, so crossing a 10 mm cell at about 0.2 mm²/s through-plane takes several minutes, while aluminium, near 100 mm²/s, equalises almost at once.",
        "formula": "α = k / (ρ·cₚ)",
        "unit": "m²/s",
        "related": [
          "thermal-conductivity",
          "specific-heat-capacity",
          "thermal-gradient",
          "biot-number",
          "thermal-model"
        ],
        "example": {
          "title": "Compare heat-spreading rates",
          "text": "For an illustrative material with k = 1 W/(m·K), density 2000 kg/m³ and cₚ = 1000 J/(kg·K), α = 5×10⁻⁷ m²/s. A higher α means a temperature disturbance spreads faster for the same geometry."
        },
        "url": "https://lemonergy.com/learn/glossary/thermal-diffusivity/",
        "mentions": []
      }
    },
    {
      "id": "term:pouch-cell",
      "type": "Term",
      "label": "Pouch cell",
      "properties": {
        "id": "pouch-cell",
        "name": "Pouch cell",
        "aka": [
          "lithium polymer cell",
          "LiPo"
        ],
        "section": "topic-chemistries",
        "definition": "A cell sealed in a flexible bag of aluminium laminated with plastic, holding stacked electrode sheets in larger cells or a flattened wound roll in many small ones. It is light and easy to cool, but needs outside support and can visibly swell if gas forms inside.",
        "related": [
          "pouch-foil",
          "stacking",
          "swelling",
          "degassing",
          "prismatic-cell"
        ],
        "lesson": "fundamentals/cell-production/#formats",
        "example": {
          "title": "Include mechanical support",
          "text": "A pouch encloses layered electrodes. Support provided by the module is part of the complete design, separate from the active layers."
        },
        "url": "https://lemonergy.com/learn/glossary/pouch-cell/",
        "mentions": [
          "electrode"
        ]
      }
    },
    {
      "id": "visual:thermal",
      "type": "Visual",
      "label": "Heat approaches an equilibrium",
      "properties": {
        "title": "Heat approaches an equilibrium",
        "summary": "Thermal resistance sets the steady temperature rise; thermal mass sets the response time.",
        "readout": "Steady rise: 10 K. Time constant: 8.333 min.",
        "formula": "ΔT = P R_th [1 − exp(−t / (C_th R_th))]",
        "note": "C_th = 500 J/K, fixed ambient and heat input, uniform temperature.",
        "software": {
          "status": "reference",
          "label": "Reference concept",
          "body": "Analysis → Charge session supports optional lumped thermal behavior. This independent explanation uses a 500 J/K thermal mass and constant heat input; it is not an application simulation result.",
          "href": "https://design.lemonergy.com/"
        },
        "html": "<figure class=\"visual-figure\"><figcaption>Temperature above ambient</figcaption><svg class=\"visual-chart\" viewBox=\"0 0 360 330\" role=\"img\" aria-labelledby=\"static-thermal-0-title static-thermal-0-desc\"><title id=\"static-thermal-0-title\">Temperature above ambient</title><desc id=\"static-thermal-0-desc\">Time (min) versus Temperature rise (K). Lumped response. Interpretation follows the graphs.</desc><path d=\"M74,238h268\" stroke=\"currentColor\" opacity=\".13\"/><text x=\"64\" y=\"242\" text-anchor=\"end\" font-size=\"13\" fill=\"currentColor\">0</text><text x=\"74\" y=\"265\" text-anchor=\"middle\" font-size=\"13\" fill=\"currentColor\">0</text><path d=\"M74,188.5h268\" stroke=\"currentColor\" opacity=\".13\"/><text x=\"64\" y=\"192.5\" text-anchor=\"end\" font-size=\"13\" fill=\"currentColor\">15</text><text x=\"141\" y=\"265\" text-anchor=\"middle\" font-size=\"13\" fill=\"currentColor\">15</text><path d=\"M74,139h268\" stroke=\"currentColor\" opacity=\".13\"/><text x=\"64\" y=\"143\" text-anchor=\"end\" font-size=\"13\" fill=\"currentColor\">30</text><text x=\"208\" y=\"265\" text-anchor=\"middle\" font-size=\"13\" fill=\"currentColor\">30</text><path d=\"M74,89.5h268\" stroke=\"currentColor\" opacity=\".13\"/><text x=\"64\" y=\"93.5\" text-anchor=\"end\" font-size=\"13\" fill=\"currentColor\">45</text><text x=\"275\" y=\"265\" text-anchor=\"middle\" font-size=\"13\" fill=\"currentColor\">45</text><path d=\"M74,40h268\" stroke=\"currentColor\" opacity=\".13\"/><text x=\"64\" y=\"44\" text-anchor=\"end\" font-size=\"13\" fill=\"currentColor\">60</text><text x=\"342\" y=\"265\" text-anchor=\"middle\" font-size=\"13\" fill=\"currentColor\">60</text><path d=\"M74,40v198h268\" fill=\"none\" stroke=\"currentColor\" opacity=\".3\"/><polyline fill=\"none\" stroke=\"#a45b2b\" stroke-width=\"2.8\" points=\"74.00,238.00 76.23,236.08 78.47,234.27 80.70,232.56 82.93,230.96 85.17,229.45 87.40,228.02 89.63,226.68 91.87,225.42 94.10,224.23 96.33,223.11 98.57,222.06 100.80,221.06 103.03,220.13 105.27,219.25 107.50,218.42 109.73,217.64 111.97,216.90 114.20,216.21 116.43,215.55 118.67,214.94 120.90,214.36 123.13,213.82 125.37,213.30 127.60,212.82 129.83,212.36 132.07,211.93 134.30,211.53 136.53,211.15 138.77,210.79 141.00,210.45 143.23,210.14 145.47,209.84 147.70,209.56 149.93,209.29 152.17,209.04 154.40,208.81 156.63,208.58 158.87,208.38 161.10,208.18 163.33,207.99 165.57,207.82 167.80,207.66 170.03,207.50 172.27,207.35 174.50,207.22 176.73,207.09 178.97,206.97 181.20,206.85 183.43,206.74 185.67,206.64 187.90,206.55 190.13,206.46 192.37,206.37 194.60,206.29 196.83,206.22 199.07,206.15 201.30,206.08 203.53,206.02 205.77,205.96 208.00,205.90 210.23,205.85 212.47,205.80 214.70,205.75 216.93,205.71 219.17,205.67 221.40,205.63 223.63,205.59 225.87,205.56 228.10,205.53 230.33,205.49 232.57,205.47 234.80,205.44 237.03,205.41 239.27,205.39 241.50,205.37 243.73,205.35 245.97,205.33 248.20,205.31 250.43,205.29 252.67,205.27 254.90,205.26 257.13,205.24 259.37,205.23 261.60,205.21 263.83,205.20 266.07,205.19 268.30,205.18 270.53,205.17 272.77,205.16 275.00,205.15 277.23,205.14 279.47,205.13 281.70,205.12 283.93,205.12 286.17,205.11 288.40,205.10 290.63,205.10 292.87,205.09 295.10,205.09 297.33,205.08 299.57,205.08 301.80,205.07 304.03,205.07 306.27,205.06 308.50,205.06 310.73,205.06 312.97,205.05 315.20,205.05 317.43,205.05 319.67,205.04 321.90,205.04 324.13,205.04 326.37,205.04 328.60,205.04 330.83,205.03 333.07,205.03 335.30,205.03 337.53,205.03 339.77,205.03 342.00,205.02\"/><text transform=\"translate(208 303)\" text-anchor=\"middle\" font-size=\"14\" fill=\"currentColor\"><tspan x=\"0\" dy=\"0\">Time (min)</tspan></text><text transform=\"translate(20 139) rotate(-90)\" text-anchor=\"middle\" font-size=\"14\" fill=\"currentColor\"><tspan x=\"0\" dy=\"0\">Temperature rise (K)</tspan></text></svg><div class=\"visual-legend\"><span><i style=\"background:#a45b2b\"></i>Lumped response</span></div></figure>"
      }
    }
  ]
}
