# Damage Levels Damage levels define how FX-PML converts pressure and impulse into damage percentages. Assets can use the default damage level or be assigned a specific damage level. ## Add a Damage Level 1. Open the **Data** tab. 2. Right-click **Damages**. 3. Choose **Add Damage Level**. 4. Rename the damage level. 5. Edit its notes if needed. ## Damage Values The **Damage Values** property opens a table of damage records. Each record contains: ![[Images/DamageCurves-PI.png]] - **Pbar (psi)**: pressure intercept. - **Ibar (psi-ms)**: impulse intercept. - **a**: curve coefficient. - **b**: curve coefficient. - **Damage (%)**: damage percentage represented by the curve. For pressure/impulse curves, FX-PML calculates the plotted pressure value from the impulse value with: $ P = \frac{a \left(\frac{P_{bar}}{2} + \frac{I_{bar}}{2}\right)^b}{I - I_{bar} + 0.01} + P_{bar} $ Where `I` is the impulse value on the x-axis and `P` is the pressure value on the y-axis. Use **Add** and **Delete** to manage records. Use **Plot** to review the damage curves before solving. ![[Images/DamageCurves-PI-Plot.png]] Some damage levels may use constant damage curves instead of pressure/impulse curve coefficients. ![[Images/DamageCurves-Constant.png]] ![[Images/DamageCurves-Constant-Plot.png]] ## Validation Expectations Damage records are validated before FX-PML uses them for TNT range calculations. If a damage level fails validation, the TNT model skips range calculations for that damage level and writes a warning to the message log. Each record must meet these numeric requirements: - **Pbar**, **a**, and **b** must be zero or greater. - **Ibar** must be greater than zero. - **Damage (%)** must be between 0 and 100. - Each damage percentage must be unique within the damage level. - All values must be finite numbers. Blank, infinite, or not-a-number values are invalid. - The generated curve must also contain only finite pressure and impulse values. Records are sorted by **Damage (%)** before validation. After sorting, each higher-damage record must fit completely inside the previous lower-damage record. In practical terms, a higher damage percentage must require at least as severe a pressure/impulse condition as the lower damage percentage. Curves should not cross in a way that makes a higher-damage region extend outside a lower-damage region. For example, a 60 percent damage curve must fit inside the 10 percent damage curve, and a 100 percent damage curve must fit inside the 60 percent damage curve. If FX-PML reports that one record "must fit inside" another, revise the higher-damage record so its threshold region is more restrictive, usually by increasing the relevant pressure, impulse, or curve shape values. When using constant curves, the same nesting rule applies. A higher constant damage level should not start at a lower pressure or lower impulse threshold than the lower constant damage level. ## Assigning Damage Levels to Assets Each asset has a **Damage Level** field. Leaving it as **Default** uses the default damage behavior. Selecting a named damage level uses that level for the asset. If a damage level is deleted while assets still reference it, FX-PML warns that those assets will be reset to **Default**.