예제 #1
0
 private void initValues(double mx, double my, double mxy)
 {
     this.mx  = inputValues.CreateDoubleCalcValue("Moment about x axis", "M_x", "kNm", mx);
     this.my  = inputValues.CreateDoubleCalcValue("Moment about y axis", "M_y", "kNm", my);
     this.mxy = inputValues.CreateDoubleCalcValue("Twist", "M_xy", "kNm", mxy);
     mxb      = outputValues.CreateDoubleCalcValue("Moment about x axis for bottom reinforcement", "M_xb", "kNm", 0);
     myb      = outputValues.CreateDoubleCalcValue("Moment about y axis for bottom reinforcement", "M_yb", "kNm", 0);
     mxt      = outputValues.CreateDoubleCalcValue("Moment about x axis for top reinforcement", "M_xt", "kNm", 0);
     myt      = outputValues.CreateDoubleCalcValue("Moment about y axis for top reinforcement", "M_yt", "kNm", 0);
 }
예제 #2
0
        void initialise()
        {
            // INPUTS
            secWidth   = inputValues.CreateDoubleCalcValue("Section width", "b", "mm", 300);
            secDepth   = inputValues.CreateDoubleCalcValue("Section depth", "h", "mm", 500);
            bendingMom = inputValues.CreateDoubleCalcValue("Bending moment", "M", "kNm", 100);
            aggregateAdjustmentFactor = inputValues.CreateDoubleCalcValue("Aggregate adjustment factor", "AAF", "", 1);
            concGrade = inputValues.CreateCalcSelectionList("Concrete grade", "C40/50", new List <string>()
            {
                @"C30/40", @"C35/42", @"C40/50"
            });
            ultStrain        = inputValues.CreateDoubleCalcValue("Ultimate strain", @"\epsilon_{cu2}", "", 0.0035);
            shortStrain      = inputValues.CreateDoubleCalcValue("Shortening strain", @"\epsilon_{cu3}", "", 0.0035);
            effCompZoneHtFac = inputValues.CreateDoubleCalcValue("Effective compression zone height factor", @"\lambda", "", 0.8);
            effStrFac        = inputValues.CreateDoubleCalcValue("Effective strength factor", @"\eta", "", 1.00);
            k1             = inputValues.CreateDoubleCalcValue("Coefficient k1", "k_1", "", 0.4);
            k3             = inputValues.CreateDoubleCalcValue("Coefficient k3", "k_3", "", 0.4);
            delta          = inputValues.CreateDoubleCalcValue("Redistribution factor", @"\delta", "", 0.85);
            partialFacConc = inputValues.CreateDoubleCalcValue("Partial factor for concrete", @"\gamma_c", "", 1.5);
            compStrCoeff   = inputValues.CreateDoubleCalcValue("Compressive strength coefficient", @"\alpha_{cc}", "", 0.85);
            compStrCoeffw  = inputValues.CreateDoubleCalcValue("Compressive strength coefficient", @"\alpha_{cw}", "", 1.0);
            hAgg           = inputValues.CreateDoubleCalcValue("Maximum aggregate size", "h_{agg}", "mm", 20);
            monolithicSimpleSupportFactor = inputValues.CreateDoubleCalcValue("Monolithic simple support moment factor", @"\beta_1", "", 0.25);
            rebarCharYieldStr             = inputValues.CreateDoubleCalcValue("Characteristic yield strength for reinforcing steel", "f_yk", "N/mm^2", 500);
            rebarPartialFactor            = inputValues.CreateDoubleCalcValue("Partial factor for reinforcing steel", @"\gamma_s", "", 1.15);
            coverTop     = inputValues.CreateDoubleCalcValue("Top cover", "c_{top}", "mm", 35);
            coverBtm     = inputValues.CreateDoubleCalcValue("Bottom cover", "c_{btm}", "mm", 35);
            coverSides   = inputValues.CreateDoubleCalcValue("Side cover", "c_{sides}", "mm", 35);
            firePeriod   = inputValues.CreateDoubleCalcValue("Fire period", "R", "mins", 60);
            sidesExposed = inputValues.CreateDoubleCalcValue("Sides exposed", "", "No.", 3);
            minWidth     = inputValues.CreateDoubleCalcValue("Minimum width", "b_{min}", "mm", 120);

            // OUTPUTS
            charCompStr        = outputValues.CreateDoubleCalcValue("Characteristic compressive cylinder strength", "f_{ck}", "N/mm^2", 35);
            meanCompStr        = outputValues.CreateDoubleCalcValue("Mean compressive strength", "f_{cm}", "N/mm^2", 0);
            meanAxialTenStr    = outputValues.CreateDoubleCalcValue("Mean axial tensile strength", "f_{ctm}", "N/mm^2", 0.3);
            secModElasticicity = outputValues.CreateDoubleCalcValue("Secant modulus of elasticity of concrete", "E_{cm}", "kN/mm^2", 22);
            k2               = outputValues.CreateDoubleCalcValue("Coefficient k2", "k_2", "", 0);
            k4               = outputValues.CreateDoubleCalcValue("Coefficient k4", "k_4", "", 0);
            desCompStrConc   = outputValues.CreateDoubleCalcValue("Design compressive strength", "f_{cd}", "N/mm^2", 0);
            desCompStrConcw  = outputValues.CreateDoubleCalcValue("Strength of concrete cracked in shear", "f_{cwd}", "N/mm^2", 0);
            rebarDesYieldStr = outputValues.CreateDoubleCalcValue("Design yield strength for reinforcing steel", "f_{yd}", "N/mm^2", 0);
            effDepth         = outputValues.CreateDoubleCalcValue("Effective depth", "d", "mm", 0);
            redistRatio      = outputValues.CreateDoubleCalcValue("Redistribution ratio", "K", "", 0);
            redistRatio2     = outputValues.CreateDoubleCalcValue("Redistribution ratio limit", "K'", "", 0);
            leverArm         = outputValues.CreateDoubleCalcValue("Lever arm", "z", "mm", 0);
            naDepth          = outputValues.CreateDoubleCalcValue("Neutral axis depth", "x", "mm", 0);
            rebarAsReqd      = outputValues.CreateDoubleCalcValue("Tension reinforcement required", "A_{s,reqd}", "mm^2", 0);
            rebarAsProv      = outputValues.CreateDoubleCalcValue("Tension reinforcement provided", "A_{s,prov}", "mm^2", 0);
            rebarMinArea     = outputValues.CreateDoubleCalcValue("Minimum tension reinforcement", "A_{s,min}", "mm^2", 0);
            rebarMaxArea     = outputValues.CreateDoubleCalcValue("Maximum tension reinforcement", "A_{s,max}", "mm^2", 0);

            UpdateCalc();
        }
예제 #3
0
 public DropHead_Symmetrical()
 {
     model               = new Model();
     _spacingTop         = inputValues.CreateDoubleCalcValue("Spacing at top", "L_1", "m", 0.8);
     _spacingBottom      = inputValues.CreateDoubleCalcValue("Spacing at bottom", "L_2", "m", 0.8);
     _spacingVertical    = inputValues.CreateDoubleCalcValue("Vertical spacing", "h", "m", 1);
     _loadA              = inputValues.CreateDoubleCalcValue("Force A", "F_A", "kN", 1);
     _reactionA          = outputValues.CreateDoubleCalcValue("Reactions", "", "", 0);
     _reactionB          = outputValues.CreateDoubleCalcValue("Reactions", "", "", 0);
     _strutResolvedForce = outputValues.CreateDoubleCalcValue("Resolved strut force", "F_{strut}", "kN", 0);
     _tieForce           = outputValues.CreateDoubleCalcValue("Bottom tie force", "F_{tie}", "kN", 0);
 }
예제 #4
0
 private void initialise()
 {
     _concGrade = inputValues.CreateCalcSelectionList("Concrete grade", "35", new List <string> {
         "30", "35", "40", "45", "50", "60", "70", "80", "90"
     });
     _discontinuity = inputValues.CreateCalcSelectionList("Discontinuity", "Full", new List <string> {
         "Full", "Partial"
     });
     _nodeWidth           = inputValues.CreateDoubleCalcValue("Node width", "a", "mm", 300);
     _availableStrutWidth = inputValues.CreateDoubleCalcValue("Available strut width", "b", "mm", 600);
     _strutLength         = inputValues.CreateDoubleCalcValue("Strut length", "H", "mm", 2000);
     _strutForce          = inputValues.CreateDoubleCalcValue("Strut force", "F", "kN", 1000);
     _burstingForce       = outputValues.CreateDoubleCalcValue("Bursting force", "T", "kN", 0);
     _thickness           = inputValues.CreateDoubleCalcValue("Thickness", "t", "mm", 300);
     _tensionToReinforce  = outputValues.CreateDoubleCalcValue("Tension to reinforce", "T_{tie}", "kN", 0);
 }
예제 #5
0
 void initialise(double span, double udl)
 {
     this.span     = this.inputValues.CreateDoubleCalcValue("span", "l", "m", span);
     this.udl      = this.inputValues.CreateDoubleCalcValue("udl", "w", "kN/m", udl);
     moment        = this.outputValues.CreateDoubleCalcValue("moment", "M", "kNm", 0);
     shear         = this.outputValues.CreateDoubleCalcValue("Shear", "V", "kN", 0);
     endConditions = this.inputValues.CreateCalcSelectionList("End Condition", "Pinned", new List <string> {
         "Fixed", "Pinned"
     });
     momentCalc = new Dictionary <string, Action>()
     {
         { "Fixed", new Action(calcFixedMoment) }, { "Pinned", new Action(calcPinnedMoment) }
     };
     //filePath = this.inputValues.CreateCalcFilePath("Section Names", AppDomain.CurrentDomain.BaseDirectory + @"Libraries\Section_Names.csv");
     UpdateCalc();
 }
예제 #6
0
        public ConcreteCarbonCalculator()
        {
            InstanceName = "Concrete element";
            _mix         = inputValues.CreateCalcSelectionList("Concrete mix", "RC30", new List <string> {
                "GEN0", "GEN1", "GEN2", "GEN3", "RC20/25", "RC25/30", "RC28/35", "RC32/40", "RC40/50", "PAV1", "PAV2"
            });
            _replacement = inputValues.CreateCalcSelectionList("Cement replacement", "zero", new List <string> {
                "zero", "15%PFA", "30%PFA", "25%GGBS", "50%GGBS"
            });
            _rebarDensity = inputValues.CreateDoubleCalcValue("Rebar density", "", "kg/m^3", 150);
            _rcVol        = inputValues.CreateDoubleCalcValue("Volume of RC", "", "m^3", 1);

            _rcMass                 = outputValues.CreateDoubleCalcValue("Mass of RC", "", "kg", double.NaN);
            _carbonDensity          = outputValues.CreateDoubleCalcValue("Carbon density", "", "kg/m^3", double.NaN);
            _carbonDensityWithRebar = outputValues.CreateDoubleCalcValue("RC carbon density", "", "kg/m^3", double.NaN);
            _totalCarbon            = outputValues.CreateDoubleCalcValue("Total carbon", "", "T", double.NaN);

            genDictionary();
            UpdateCalc();
        }
 private void initialise()
 {
     _columnData1 = inputValues.CreateCalcListOfDoubleArrays("List of column data 2: T, H, L1, T1, L2, T2, W, L",
                                                             new List <double[]>
     {
         new double[] { 0, 35000, 1400, 56, 2800, 112, 1000, 1000 },
         new double[] { 112, 35000, 1400, 168, 2800, 224, 800, 800 }
     });
     _columnData2 = inputValues.CreateCalcListOfDoubleArrays("List of column data 1: T, H, L1, T1, L2, T2, W, L",
                                                             new List <double[]>
     {
         new double[] { 0, 35000, 1400, 56, 2800, 112, 1400, 1400 },
         new double[] { 112, 35000, 1400, 168, 2800, 224, 900, 900 }
     });
     concGrade = inputValues.CreateCalcSelectionList("Concrete grade", "35", new List <string> {
         "30", "35", "40", "45", "50", "60", "70", "80", "90"
     });
     notionalcreepcoeff = outputValues.CreateDoubleCalcValue("Notional creep coefficient", @"\varphi(t,t_0)", "", 0);
     charCompStr        = outputValues.CreateDoubleCalcValue("Concrete characteristic compressive strength", "f_{ck}", @"N/mm^2", 43);
     meanCompStr        = outputValues.CreateDoubleCalcValue("Concrete mean compressive strength", "f_{cm}", @"N/mm^2", 43);
     relativeHumidity1  = inputValues.CreateDoubleCalcValue("Relative humidity 1", "RH", "", 70);
     //relativeHumidity2 = inputValues.CreateDoubleCalcValue("Relative humidity 2", "RH", "", 50);
     //relativeHumiditySwitchTime = inputValues.CreateDoubleCalcValue("Relative humidity switch time", "t_{humiditychange}", "d", 80);
     //time0 = inputValues.CreateDoubleCalcValue("Time load applied", "t_0", "days", 28);
     time            = inputValues.CreateDoubleCalcValue("Time", "t", "days", 10000000);
     timeShrinkStart = inputValues.CreateDoubleCalcValue("Shrinkage start", "t_s", "days", 7);
     creepTimeCoeff  = outputValues.CreateDoubleCalcValue("Coefficient for creep with time", @"\beta(t,t_0)", "", 0);
     creepCoeff      = outputValues.CreateDoubleCalcValue("Creep coefficient", @"\varphi_0", "", 0);
     cementType      = inputValues.CreateCalcSelectionList("Cement type", "S", new List <string> {
         "S", "N", "R"
     });
     dryingStrain         = outputValues.CreateDoubleCalcValue("Unrestrained drying strain", @"\epsilon_{cd,0}", "", 0);
     totalShrinkageStrain = outputValues.CreateDoubleCalcValue("Total shrinkage strain", @"\epsilon_{cs}", "", 0);
     totalCreepMovement   = outputValues.CreateDoubleCalcValue("Total creep movement", "", "mm", 0);
     shrinkageMovement    = outputValues.CreateDoubleCalcValue("Shrinkage movement", "", "mm", 0);
     movementLevel        = inputValues.CreateDoubleCalcValue("Calc movement at level", "", "", 1);
     movement1            = outputValues.CreateDoubleCalcValue("Column 1 movement at level", "", "mm", 0);
     movement2            = outputValues.CreateDoubleCalcValue("Column 2 movement at level", "", "mm", 0);
     diffMovement         = outputValues.CreateDoubleCalcValue("Diff movement", "", "mm", 0);
     UpdateCalc();
 }
        public ConcreteStrengthClasses()
        {
            _grade = inputValues.CreateCalcSelectionList("Grade", "30", new List <string> {
                "30", "35", "40", "45", "50", "55", "60", "70", "80", "90"
            });
            _fck     = outputValues.CreateDoubleCalcValue("Characteristic cylinder strength", @"f_{ck}", "MPa", 0);
            _fckcube = outputValues.CreateDoubleCalcValue("Characteristic cube strength", @"f_{ck,cube}", "MPa", 0);
            _fcm     = outputValues.CreateDoubleCalcValue("Mean cylinder strength", @"f_{cm}", "MPa", 0);
            _fctm    = outputValues.CreateDoubleCalcValue("Mean tensile strength", @"f_{ctm}", "MPa", 0);
            _fctk005 = outputValues.CreateDoubleCalcValue("5th percentile tensile strength", @"f_{ctk,0.05}", "MPa", 0);
            _fctk095 = outputValues.CreateDoubleCalcValue("95th percentile tensile strength", @"f_{ctk,0.95}", "MPa", 0);
            _Ecm     = outputValues.CreateDoubleCalcValue("Mean modulus of elasticity", @"E_{cm}", "GPa", 0);
            _Ec1     = outputValues.CreateDoubleCalcValue("Compressive strain at peak stress", @"\epsilon_{c1}", "", 0);
            _Ecu1    = outputValues.CreateDoubleCalcValue("Ultimate compressive strain", @"\epsilon_{cu1}", "", 0);
            _Ec2     = outputValues.CreateDoubleCalcValue("Compressive strain at peak stress", @"\epsilon_{c2}", "", 0);
            _Ecu2    = outputValues.CreateDoubleCalcValue("Ultimate compressive strain", @"\epsilon_{cu2}", "", 0);
            _n       = outputValues.CreateDoubleCalcValue("Exponent", @"n", "", 0);
            _Ec3     = outputValues.CreateDoubleCalcValue("Compressive strain at peak stress", @"\epsilon_{c3}", "", 0);
            _Ecu3    = outputValues.CreateDoubleCalcValue("Ultimate compressive strain", @"\epsilon_{cu3}", "", 0);

            UpdateCalc();
        }