Add an explicit plate mesh
add_plate_grid_elementsAuthor plate elements EXPLICITLY (model.plate_elements) as a regular quad grid over four corner points, instead of letting the solver mesh a PlateSurface. Creates the nodes, optionally supports the perimeter, and writes one 4-node PlateElement per cell. Verified to give bit-identical results to the equivalent structured surface mesh (16x16: max|dz| 4.31048e-3 m either way).
USE THIS WHEN YOU NEED PLATE UNITY CHECKS. In engine 0.2.52 a unity check targeting plates (AllPlates / PlateSurfaces / PlateElements with a PlateStress variable) returns an EMPTY per_entity for anything meshed from a PlateSurface — status "Green", max_utilization 0, no warning — because the mesh is generated on an internal working copy while the checks run against the original document. Explicit plate elements survive in that document and are checked normally (verified 256/256 entities).
ALSO USE IT when you need stable, known plate element ids: mesh-generated ids start at max(explicit id)+1 and are never echoed back, so an element-targeted pressure on a generated id is a silent no-op.
COST: verbosity. An N x N grid emits (N+1)^2 nodes and N^2 elements inline, and the engine allocates a dense (7 x nodes)^2 block, so keep total model nodes under ~2000. Load the grid with ONE add_load kind:"surface" whose polygon covers it, rather than N^2 individual pressures. Same theory guidance as add_plate_surface: PlateTheory "Auto" resolves to Mindlin, which shear-locks (-55% at 8x8 on a span/thickness 80 slab), so prefer "kirchhoff" at span/thickness >= 20.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| model | No | Stringified FERS model JSON | |
| theory | No | auto | kirchhoff | mindlin | engine_auto. | |
| behavior | No | shell | membrane. | |
| model_ref | No | Handle from stash_model, used INSTEAD of `model`. Avoids sending the whole document on every step; the tool returns the same handle back. | |
| thickness | No | Plate thickness in metres. | |
| divisions_u | No | Cells along the first edge. | |
| divisions_v | No | Cells along the other edge. | |
| material_id | No | Existing model.materials id. | |
| plane_state | No | plane_stress | plane_strain. | |
| edge_support | No | none | pinned | fixed on the perimeter. | |
| corner_points | Yes | JSON array of exactly 4 [x,y,z] corners, in order around the panel. | |
| first_element_id | No | Starting id for the generated elements. | |
| local_x_direction | No | [x,y,z] local axis direction. |