{
  "node": {
    "id": "block:discharge",
    "type": "Block",
    "label": "Discharge",
    "properties": {
      "id": "discharge",
      "name": "Discharge",
      "kind": "protocol",
      "summary": "Apply a discharge segment in a Battery Test Protocol.",
      "behavior": "CC mode commands positive a amperes and CP mode positive w watts; direction is supplied by the step kind. Duration is an exact multiple of dtS. An optional until condition stops at an observed sample.",
      "ports": [],
      "parameters": [
        {
          "key": "mode",
          "label": "mode",
          "unit": "cc or cp",
          "description": "Discharge control mode."
        },
        {
          "key": "a",
          "label": "a",
          "unit": "A",
          "description": "Positive CC current magnitude."
        },
        {
          "key": "w",
          "label": "w",
          "unit": "W",
          "description": "Positive CP power magnitude."
        },
        {
          "key": "s",
          "label": "s",
          "unit": "s",
          "description": "Positive programmed duration."
        }
      ],
      "equations": [],
      "example": {
        "title": "Repeat charge/discharge",
        "text": "Twenty 50%-depth discharges give ten discharge-equivalent full cycles at fixed nominal capacity.",
        "url": "https://design.lemonergy.com/",
        "label": "Open Design → Protocol bench"
      },
      "limits": [
        "Scheduling cycles does not supply calibrated degradation or physical lifetime evidence.",
        "This simulated screen is not abuse testing or proof that the battery or protection system is safe.",
        "Protocol dtS is 1e-6 to 60 s. CC and CP segments cannot share one protocol; CCCV charge must stand alone. Protocol samples use discharge-positive iPack."
      ],
      "evidence": [
        "js/test-protocol.js"
      ],
      "caseIds": [
        "cycle-protocol",
        "bounded-screen"
      ],
      "type": "discharge",
      "implementationId": "discharge",
      "url": "https://lemonergy.com/learn/glossary/blocks/discharge/",
      "documentationUrl": "https://lemonergy.com/learn/glossary/blocks/discharge/",
      "sourceFile": "block-library.json",
      "sourceRepository": "battery-design",
      "sourceRevision": "ef9802329b75bc15bb96885f8ed5d49425106696",
      "reviewed": "2026-10-27"
    }
  },
  "incoming": [
    {
      "id": "edge:usesBlock/bounded-screen/0",
      "type": "usesBlock",
      "source": "workflow:bounded-screen",
      "target": "block:discharge",
      "properties": {
        "sourceFile": "wiki-blocks.json",
        "position": 0,
        "name": "Discharge with ending condition",
        "type": "discharge",
        "role": "Stops at threshold",
        "settings": [
          "mode: cc",
          "until: tC or vCell",
          "Maximum duration"
        ]
      }
    },
    {
      "id": "edge:usesBlock/cycle-protocol/1",
      "type": "usesBlock",
      "source": "workflow:cycle-protocol",
      "target": "block:discharge",
      "properties": {
        "sourceFile": "wiki-blocks.json",
        "position": 1,
        "name": "Discharge",
        "type": "discharge",
        "role": "Removes charge",
        "settings": [
          "mode: cc",
          "a / s"
        ]
      }
    }
  ],
  "neighbors": [
    {
      "id": "workflow:bounded-screen",
      "type": "Workflow",
      "label": "Stop at a declared limit",
      "properties": {
        "id": "bounded-screen",
        "title": "Stop at a declared limit",
        "kind": "protocol",
        "summary": "A discharge can end at temperature or voltage thresholds.",
        "steps": [
          "Open Bounded discharge screening.",
          "Inspect endings and the reported stop reason."
        ],
        "example": "The template uses 30 A, 1800 s maximum, 45 °C and a 3.0 V cell floor to illustrate stopping.",
        "observe": "A threshold can end the run early.",
        "limits": "This simulated screen is not abuse testing or proof that the battery or protection system is safe.",
        "url": "https://design.lemonergy.com/",
        "label": "Open Design → Protocol bench",
        "evidence": [
          "js/test-protocol.js"
        ]
      }
    },
    {
      "id": "workflow:cycle-protocol",
      "type": "Workflow",
      "label": "Repeat charge/discharge",
      "properties": {
        "id": "cycle-protocol",
        "title": "Repeat charge/discharge",
        "kind": "protocol",
        "summary": "Cycle aging block repeats charge, discharge and rest.",
        "steps": [
          "Open Cycle aging block.",
          "Review currents and rests; compare throughput."
        ],
        "example": "Twenty 50%-depth discharges give ten discharge-equivalent full cycles at fixed nominal capacity.",
        "observe": "Cycle count differs from throughput.",
        "limits": "Scheduling cycles does not supply calibrated degradation or physical lifetime evidence.",
        "url": "https://design.lemonergy.com/",
        "label": "Open Design → Protocol bench",
        "evidence": [
          "js/test-protocol.js"
        ]
      }
    }
  ]
}
