public override RespostaCisalhamento Calcula(Secao secao, double cortante, double fck, double fyk, double inclinacaoBiela, double inclinacaoEstribo)
        {
            double fckMPa = fck * 10.0;
            double alfav  = (1 - fckMPa / 250);

            double vrd2 =
                0.54 * alfav * (fck / 1.4) * (Cotan(inclinacaoBiela) + Cotan(inclinacaoEstribo))
                * Math.Pow(Math.Sin(inclinacaoBiela), 2) * secao.Largura * secao.AlturaUtil;

            double vc0 = 0.09 * Math.Pow(fckMPa, 2.0 / 3.0) * secao.Largura * secao.AlturaUtil / 10.0;

            double vc;

            if (cortante <= vc0)
            {
                vc = vc0;
            }
            else if (cortante < vrd2)
            {
                vc = vc0 - ((cortante - vc0) / (vrd2 - vc0)) * vc0;
            }
            else
            {
                vc = 0;
            }

            double asw =
                (111 * (cortante - vc)) / (secao.AlturaUtil * ((1 / Math.Tan(inclinacaoBiela)) + (1 / Math.Tan(inclinacaoEstribo))) * (fyk / 1.15) * Math.Sin(inclinacaoEstribo));

            return(new RespostaCisalhamento(asw, vc, vrd2));
        }
        public override RespostaCisalhamento Calcula(Secao secao, double cortante, double fck, double fyk, double inclinacaoBiela, double inclinacaoEstribo)
        {
            double fckMPa = fck * 10.0;
            double alfav  = (1 - fckMPa / 250);

            double fyd = Math.Min(fyk / 1.15, 50 / 1.15);

            double vc   = 0.09 * Math.Pow(fckMPa, 2.0 / 3.0) * secao.Largura * secao.AlturaUtil / 10.0;
            double vrd2 = 0.27 * alfav * (fck / 1.4) * secao.Largura * secao.AlturaUtil;
            double asw  =
                (111 * (cortante - vc)) / (secao.AlturaUtil * (Cotan(inclinacaoBiela) + Cotan(inclinacaoEstribo))
                                           * fyd * Math.Sin(inclinacaoEstribo));

            return(new RespostaCisalhamento(asw, vc, vrd2));
        }
 public abstract RespostaCisalhamento Calcula(Secao secao, double cortante, double fck, double fyk, double inclinacaoBiela, double inclinacaoEstribo);