IES ConcreteBending User's Guide
Example: Optimize Thickness
Optimize Thickness
Copy Code
//Vary the thickness of a concrete slab to minimize the amount of reinforcement needed
//Non-linear problem since the larger thicknesses will increase the load on the structure
//and add to minimum steel requirements

SetUnits("Kips & Inches");
DeleteAll();

//define the model
var width = 480.0;
var height = 48.0;
var thickness = 12.0;
var slab = AddRectangleBoundary(0, 0, width, height);
Thickness(slab, 12);
DoubleMat_Optimize(slab, true, 1.5, true, 1.5, ("#6", 12), ("#6", 6), ("#8", 6));
SetMaterial("Concrete (F'c = 5 ksi)");

var supportT = 16.0;
var leftSupport = AddLineSupport("left", -width/2, -height/2, -width/2, height/2, supportT);
PinLineSupport(leftSupport);
var rightSupport = AddLineSupport("right", width/2, -height/2, width/2, height/2, supportT);
PinLineSupport(rightSupport);

//add live load
RectangularLoad("L", 0, 0, height, height, -50.0/144/1000, 0, 0);

//Add one inch to the slab thickness, find the weight of reinforcement required, save the most efficient thickness
var steelWt = 99999999999.9; //initialize to a big value
var t = thickness;
var bestThickness = t;
while(t <= 30.0) //stop at a 30" slab
{
    await Design();
    //has to pass shear and flexure checks to be considered
    if(Status("Slab Flexural Steel") == 2 && Status("Slab Shear") == 2)
    {
        var wt = SlabReinforcingWeight();
        if(wt < steelWt)
        {
            steelWt = wt;
            bestThickness = t;
        }
    }
    t += 1.0;
    Thickness(slab, t);
}
Thickness(slab, bestThickness);

//Print out the final results
$"Optimal Thickness = {bestThickness} inches; Reinforcing Wt = {steelWt:f4} kips"