bulc_set_fds_fire_source
Configure furniture as a fire source in FDS simulations using HRRPUA mode with time-based ramping. Calculates heat release rate based on the furniture's surface area.
Instructions
Configure a furniture item as an FDS fire source. Supports HRRPUA (Heat Release Rate Per Unit Area) mode with time-based ramping. The fire will use the furniture's surface area for HRR calculations.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| furnitureId | Yes | Furniture ID to configure as fire source | |
| hrrpua | No | Heat Release Rate Per Unit Area in kW/m². Default: 500 | |
| surfaceId | No | Custom surface ID. Default: auto-generated | |
| color | No | Surface color. Options: RED, ORANGE, YELLOW. Default: RED | |
| ramp | No | Time-based ramp function as array of [time, fraction] pairs. Example: [[0, 0], [10, 0.5], [60, 1.0], [120, 1.0], [180, 0]] | |
| tauQ | No | t-squared fire growth coefficient (optional, uses ramp if not set) |
Implementation Reference
- src/tools/fds-data.ts:366-373 (handler)Executes the tool by validating the input parameters with Zod's SetFireSourceSchema and forwarding a 'set_fds_fire_source' command to the BULC client for actual implementation.case "bulc_set_fds_fire_source": { const validated = SetFireSourceSchema.parse(args); result = await client.sendCommand({ action: "set_fds_fire_source", params: validated, }); break; }
- src/tools/fds-data.ts:288-295 (schema)Zod schema for input validation of the 'bulc_set_fds_fire_source' tool parameters.const SetFireSourceSchema = z.object({ furnitureId: z.string(), hrrpua: z.number().positive().optional(), surfaceId: z.string().optional(), color: z.enum(["RED", "ORANGE", "YELLOW"]).optional(), ramp: z.array(z.array(z.number()).length(2)).optional(), tauQ: z.number().optional(), });
- src/tools/fds-data.ts:30-75 (schema)MCP tool schema definition for 'bulc_set_fds_fire_source', including description, input schema, and annotations for the tool listing.{ name: "bulc_set_fds_fire_source", description: "Configure a furniture item as an FDS fire source. " + "Supports HRRPUA (Heat Release Rate Per Unit Area) mode with time-based ramping. " + "The fire will use the furniture's surface area for HRR calculations.", inputSchema: { type: "object" as const, properties: { furnitureId: { type: "string", description: "Furniture ID to configure as fire source", }, hrrpua: { type: "number", description: "Heat Release Rate Per Unit Area in kW/m². Default: 500", }, surfaceId: { type: "string", description: "Custom surface ID. Default: auto-generated", }, color: { type: "string", description: "Surface color. Options: RED, ORANGE, YELLOW. Default: RED", }, ramp: { type: "array", description: "Time-based ramp function as array of [time, fraction] pairs. " + "Example: [[0, 0], [10, 0.5], [60, 1.0], [120, 1.0], [180, 0]]", items: { type: "array", items: { type: "number" }, }, }, tauQ: { type: "number", description: "t-squared fire growth coefficient (optional, uses ramp if not set)", }, }, required: ["furnitureId"], }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
- src/index.ts:84-94 (registration)Tool dispatch registration in the main MCP server: routes calls to 'bulc_set_fds_fire_source' to the handleFdsDataTool function.if ( name === "bulc_get_fds_data" || name === "bulc_set_fds_fire_source" || name === "bulc_set_fds_detector" || name === "bulc_set_fds_sprinkler" || name === "bulc_set_fds_hvac" || name === "bulc_set_fds_thermocouple" || name === "bulc_clear_fds_data" ) { return await handleFdsDataTool(name, safeArgs); }