Pile Reactions
Maximum Pile Reaction:
{results.maxPileReaction.toFixed(2)} kips
Minimum Pile Reaction:
{results.minPileReaction.toFixed(2)} kips
Shear Checks
{results.shearChecks.map((check, index) => {
// Determine direction and location from check type string
// Expected format: "One-Way Shear X (at d)" or "One-Way Shear Y (at face)"
const isX = check.type.includes('X');
const isAtD = check.type.includes('at d');
// Calculate d (approximate)
const reinforcement = usePileCapStore.getState().reinforcement;
const geometry = usePileCapStore.getState().geometry;
// d = depth - cover - bar_diameter (approx 1 inch for bar center)
const cover = isX ? reinforcement.bottomConcreteCover : reinforcement.bottomConcreteCover; // Simplified
const d = geometry.depth - cover - 1;
return (
{check.type}: {check.pass ?
✓ PASS :
✗ FAIL
}
{/* Diagram */}
Demand:
{(check.demand / 1000).toFixed(2)} kips
Capacity:
{(check.capacity / 1000).toFixed(2)} kips
Ratio (D/C):
{check.ratio.toFixed(3)}
);
})}
{/* Flexural Design */}
{/* Flexural Design */}
Flexural Reinforcement (Bottom Mat)
{/* X-Direction */}
X-Direction: {results.flexuralX.pass ?
✓ PASS :
✗ FAIL
}
Moment (Mu):
{(results.flexuralX.moment).toFixed(2)} k-ft
Required As (Strength):
{results.flexuralX.requiredAs.toFixed(2)} in²
Min As (ACI):
{results.flexuralX.minAs.toFixed(2)} in²
Provided As:
{results.flexuralX.providedAs.toFixed(2)} in²
Reinforcement:
{results.flexuralX.barCount} {results.flexuralX.barSize} @ {results.flexuralX.spacing}" o.c.
Development Length:
{results.flexuralX.developmentLength.pass ?
OK :
FAIL
}
{' '}(Req: {results.flexuralX.developmentLength.required.toFixed(1)}", Avail: {results.flexuralX.developmentLength.available.toFixed(1)}")
{/* Y-Direction */}
Y-Direction: {results.flexuralY.pass ?
✓ PASS :
✗ FAIL
}
Moment (Mu):
{(results.flexuralY.moment).toFixed(2)} k-ft
Required As (Strength):
{results.flexuralY.requiredAs.toFixed(2)} in²
Min As (ACI):
{results.flexuralY.minAs.toFixed(2)} in²
Provided As:
{results.flexuralY.providedAs.toFixed(2)} in²
Reinforcement:
{results.flexuralY.barCount} {results.flexuralY.barSize} @ {results.flexuralY.spacing}" o.c.
Development Length:
{results.flexuralY.developmentLength.pass ?
OK :
FAIL
}
{' '}(Req: {results.flexuralY.developmentLength.required.toFixed(1)}", Avail: {results.flexuralY.developmentLength.available.toFixed(1)}")
Load Transfer (Bearing)
{/* Column Bearing */}
Column Bearing: {results.bearingChecks.columnBearing.pass ?
✓ PASS :
✗ FAIL
}
Demand (Pu):
{results.bearingChecks.columnBearing.demand.toFixed(2)} kips
Capacity (phi*Bn):
{results.bearingChecks.columnBearing.capacity.toFixed(2)} kips
Ratio:
{results.bearingChecks.columnBearing.ratio.toFixed(3)}
Required Dowels:
{results.bearingChecks.columnBearing.requiredDowels.toFixed(2)} in²
{/* Pile Bearing */}
Pile Bearing: {results.bearingChecks.pileBearing.pass ?
✓ PASS :
✗ FAIL
}
Max Pile Reaction:
{results.bearingChecks.pileBearing.demand.toFixed(2)} kips
Capacity (phi*Bn):
{results.bearingChecks.pileBearing.capacity.toFixed(2)} kips
Ratio:
{results.bearingChecks.pileBearing.ratio.toFixed(3)}
Column Design (Biaxial Interaction)
Interaction Check: {results.columnDesign.pass ?
✓ PASS :
✗ FAIL
}
Axial Load (Pu):
{results.columnDesign.axialLoad.toFixed(2)} kips
Moment X (Mux):
{results.columnDesign.demandX.toFixed(2)} k-ft
Capacity X (phi*Mnx):
{results.columnDesign.capacityX.toFixed(2)} k-ft
Moment Y (Muy):
{results.columnDesign.demandY.toFixed(2)} k-ft
Capacity Y (phi*Mny):
{results.columnDesign.capacityY.toFixed(2)} k-ft
Interaction Ratio:
{results.columnDesign.ratio.toFixed(3)}
* Simplified linear interaction check: (Mux/phiMnx) + (Muy/phiMny) ≤ 1.0