bulc_create_mesh
Define a computational domain for fire simulation by creating an FDS mesh with specified dimensions and cell counts.
Instructions
Create a new FDS computational mesh with specified dimensions and cell count. The mesh defines the computational domain for fire simulation.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| meshId | No | Mesh identifier. Default: MESH_1, MESH_2, etc. | |
| xMin | Yes | Minimum X coordinate in meters | |
| xMax | Yes | Maximum X coordinate in meters | |
| yMin | Yes | Minimum Y coordinate in meters | |
| yMax | Yes | Maximum Y coordinate in meters | |
| zMin | No | Minimum Z coordinate in meters. Default: 0 | |
| zMax | Yes | Maximum Z coordinate in meters | |
| iCells | No | Number of cells in X direction | |
| jCells | No | Number of cells in Y direction | |
| kCells | No | Number of cells in Z direction | |
| cellSize | No | Uniform cell size in meters (alternative to specifying cell counts). If provided, cell counts will be calculated automatically. |
Implementation Reference
- src/tools/mesh.ts:254-261 (handler)The handler logic for the 'bulc_create_mesh' tool. Validates input parameters using CreateMeshSchema and sends a 'create_mesh' command to the BULC client via getBulcClient().case "bulc_create_mesh": { const validated = CreateMeshSchema.parse(args); result = await client.sendCommand({ action: "create_mesh", params: validated, }); break; }
- src/tools/mesh.ts:196-208 (schema)Zod schema used for runtime validation of input arguments to the bulc_create_mesh tool handler.const CreateMeshSchema = z.object({ meshId: z.string().optional(), xMin: z.number(), xMax: z.number(), yMin: z.number(), yMax: z.number(), zMin: z.number().optional(), zMax: z.number(), iCells: z.number().int().positive().optional(), jCells: z.number().int().positive().optional(), kCells: z.number().int().positive().optional(), cellSize: z.number().positive().optional(), });
- src/tools/mesh.ts:23-83 (registration)The tool definition object for 'bulc_create_mesh' exported in meshTools array, which is included in the global allTools list and registered with the MCP server via ListToolsRequestHandler.{ name: "bulc_create_mesh", description: "Create a new FDS computational mesh with specified dimensions and cell count. " + "The mesh defines the computational domain for fire simulation.", inputSchema: { type: "object" as const, properties: { meshId: { type: "string", description: "Mesh identifier. Default: MESH_1, MESH_2, etc.", }, xMin: { type: "number", description: "Minimum X coordinate in meters", }, xMax: { type: "number", description: "Maximum X coordinate in meters", }, yMin: { type: "number", description: "Minimum Y coordinate in meters", }, yMax: { type: "number", description: "Maximum Y coordinate in meters", }, zMin: { type: "number", description: "Minimum Z coordinate in meters. Default: 0", }, zMax: { type: "number", description: "Maximum Z coordinate in meters", }, iCells: { type: "integer", description: "Number of cells in X direction", }, jCells: { type: "integer", description: "Number of cells in Y direction", }, kCells: { type: "integer", description: "Number of cells in Z direction", }, cellSize: { type: "number", description: "Uniform cell size in meters (alternative to specifying cell counts). " + "If provided, cell counts will be calculated automatically.", }, }, required: ["xMin", "xMax", "yMin", "yMax", "zMax"], }, annotations: { readOnlyHint: false, destructiveHint: true, }, },
- src/index.ts:97-98 (handler)Routing logic in the main MCP CallToolRequestHandler that dispatches 'bulc_*_mesh' tools to the handleMeshTool function.if (name.startsWith("bulc_") && name.includes("mesh")) { return await handleMeshTool(name, safeArgs);