python+feon有限元分析|Feon框架

关键字

二维节点:nAk=(“Ux”, “Uy”, “Phz”),nBk=(“Fx”, “Fy”, “Mz”)

三维节点:nAk=(“Ux”, “Uy”, “Uz”, “Phx” , “Phy” , “Phz”),nBk=(“Fx”, “Fy”, ,“Fz”, “Mx” , “My” , “Mz”)

Ux、Uy、Uz表示节点在总体坐标系中沿X、Y、Z三个方向的位移

Phx、Phy、Phz表示节点沿三个坐标轴方向的转角

Fx、Fy、Fz、Mx、My、Mz分别表示节点在总体坐标系中的力和弯矩

sx、sy、sz、sxy、syz、szx分别代表单元的正应力和剪应力

三个模块

  • base.py

  • tools.py

  • mesh.py

三个包

  • sa

  • ffa

  • derivation

sa

node.py

element.py

system.py

solver.py

draw2d.py

post_process.py

ffa

node.py

element.py

system.py

solver.py

derivation

base.py

dElement.py

integration.py

lagrange.py

模块

base.py

tools.py

mesh.py

Feon.sa.node.Node类

class  node

属性

coord

tuple,节点坐标

dim

int,节点维度

x

float,节点x坐标

y

float,节点y坐标

z

float,节点z坐标

nAk

list或tuple,节点位移keys

nBk

list或tuple,节点力keys

ID

None或int,节点编号

force

dictionary,节点力

disp

dictionary,节点位移

方法

__init__(*coord)

根据坐标输入类型定义节点坐标和维度,输入节点坐标

init_unknowns(*unknowns)

设置节点自由度

init_keys()

初始化节点keys

set_force(**forces)

设置节点力

get_force()

获取节点力

clear_force()

节点力数值归零

set_disp(**disp)

设置节点位移

get_disp()

获取节点位移

clear_disp()

节点位移数值归零

Feon.sa.element.StructElement类

class  StructElement

属性

nodes

tuple、list或numpy.ndarray,单元节点

dim

int,单元维度

elk

list或tuple,单元keys

ndof

int,单元节点自由度

ID

None或int,单元编号

volume

float,单元体积,一维返回长度,二维返回体积

non

int,单元节点数量

force

dictionary,单元力

etype

string,单元类型

T

numpy.ndarray,坐标转换矩阵

B

numpy.ndarray,单元应变矩阵

D

numpy.ndarray,单元本构矩阵

ke

numpy.ndarray,局部坐标系中的单元刚度矩阵

me

numpy.ndarray,局部坐标系中的单元质量矩阵

Ke

numpy.ndarray,整体坐标系中的单元刚度矩阵

Me

numpy.ndarray,整体坐标系中的单元质量矩阵

t

float,单元厚度,对于板、壳单元

方法

__init__(nodes)

初始化方法,输入节点,计算单元体积

init_unknowns()

定义单元节点自由度

init_keys()

初始化单元keys

calc_T()

计算单元坐标转换矩阵

calc_ke()

计算局部坐标系中的单元刚度矩阵

calc_Ke()

计算整体坐标系中的单元刚度矩阵

calc_me()

计算局部坐标系中的单元质量矩阵

calc_Me()

计算整体坐标系中的单元质量矩阵

evaluate()

通过节点位移计算单元力

load_equivalent(ltype,val)

分布载荷等效为节点载荷方法,目前只支持梁单元

Feon.sa.element.SolidElement类

class  SolidElement

属性

nodes

tuple、list或numpy.ndarray,单元节点

dim

int,单元维度

elk

list或tuple,单元keys

ndof

int,单元节点自由度

ID

None或int,单元编号

volume

float,单元体积,一维返回长度,二维返回体积

non

int,单元节点数量

stress

dictionary,单元应力

etype

string,单元类型

B

numpy.ndarray,单元应变矩阵

D

numpy.ndarray,单元本构矩阵

ke

numpy.ndarray,局部坐标系中的单元刚度矩阵

Ke

numpy.ndarray,整体坐标系中的单元刚度矩阵

Me

numpy.ndarray,整体坐标系中的单元质量矩阵

方法

__init__(nodes)

初始化方法,输入节点,计算单元体积

init_unknowns()

定义单元节点自由度

init_keys()

初始化单元keys

calc_D()

计算单元本构矩阵

calc_B()

计算单元应变矩阵

calc_Ke()

计算单元刚度矩阵

evaluate()

通过节点位移计算单元力

load_equivalent(ltype,val)

分布载荷等效为节点载荷方法,目前只支持梁单元

Feon.sa.system.System类

class  System

属性

nodes

dictionary,系统节点

elements

dictionary,系统单元

dim

int,系统维度

nAk

list或tuple,系统节点位移keys

nBk

list或tuple,系统节点力keys

mndof

int,系统中节点最大自由度

non

int,系统节点数量

noe

int,系统单元数量

Force

list,系统节点力,元素为字典类型

Disp

list,系统节点位移,元素为字典类型

ForceValue

list,系统节点力列阵

DispValue

list,系统节点位移列阵

KG

numpy.ndarray,总体刚度矩阵

KG_keeped

numpy.ndarray,处理后的总体刚度矩阵

MG

numpy.ndarray,总体质量矩阵

MG_keeped

numpy.ndarray,处理后的总体质量矩阵

Force_keeped

numpy.ndarray,处理后的节点力列阵

Disp_keeped

numpy.ndarray,求解方程组获得的节点位移列阵

deleted

list,被删除的节点位移在DistValue中的索引

keeped

list,保留的节点位移在DistValue中的索引

nonzeros

位移不为零的节点位移在DistValue中的索引及值

方法

add_node(node)

向系统中添加单个节点并进行编号

add_nodes(*nodes)

向系统中添加多个节点并进行编号

add_element(element)

向系统中添加单个单元并进行编号

add_elements(*elements)

向系统中添加多个单元并进行编号

init()

系统初始化方法

calc_KG()

计算总体刚度矩阵

calc_MG()

计算总体质量矩阵

add_node_force(nid,**forces)

施加节点力

add_node_disp(nid,**disp)

施加节点位移

add_element_load(eid,ltype,val)

对单元施加分布载荷,只支持梁单元

add_fixed_sup(*nids)

向系统添加固定支座

add_hinged_sup(*nids)

向系统添加铰支座

add_rolled_sup(nid,direction)

向系统添加滚动支座

calc_deleted_KG_matrix()

处理总体刚度矩阵

calc_deleted_MG_matrix()

处理总体质量矩阵

check_boundary_condition(KG)

检查边界条件,并对位移边界条件进行处理

check_deleted_KG_matrix()

检查处理后的总体刚度矩阵

check_deleted_MG_matrix()

检查处理后的总体质量矩阵

solve(model)

求解系统

get_nodes()

获取系统的节点信息

get_elements()

获取系统的单元信息

  • 20
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值