跳转到主要内容

二维结构有限元分析

项目描述

anaStruct 2D Frames and Trusses

Python tests Documentation Status

分析二维框架和桁架的细长结构。确定弯矩、剪力、轴向力和位移。

安装

对于活跃开发版本

$ pip install git+https://github.com/ritchie46/anaStruct.git

或者对于某个发布版

$ pip install anastruct

阅读文档!

文档

问题

有问题?请在 gitter 上提问。

包含

  • 桁架 :heavy_check_mark
  • 梁 :heavy_check_mark
  • 弯矩线 :heavy_check_mark
  • 轴向力线 :heavy_check_mark
  • 剪力线 :heavy_check_mark
  • 位移线 :heavy_check_mark
  • 铰支座 :heavy_check_mark
  • 固定支座 :heavy_check_mark
  • 弹簧支座 :heavy_check_mark
  • 元素方向上的q载 :heavy_check_mark
  • 节点在全局x, y方向的点荷载:√
  • 恒载:√
  • 全局y方向的q荷载:√
  • 铰接元素:√
  • 旋转弹簧:√
  • 非线性节点:√
  • 几何非线性:√
  • 荷载情况和荷载组合:√
  • 截面通用类型 - 矩形和圆形:√
  • EU、US、UK钢材截面数据库:√

示例

from anastruct import SystemElements
import numpy as np

ss = SystemElements()
element_type = 'truss'

# Create 2 towers
width = 6
span = 30
k = 5e3

# create triangles
y = np.arange(1, 10) * np.pi
x = np.cos(y) * width * 0.5
x -= x.min()

for length in [0, span]:
    x_left_column = np.ones(y[::2].shape) * x.min() + length
    x_right_column = np.ones(y[::2].shape[0] + 1) * x.max() + length

    # add triangles
    ss.add_element_grid(x + length, y, element_type=element_type)
    # add vertical elements
    ss.add_element_grid(x_left_column, y[::2], element_type=element_type)
    ss.add_element_grid(x_right_column, np.r_[y[0], y[1::2], y[-1]], element_type=element_type)

    ss.add_support_spring(
        node_id=ss.find_node_id(vertex=[x_left_column[0], y[0]]),
        translation=2,
        k=k)
    ss.add_support_spring(
        node_id=ss.find_node_id(vertex=[x_right_column[0], y[0]]),
        translation=2,
        k=k)

# add top girder
ss.add_element_grid([0, width, span, span + width], np.ones(4) * y.max(), EI=10e3)

# Add stability elements at the bottom.
ss.add_truss_element([[0, y.min()], [width, y.min()]])
ss.add_truss_element([[span, y.min()], [span + width, y.min()]])

for el in ss.element_map.values():
    # apply wind load on elements that are vertical
    if np.isclose(np.sin(el.ai), 1):
        ss.q_load(
            q=1,
            element_id=el.id,
            direction='x'
        )

ss.show_structure()
ss.solve()
ss.show_displacement(factor=2)
ss.show_bending_moment()

from anastruct import SystemElements

ss = SystemElements(EA=15000, EI=5000)

# Add beams to the system.
ss.add_element(location=[0, 5])
ss.add_element(location=[[0, 5], [5, 5]])
ss.add_element(location=[[5, 5], [5, 0]])

# Add a fixed support at node 1.
ss.add_support_fixed(node_id=1)

# Add a rotational spring support at node 4.
ss.add_support_spring(node_id=4, translation=3, k=4000)

# Add loads.
ss.point_load(Fx=30, node_id=2)
ss.q_load(q=-10, element_id=2)

# Solve
ss.solve()

# Get visual results.
ss.show_structure()
ss.show_reaction_force()
ss.show_axial_force()
ss.show_shear_force()
ss.show_bending_moment()
ss.show_displacement()

实际应用案例。

非线性水积聚分析

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

anastruct-1.6.0.tar.gz (540.9 kB 查看哈希值)

上传时间

构建分发

anastruct-1.6.0-cp312-cp312-win_amd64.whl (610.2 kB 查看哈希值)

上传时间 CPython 3.12 Windows x86-64

anastruct-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl (797.3 kB 查看哈希值)

上传时间 CPython 3.12 musllinux: musl 1.2+ x86-64

anastruct-1.6.0-cp312-cp312-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl (799.6 kB 查看哈希值)

上传时间 CPython 3.12 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

anastruct-1.6.0-cp312-cp312-macosx_14_0_arm64.whl (607.5 kB 查看哈希值)

上传时间 CPython 3.12 macOS 14.0+ ARM64

anastruct-1.6.0-cp312-cp312-macosx_13_0_x86_64.whl (608.0 kB 查看哈希值)

上传时间 CPython 3.12 macOS 13.0+ x86-64

anastruct-1.6.0-cp311-cp311-win_amd64.whl (610.0 kB 查看哈希)

上传于 CPython 3.11 Windows x86-64

anastruct-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl (794.1 kB 查看哈希)

上传于 CPython 3.11 musllinux: musl 1.2+ x86-64

anastruct-1.6.0-cp311-cp311-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl (792.0 kB 查看哈希)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

anastruct-1.6.0-cp311-cp311-macosx_14_0_arm64.whl (607.5 kB 查看哈希)

上传于 CPython 3.11 macOS 14.0+ ARM64

anastruct-1.6.0-cp311-cp311-macosx_13_0_x86_64.whl (607.8 kB 查看哈希)

上传于 CPython 3.11 macOS 13.0+ x86-64

anastruct-1.6.0-cp310-cp310-win_amd64.whl (610.0 kB 查看哈希)

上传于 CPython 3.10 Windows x86-64

anastruct-1.6.0-cp310-cp310-musllinux_1_2_x86_64.whl (767.0 kB 查看哈希)

上传于 CPython 3.10 musllinux: musl 1.2+ x86-64

anastruct-1.6.0-cp310-cp310-manylinux_2_17_x86_64.manylinux_2_5_x86_64.manylinux1_x86_64.manylinux2014_x86_64.whl (764.6 kB 查看哈希)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

anastruct-1.6.0-cp310-cp310-macosx_14_0_arm64.whl (607.7 kB 查看哈希)

上传于 CPython 3.10 macOS 14.0+ ARM64

anastruct-1.6.0-cp310-cp310-macosx_13_0_x86_64.whl (608.1 kB 查看哈希)

上传于 CPython 3.10 macOS 13.0+ x86-64

支持者