{
  "schemaVersion": "1.0",
  "module": "B1",
  "contentVersion": "1.0.0",
  "supportLevel": "curated",
  "title": {
    "de": "Zylinder- und Kugelschalen unter Innendruck",
    "en": "Cylindrical and spherical shells under internal pressure"
  },
  "summary": {
    "de": "Auslegung und Nachrechnung dünnwandiger Zylinder- und Kugelschalen nach AD 2000-Merkblatt B1.",
    "en": "Design and verification of thin-walled cylindrical and spherical shells according to AD 2000-Merkblatt B1."
  },
  "standards": [
    {
      "name": "AD 2000-Merkblatt B1",
      "edition": "2000-10",
      "status": "verify-project-edition"
    }
  ],
  "scope": {
    "included": [
      "cylindrical shells under internal pressure",
      "spherical shells under internal pressure",
      "required wall thickness",
      "allowable pressure",
      "volumes"
    ],
    "excluded": [
      "thick-walled cylinders outside B1 applicability",
      "opening reinforcement proof",
      "external pressure and buckling"
    ],
    "relatedModules": [
      "B0",
      "B9",
      "B10"
    ]
  },
  "variants": [
    {
      "key": "cylinder",
      "bauform": 1,
      "labels": {
        "de": "Zylinderschale",
        "en": "Cylindrical shell"
      },
      "requires": [
        2,
        24,
        3,
        16,
        4,
        17,
        6,
        9,
        10
      ]
    },
    {
      "key": "sphere",
      "bauform": 2,
      "labels": {
        "de": "Kugelschale",
        "en": "Spherical shell"
      },
      "requires": [
        2,
        24,
        3,
        16,
        4,
        17,
        6,
        9
      ]
    }
  ],
  "variables": [
    {
      "varNr": 2,
      "key": "outsideDiameter",
      "label": {
        "de": "Außendurchmesser Da",
        "en": "Outside diameter Da"
      },
      "description": {
        "de": "Außendurchmesser der betrachteten Schale.",
        "en": "Outside diameter of the shell."
      },
      "unit": "mm",
      "kind": "number",
      "role": "input",
      "aliases": [
        "Da",
        "diameter",
        "Aussendurchmesser"
      ],
      "constraints": {
        "exclusiveMinimum": 0
      }
    },
    {
      "varNr": 24,
      "key": "temperature",
      "label": {
        "de": "Berechnungstemperatur T",
        "en": "Calculation temperature T"
      },
      "description": {
        "de": "Temperatur für den Betriebsfall und die Werkstoffkennwerte K.",
        "en": "Temperature for the operating case and material strength K."
      },
      "unit": "degC",
      "kind": "number",
      "role": "input",
      "aliases": [
        "T",
        "temperature",
        "Temperatur"
      ],
      "constraints": {}
    },
    {
      "varNr": 3,
      "key": "pressure",
      "label": {
        "de": "Berechnungsdruck p",
        "en": "Calculation pressure p"
      },
      "description": {
        "de": "Berechnungsdruck für den Betriebsfall. Die B1-Schnittstelle erwartet bar.",
        "en": "Calculation pressure for operation. The B1 interface expects bar."
      },
      "unit": "bar",
      "kind": "number",
      "role": "input",
      "aliases": [
        "p",
        "pressure",
        "Druck"
      ],
      "constraints": {
        "minimum": 0
      }
    },
    {
      "varNr": 16,
      "key": "testPressure",
      "label": {
        "de": "Prüfdruck p'",
        "en": "Test pressure p'"
      },
      "description": {
        "de": "Druck des Prüffalls in bar.",
        "en": "Pressure of the test case in bar."
      },
      "unit": "bar",
      "kind": "number",
      "role": "input",
      "aliases": [
        "pPrime",
        "testPressure",
        "Pruefdruck"
      ],
      "constraints": {
        "minimum": 0
      }
    },
    {
      "varNr": 22,
      "key": "material",
      "label": {
        "de": "Werkstoff",
        "en": "Material"
      },
      "description": {
        "de": "LV-Werkstoffauswahl. Für MCP die stabile Material-ID verwenden; Bezeichnung und K/K' über den Werkstoffserver auflösen.",
        "en": "LV material selection. MCP should use the stable material ID and resolve designation and K/K' through the material server."
      },
      "unit": "",
      "kind": "material",
      "role": "input",
      "aliases": [
        "material",
        "materialId",
        "Werkstoff",
        "WNr"
      ],
      "constraints": {
        "integer": true,
        "exclusiveMinimum": 0
      }
    },
    {
      "varNr": 6,
      "key": "weldFactor",
      "label": {
        "de": "Schweißfaktor v",
        "en": "Weld factor v"
      },
      "description": {
        "de": "Ausnutzungsgrad der Schweißnaht gemäß Prüf- und Fertigungsbedingungen.",
        "en": "Weld utilization factor according to inspection and fabrication conditions."
      },
      "unit": "-",
      "kind": "number",
      "role": "input",
      "default": 1.0,
      "aliases": [
        "v",
        "weldFactor"
      ],
      "constraints": {
        "exclusiveMinimum": 0,
        "maximum": 1
      }
    },
    {
      "varNr": 9,
      "key": "wallThickness",
      "label": {
        "de": "Ausgeführte Wanddicke se",
        "en": "Executed wall thickness se"
      },
      "description": {
        "de": "Tatsächlich vorgesehene Wanddicke; wird mit V1 verglichen.",
        "en": "Actual selected wall thickness; compared with V1."
      },
      "unit": "mm",
      "kind": "number",
      "role": "input",
      "aliases": [
        "se",
        "thickness",
        "Wanddicke"
      ],
      "constraints": {
        "exclusiveMinimum": 0
      }
    },
    {
      "varNr": 10,
      "key": "length",
      "label": {
        "de": "Länge oder Höhe L",
        "en": "Length or height L"
      },
      "description": {
        "de": "Zylinderlänge für Volumen- und Gewichtsgrößen; für Kugelschalen nicht erforderlich.",
        "en": "Cylinder length used for volume and weight values; not required for spheres."
      },
      "unit": "mm",
      "kind": "number",
      "role": "input",
      "aliases": [
        "L",
        "length",
        "Laenge"
      ],
      "constraints": {
        "exclusiveMinimum": 0
      }
    },
    {
      "varNr": 5,
      "key": "safetyFactor",
      "label": {
        "de": "Sicherheitsbeiwert S",
        "en": "Safety factor S"
      },
      "description": {
        "de": "Sicherheitsbeiwert für den Betriebsfall.",
        "en": "Safety factor for the operating case."
      },
      "unit": "-",
      "kind": "number",
      "role": "input",
      "default": 1.5,
      "aliases": [
        "S",
        "safetyFactor"
      ],
      "constraints": {
        "exclusiveMinimum": 0
      }
    },
    {
      "varNr": 15,
      "key": "testSafetyFactor",
      "label": {
        "de": "Sicherheitsbeiwert Prüfung S'",
        "en": "Test safety factor S'"
      },
      "description": {
        "de": "Sicherheitsbeiwert für den Prüffall.",
        "en": "Safety factor for the test case."
      },
      "unit": "-",
      "kind": "number",
      "role": "input",
      "default": 1.05,
      "aliases": [
        "sPrime",
        "testSafetyFactor"
      ],
      "constraints": {
        "exclusiveMinimum": 0
      }
    },
    {
      "varNr": 7,
      "key": "c1",
      "label": {
        "de": "Wanddickenzuschlag c1",
        "en": "Wall-thickness allowance c1"
      },
      "description": {
        "de": "Zuschlag für zulässige Wanddickenunterschreitung des Halbzeugs.",
        "en": "Allowance for permitted negative thickness tolerance."
      },
      "unit": "mm",
      "kind": "number",
      "role": "input",
      "default": 0.3,
      "aliases": [
        "c1"
      ],
      "constraints": {
        "minimum": 0
      }
    },
    {
      "varNr": 8,
      "key": "c2",
      "label": {
        "de": "Korrosionszuschlag c2",
        "en": "Corrosion allowance c2"
      },
      "description": {
        "de": "Projektbezogener Zuschlag für Korrosion oder Abnutzung.",
        "en": "Project-specific corrosion or wear allowance."
      },
      "unit": "mm",
      "kind": "number",
      "role": "input",
      "default": 0.0,
      "aliases": [
        "c2",
        "corrosionAllowance"
      ],
      "constraints": {
        "minimum": 0
      }
    },
    {
      "varNr": 4,
      "key": "strength",
      "label": {
        "de": "Festigkeitskennwert K",
        "en": "Strength value K"
      },
      "description": {
        "de": "Werkstoffkennwert für den Betriebsfall. Bevorzugt aus Werkstoff, Temperatur, Dicke und Regelwerk ableiten.",
        "en": "Material strength for operation. Prefer deriving it from material, temperature, thickness and rule set."
      },
      "unit": "N/mm2",
      "kind": "number",
      "role": "input",
      "aliases": [
        "K",
        "strength"
      ],
      "constraints": {
        "exclusiveMinimum": 0
      }
    },
    {
      "varNr": 17,
      "key": "testStrength",
      "label": {
        "de": "Festigkeitskennwert Prüfung K'",
        "en": "Test strength value K'"
      },
      "description": {
        "de": "Werkstoffkennwert für den Prüffall; wird vom Werkstoffserver zusammen mit K geliefert.",
        "en": "Material strength for the test case; returned by the material server together with K."
      },
      "unit": "N/mm2",
      "kind": "number",
      "role": "input",
      "aliases": [
        "KPrime",
        "testStrength"
      ],
      "constraints": {
        "exclusiveMinimum": 0
      }
    },
    {
      "varNr": 30,
      "key": "density",
      "label": {
        "de": "Dichte rho",
        "en": "Density rho"
      },
      "description": {
        "de": "Werkstoffdichte für Gewichtsgrößen.",
        "en": "Material density used for weight values."
      },
      "unit": "t/m3",
      "kind": "number",
      "role": "input",
      "default": 7.98,
      "aliases": [
        "rho",
        "density",
        "Dichte"
      ],
      "constraints": {
        "exclusiveMinimum": 0
      }
    },
    {
      "varNr": 1,
      "key": "requiredWallThickness",
      "label": {
        "de": "Erforderliche Wanddicke, maßgebend",
        "en": "Required wall thickness, governing"
      },
      "description": {
        "de": "Größerer maßgebender Wert aus Betriebs- und Prüffall.",
        "en": "Governing value from operating and test cases."
      },
      "unit": "mm",
      "kind": "number",
      "role": "result",
      "aliases": [
        "s",
        "requiredWallThickness"
      ],
      "constraints": {}
    },
    {
      "varNr": 18,
      "key": "requiredWallThicknessOperating",
      "label": {
        "de": "Erforderliche Wanddicke Betrieb",
        "en": "Required wall thickness, operating case"
      },
      "description": {
        "de": "Erforderliche Wanddicke im Betriebsfall.",
        "en": "Required wall thickness for operation."
      },
      "unit": "mm",
      "kind": "number",
      "role": "result",
      "aliases": [
        "sB"
      ],
      "constraints": {}
    },
    {
      "varNr": 19,
      "key": "requiredWallThicknessTest",
      "label": {
        "de": "Erforderliche Wanddicke Prüfung",
        "en": "Required wall thickness, test case"
      },
      "description": {
        "de": "Erforderliche Wanddicke im Prüffall.",
        "en": "Required wall thickness for the test case."
      },
      "unit": "mm",
      "kind": "number",
      "role": "result",
      "aliases": [
        "sP"
      ],
      "constraints": {}
    },
    {
      "varNr": 31,
      "key": "wallThicknessWithoutAllowances",
      "label": {
        "de": "Vorhandene Wanddicke ohne Zuschläge",
        "en": "Wall thickness without allowances"
      },
      "description": {
        "de": "Ausgeführte Wanddicke abzüglich c1 und c2.",
        "en": "Executed wall thickness minus c1 and c2."
      },
      "unit": "mm",
      "kind": "number",
      "role": "derived",
      "aliases": [],
      "constraints": {}
    },
    {
      "varNr": 36,
      "key": "allowablePressureOperating",
      "label": {
        "de": "Zulässiger Berechnungsdruck",
        "en": "Allowable operating pressure"
      },
      "description": {
        "de": "Zulässiger Druck für die ausgeführte Wanddicke im Betriebsfall.",
        "en": "Allowable operating pressure for the executed wall thickness."
      },
      "unit": "bar",
      "kind": "number",
      "role": "result",
      "aliases": [
        "pAllB"
      ],
      "constraints": {}
    },
    {
      "varNr": 37,
      "key": "allowablePressureTest",
      "label": {
        "de": "Zulässiger Prüfdruck",
        "en": "Allowable test pressure"
      },
      "description": {
        "de": "Zulässiger Druck für die ausgeführte Wanddicke im Prüffall.",
        "en": "Allowable test pressure for the executed wall thickness."
      },
      "unit": "bar",
      "kind": "number",
      "role": "result",
      "aliases": [
        "pAllP"
      ],
      "constraints": {}
    },
    {
      "varNr": 27,
      "key": "insideDiameter",
      "label": {
        "de": "Innendurchmesser Di",
        "en": "Inside diameter Di"
      },
      "description": {
        "de": "Aus Außendurchmesser und ausgeführter Wanddicke berechneter Innendurchmesser.",
        "en": "Inside diameter calculated from outside diameter and executed wall thickness."
      },
      "unit": "mm",
      "kind": "number",
      "role": "derived",
      "aliases": [
        "Di"
      ],
      "constraints": {}
    },
    {
      "varNr": 34,
      "key": "outsideVolume",
      "label": {
        "de": "Außenvolumen",
        "en": "Outside volume"
      },
      "description": {
        "de": "Geometrisches Außenvolumen der betrachteten Schale.",
        "en": "Geometric outside volume of the shell."
      },
      "unit": "m3",
      "kind": "number",
      "role": "result",
      "aliases": [],
      "constraints": {}
    },
    {
      "varNr": 35,
      "key": "insideVolume",
      "label": {
        "de": "Innenvolumen",
        "en": "Inside volume"
      },
      "description": {
        "de": "Geometrisches Innenvolumen der betrachteten Schale.",
        "en": "Geometric inside volume of the shell."
      },
      "unit": "m3",
      "kind": "number",
      "role": "result",
      "aliases": [],
      "constraints": {}
    }
  ],
  "materials": {
    "ruleSet": "AD2000",
    "selectorVariable": 22,
    "temperatureVariable": 24,
    "thicknessVariable": 9,
    "diameterVariable": 2,
    "derivedStrengthVariables": [
      4,
      17
    ],
    "searchTool": "lv_search_materials",
    "strengthTool": "lv_get_material_strength",
    "selectionRule": "Use an exact material match. If duplicate historical records represent the same exact material, use the highest LV material ID as the latest record; otherwise ask the user.",
    "referenceMaterial": {
      "materialId": 1232,
      "designation": "1.4571(P) = X 6 CrNiMoTi 17-12-2"
    }
  },
  "mcp": {
    "profileTool": "lv_get_module_profile",
    "workflow": [
      {
        "order": 1,
        "tool": "lv_get_module_profile",
        "purpose": "Read current B1 contract and variants.",
        "arguments": {
          "module": "B1"
        }
      },
      {
        "order": 2,
        "tool": "lv_search_materials",
        "purpose": "Resolve material name to a stable LV ID when needed."
      },
      {
        "order": 3,
        "tool": "lv_prepare_fill_plan",
        "purpose": "Map semantic values, resolve K/K' and report missing inputs."
      },
      {
        "order": 4,
        "tool": "lv_validate_fill_plan",
        "purpose": "Reject invalid or incomplete plans before mutation."
      },
      {
        "order": 5,
        "tool": "lv_apply_fill_plan",
        "purpose": "Open B1, set inputs once and calculate."
      },
      {
        "order": 6,
        "tool": "lv_get_results",
        "purpose": "Read semantic results and verdict."
      }
    ],
    "rules": [
      "Set the variant through plan.variant or plan.bauform. Do not manually set V38 in a fill plan.",
      "Use semantic fill-plan tools for the normal B1 workflow instead of guessing variable writes.",
      "Never write result or derived variables.",
      "Treat units as part of the contract; B1 pressure inputs and results use bar.",
      "After calculation verify success, warnings, governingCase, V1, V9, V36 and V37.",
      "If the material service is unavailable, ask for explicit K and K' or clearly mark the fallback assumption."
    ]
  },
  "referenceCases": [
    {
      "id": "b1-cylinder-14571-120c",
      "verifiedAt": "2026-08-28",
      "verifiedAgainst": "LV-Atlas-Web localhost MCP",
      "variant": "cylinder",
      "inputs": {
        "outsideDiameter": 600,
        "temperature": 120,
        "pressure": 1.5,
        "testPressure": 2,
        "material": 1232,
        "weldFactor": 1,
        "wallThickness": 8,
        "length": 2000,
        "safetyFactor": 1.5,
        "testSafetyFactor": 1.05,
        "c1": 0.3,
        "c2": 0,
        "density": 7.98
      },
      "materialResolution": {
        "strength": 218,
        "testStrength": 260
      },
      "expected": {
        "requiredWallThickness": 0.60947335,
        "requiredWallThicknessOperating": 0.60947335,
        "requiredWallThicknessTest": 0.54220986,
        "wallThicknessWithoutAllowances": 7.7,
        "allowablePressureOperating": 37.787155,
        "allowablePressureTest": 64.38179,
        "insideDiameter": 584,
        "outsideVolume": 0.56548667,
        "insideVolume": 0.5357295,
        "verdict": "executed-wall-thickness-sufficient",
        "governingCase": "operating"
      },
      "tolerance": {
        "absolute": 0.0001,
        "relative": 1e-05
      }
    }
  ],
  "troubleshooting": [
    {
      "code": "missing-strength",
      "symptom": {
        "de": "K oder K' bleibt leer.",
        "en": "K or K' remains empty."
      },
      "action": {
        "de": "Werkstoff-ID, Temperatur, Dicke, Durchmesser und Regelwerk prüfen; anschließend Werkstoffstärke erneut auflösen.",
        "en": "Check material ID, temperature, thickness, diameter and rule set; then resolve material strength again."
      }
    },
    {
      "code": "wrong-pressure-unit",
      "symptom": {
        "de": "Ergebnisse weichen ungefähr um Faktor 10 ab.",
        "en": "Results differ by roughly a factor of ten."
      },
      "action": {
        "de": "Prüfen, ob bar statt MPa an B1 übergeben wurde.",
        "en": "Verify that B1 received bar rather than MPa."
      }
    },
    {
      "code": "result-not-calculated",
      "symptom": {
        "de": "V1, V36 oder V37 ist unbekannt.",
        "en": "V1, V36 or V37 is unknown."
      },
      "action": {
        "de": "Fehlende Pflichteingaben und Berechnungserfolg prüfen; Ergebnisvariablen niemals selbst setzen.",
        "en": "Check required inputs and calculation success; never set result variables manually."
      }
    }
  ],
  "safety": {
    "engineeringReviewRequired": true,
    "message": {
      "de": "Die Hilfe unterstützt die Bedienung, ersetzt aber weder die Prüfung des gültigen Regelwerks noch die verantwortliche ingenieurtechnische Bewertung.",
      "en": "This help supports operation but does not replace checking the applicable code or responsible engineering review."
    }
  }
}
