Model and analyse framed structures with Python.
Implementación del método directo de rigideces en Python.
pymas usa Python y varias librerias científicas (véase Scipy). La recomendación es instalar Ananconda.
Puede obtener una copia de pymas descargándola de la página del repositorio, o puede clonar este repositorio con git.
git clone https://github.com/rvcristiand/pymas.git
Para importar pymas en otros proyectos, incluya la ruta del código fuente de la librería en la lista sys.path
.
sys.path.append('.../pymas/src/')
Puede analizar estructuras con la clase Structure.
from pymas import Structure
# model simplest beam
b = 0.5 # m
h = 1 # m
L = 10 # m
E = 4700*28**0.5*1000 # kN /m2
A = b * h # m2
w = 24*A # kN/m
# create the model
model = Structure(uy=True, rz=True)
# add materials
model.add_material('concrete', E, E / (2*(1+0.2)))
# add sections
rect_sect = model.add_rectangular_section('V0.5x1.0', width=b, height=h)
# add joints
model.add_joint('a', x=0)
model.add_joint('b', x=L)
# add frame
model.add_frame('1', 'a', 'b', 'concrete', 'V0.5x1.0')
# add supports
model.add_support('a', ux=True)
model.add_support('b', ux=True)
# add load patterns
loadPattern = model.add_load_pattern('self weight')
# add distributed loads
model.add_distributed_load('self weight', '1', fy=-w)
# solve the model
model.solve()
model.export('simplest_beam.json')
print(model.reactions['self weight']['a'].fy) # 60 kN
print(max(model.internal_forces['self weight']['1'].mz)) # 150 kN m
Puede contribuir en este proyecto creando un issue o haciendo pull requests.