public static Dictionary<string, object> BasePlateBearingStrength(BasePlateShapeObject BasePlateShape, string Code = "AISC360-10")
        {
            //Default values
            double phiP_p = 0;


            //Calculation logic:
            phiP_p = BasePlateShape.Plate.GetphiP_p();

            return new Dictionary<string, object>
            {
                { "phiP_p", phiP_p }
 
            };
        }
        public static Dictionary<string, object> ConcentricallyLoadedBasePlateMinimumThickness(BasePlateShapeObject BasePlateShape, double P_u, string Code = "AISC360-10")
        {
            //Default values
            double t_min = 0;


            //Calculation logic:
            BasePlateConcentricallyLoaded bp = new BasePlateConcentricallyLoaded(BasePlateShape.Plate);
            t_min = bp.GetMinimumThicknessConcentricLoad(P_u);

            return new Dictionary<string, object>
            {
                { "t_min", t_min }
 
            };
        }
        public static Dictionary<string, object> TensionLoadedBasePlateMinimumThickness(BasePlateShapeObject BasePlateShape, double T_uAnchor, double x_anchor, double b_effPlate
            , string Code = "AISC360-10")
        {
            //Default values
            double t_min = 0;


            //Calculation logic:
            BasePlateTensionLoaded bp = new BasePlateTensionLoaded(BasePlateShape.Plate);
            t_min = bp.GetMinimumBasePlateBasedOnBoltTension(T_uAnchor, x_anchor, b_effPlate);

            return new Dictionary<string, object>
            {
                { "t_min", t_min }
 
            };
        }
        public static Dictionary<string, object> EccentricallyLoadedBasePlateMinimumThickness(BasePlateShapeObject BasePlateShape, double P_u, double M_u, string BendingAxis, double f_anchor
            , string Code = "AISC360-10")
        {
            //Default values
            double t_min = 0;

            
            Wosad.Steel.AISC.BendingAxis axis;
            bool IsValidAxisString = Enum.TryParse(BendingAxis, true, out axis);
            if (IsValidAxisString == false)
            {
                throw new Exception("Failed to convert string. Specify X or Y axis. Please check input");
            }

            //Calculation logic:
            BasePlateEccentricallyLoaded bp = new BasePlateEccentricallyLoaded(BasePlateShape.Plate);
            t_min = bp.GetMinimumThicknessEccentricLoadStrongAxis(P_u, M_u, axis, f_anchor);

            return new Dictionary<string, object>
            {
                { "t_min", t_min }
 
            };
        }