diff --git a/README.md b/README.md index d77f560..5e929b6 100644 --- a/README.md +++ b/README.md @@ -57,6 +57,24 @@ obj.solve(Id_bound,lx,ly,t,w,creep,ec,nu,nmax,mmax) - My2: Positive Moment at Cent. for the longer span +## aijRc.py +### how to +``` python +obj = Aij_rc_set() +obj.Ra(index) +obj.Ra_p(index,pitch) +obj.Ec(fc,gamma) +``` +### input +- index: "D10", "D13", ......, "D41" +- pitch: "200", "100" +- fc: compressive concrete strength, N/mm2 +- gamma: concrete dry density, kN/m3 +### return +- obj.Ra: Area of the bar +- obj.Ra_p: Area of the bar within 1.0 m +- Ec: young modulus by AIJ Standard + ## Module - numpy - sympy diff --git a/aijRc.py b/aijRc.py new file mode 100755 index 0000000..23c7eec --- /dev/null +++ b/aijRc.py @@ -0,0 +1,63 @@ +#! /Users/tsuno/.pyenv/shims/python3 +# -*- coding: utf-8 -*- + +""" +Created on Wed Jan 6 16:07:40 2021 +@author: Tsunoppy +""" +class Aij_rc_set(): + + # + # Young Modulus + def Ec(self,fc,gamma): + # gamma: Dry density + econ = 3.35 * 10**4 * ( gamma/24.0 )**(2) * (fc/60.0)**(1.0/3.0) + return econ + + # + # Ra: Rebar Area mm2 + def Ra(self,index): + if index =='D10': + return 71. + elif index =='D13': + return 127.0 + elif index =='D16': + return 199.0 + elif index =='D19': + return 287.0 + elif index =='D22': + return 387.0 + elif index =='D25': + return 507.0 + elif index =='D29': + return 642.0 + elif index =='D32': + return 794.0 + elif index =='D35': + return 957.0 + elif index =='D38': + return 1140. + elif index =='D41': + return 1340.0 + # + elif index=='D10+D13': + return 99.0 + elif index=='D13+D16': + return 163.0 + elif index=='D16+D19': + return 243.0 + else: + print("error") + return 'Err.' + + # mm2/m + def Ra_p(self,index,p): + # p: Bar pitch + return self.Ra(index)*1000.0/p + +# test +""" +obj = Aij_rc_set() +print( obj.Ra('D41')) +print( obj.Ra_p('D13',200.0)) +""" diff --git a/higashi.py b/higashi.py index 20cbe92..610bb19 100755 --- a/higashi.py +++ b/higashi.py @@ -1531,6 +1531,50 @@ def fxy_max(self,fxy,ndim,x1,x2,index): return fmax + ######################################################################## + # 2辺固定2辺支持版 + # p120, 3型による解 + def m_2fix_2pin(self,lamda,nu,nmax,mmax): + # mmax はダミー + # 初期計算 + pi = math.pi + a = 1.0 + b = lamda * a + y = [] + mx = [] + + for n in range(1,nmax+1): + + + beta = (2.0*n-1)/(2.0*b) * pi + beta_a = beta*a + + a1 = 2.0*(-1.0)**n / a**2 / beta**3 / b \ + *( math.cosh(beta_a)*math.sinh(beta_a) - beta_a )\ + /( math.cosh(beta_a)*math.sinh(beta_a) + beta_a ) + + mx.append(a1) + + mx_end = 0 + my_end = 0 + for n in range(1,nmax+1): + mx_end = mx_end + mx[n-1] + + # print calculation log + print('# ', 'Solve, two side fix w/ two side pin plate') + print() + print('ly/lx =', lamda, 'nu=', nu) + print('nmax =', nmax, 'mmax = 0(No Need)') + print() + print('mx = ', mx) + print('mx1 = ', mx_end/4) + print('my1 = ', 0.0) + print() + + # たわみ関数の呼び出 + #tmpData = self.w_4fix(lamda,nmax,mmax,mx,nu) + + #return mx_end/4,tmpData[0],my_end/4,tmpData[1],tmpData[2] ######################################################################## # End Class @@ -1544,6 +1588,7 @@ def fxy_max(self,fxy,ndim,x1,x2,index): #obj.m_2fix(lamda,nu,nmax,mmax,1) #obj.m_3fix_1pin(lamda,nu,nmax,mmax) +obj.m_2fix_2pin(lamda,nu,nmax,mmax) """ # 2変数の定義 sym.var('x y', real = True)