> For the complete documentation index, see [llms.txt](https://docs.openbrim.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openbrim.org/templates/box-culvert-workflow/substructure-bc/soil-structure-interaction-bc/culvert-backfill-soil-bc.md).

# Culvert Backfill Soil \[BC]

The Culvert Backfill Soil represents the fill placed against the culvert's exterior walls and the lateral restraint it provides. It attaches a horizontal spring to every node of the wall it acts on, so the wall pushes into the soil and the soil pushes back over the height where soil is actually present.

The stiffness and the passive limit are not constant up the wall — they are read from a soil profile whose rows you enter, and the object interpolates between those rows at each mesh node's own elevation. The culvert pins a mesh row at every layer boundary so the change lands exactly on a node instead of being smeared across an element.

## General

**Box Culvert:** The culvert barrel this soil bears against. A selection is required, and selecting it registers this soil on the barrel so the barrel can pin its mesh rows to the layer boundaries.

**Soil Side \[Left/Right/Both]:** Which exterior wall or walls the soil acts on. Use Both for a culvert with fill on both sides — the normal case — and a single side when one wall is exposed, for example at a headwall or where the barrel daylights.

**Spring Behavior \[Compression Only/Linear]:** Whether the soil can only resist the wall pushing into it, or can also pull the wall back. Compression Only is the physical case and the default. Linear keeps the spring active in both directions; it makes the frame stiffer than reality and should be used only as a diagnostic.

**Staged Construction \[No/Yes]:** Whether these springs are generated here or by a Backfill Soil Construction object as part of a construction sequence. The two sources are exclusive: with Yes, this object stops generating its own one-shot springs and a Backfill Soil Construction that selects this soil must supply them instead. If Yes is set and no such object exists, that is reported as an issue rather than left to produce a culvert with no wall springs at all.

**Soil Profile:** The layers that define the spring law up the wall, entered one row per level. The object interpolates stiffness and passive limit between consecutive rows, so at least two rows are required — a single row defines no band to interpolate across.

Each row has:

* **Datum \[Absolute Elevation/Offset Below Culvert Top/Offset Below PGL]** — where the row's elevation is measured from. All three measure downward and differ only in where zero sits. *Absolute Elevation* is the value as surveyed, so a boring log entered this way does not move if the vertical alignment is later revised. *Offset Below Culvert Top* (the default) hangs the row off the top slab, so the layer stays glued to the barrel when the cover or the top elevation changes — the natural choice for backfill placed against the barrel. *Offset Below PGL* measures down from the alignment profile. Mixing datums in one profile is allowed and is usually what you want.
* **Elevation / Offset** — the elevation or the downward offset, per the row's datum.
* **Input \[Modulus + Limit/Limit + Movement/Soil Properties]** — which two numbers you would rather type. All three end at the same place, a modulus and a passive limit per unit area. *Modulus + Limit* takes both as typed; be aware the pair implies a movement to mobilize the limit that is not shown, and if the limit is small against the modulus every spring sits on its plateau from the first increment. *Limit + Movement* takes the ultimate passive resistance and the displacement that develops it, which is the pair geotechnical sources actually quote, and derives the modulus. *Soil Properties* derives both from the soil by Rankine.
* **Subgrade Modulus** — stiffness per unit area, used by Modulus + Limit.
* **Passive Pressure Limit** — the ultimate passive resistance per unit area, used by Modulus + Limit and by Limit + Movement.
* **Movement to Mobilize Limit** — the wall movement that develops the limit, used by Limit + Movement.
* **Effective Unit Weight**, **Friction Angle**, **Mobilization Ratio (movement / wall height)** — used by Soil Properties. The mobilization ratio is the wall movement, as a fraction of wall height, at which full passive pressure is reached; typically around 0.01 for dense sand and 0.05 for loose. It is an input rather than a built-in constant because it is the assumption most worth arguing about.

Where the profile stops short of the wall, the wall below or above it is left genuinely bare rather than being supported by an extrapolation of the end row — the 3D view and the analysis agree on where soil is present. A profile that already spans the wall is unaffected.

> A row entered under the retired datum code 1, which used to mean an offset below the top of fill, is reported as an issue rather than read against a different reference elevation. Re-pick those rows.

## 3D Settings

**Show Soil in 3D \[No/Yes]:** Whether the soil body and its pressure diagram are drawn beside the culvert. The drawing is clipped to the culvert's side face, so a profile that covers only part of the wall draws only that part — which is a useful check that the profile reaches where you intended.

**Soil Depth Shown Beside Wall:** How far out from the wall face the soil body is drawn. It affects the 3D view only — the springs are attached to the wall nodes regardless. Must be positive. Shown only when Show Soil in 3D is Yes.

## Referencing Objects

**Culvert Backfill Soil Constructions:** The construction objects that build this soil in stages, filled in automatically when one of them selects it. It is what the Staged Construction check reads to confirm that turning staged construction on has actually handed the springs to a construction object. (Read-only)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.openbrim.org/templates/box-culvert-workflow/substructure-bc/soil-structure-interaction-bc/culvert-backfill-soil-bc.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
