abaqus&FEA资料-科研&工具-导航

复合材料力学

BLOGs上的书籍共享文件夹

img

ABAQUS Books

编程代码

在线IDE

数据传递-中间格式

常用的中间格式有:xml,json,csv等.

GUI库

python 高级用法-文章

第三方库

提供了丰富的数据结构和算法实现,方便Python开发者在日常工作中进行数据处理、算法实现和数据结构操作.这个库包含了多种数据结构,如链表、栈、队列、堆、字典、树等,以及常用的算法实现,比如排序算法、搜索算法等.

多种算法:支持多种常用的数据挖掘算法,如聚类、分类、关联规则挖掘等

数据处理

绘图工具

数学公式

官网并不免费,其他懂得都懂

基本免费

很强,有一定免费额度

数值模拟

数值计算及有限元理论

开源项目

商用软件

工程设计

视频图像

实用工具

博客论坛

编程模板

  • vtk 文件语法--来自易木响叮当公众号
# vtk DataFile Version 3.0
Finite Element Results
ASCII
DATASET UNSTRUCTURED_GRID
POINTS 节点数 float
x1 y1 z1
x2 y2 z2
...
CELLS 单元数 (每个单元的节点数+1)*单元数
每个单元的节点数 节点1 节点2 节点3 节点4
每个单元的节点数 节点1 节点2 节点3 节点4
...
CELL_TYPES 单元数
单元1类型
单元2类型
...
POINT_DATA 节点个数
SCALARS 节点场变量名字 float 分量个数
LOOKUP_TABLE default
分量1 分量2
分量1 分量2
...
SCALARS 节点场变量名字 float 分量个数
LOOKUP_TABLE default
分量1 分量2
分量1 分量2
...
CELL_DATA 单元个数
SCALARS 单元场变量名字 float 分量个数
LOOKUP_TABLE default
分量1 分量2
分量1 分量2
...
SCALARS 单元场变量名字 float 分量个数
LOOKUP_TABLE default
分量1 分量2
分量1 分量2
...
  • 刚度矩阵的格式转换

实现了不同notation格式(应力,应变,刚度矩阵)之间的转换,可以根据需要选择使用.

see【Python脚本】刚度矩阵格式转换 - FE-有限元鹰 - 博客园

def tMatrix(target:str='abq-sta')->np.ndarray:
    """定义一个转换矩阵T,将应变应力从标准Voigt形式转换到Abaqus,Ls-dyna,Ansys等软件的应力应变形式"""
    match target:
        case 'abq-sta':
            # Abaqus/Standard应力应变形式
            t=np.array([[1,0,0,0,0,0],
                        [0,1,0,0,0,0],
                        [0,0,1,0,0,0],
                        [0,0,0,0,0,1],
                        [0,0,0,0,1,0],
                        [0,0,0,1,0,0]],dtype=float)
        case 'ls-dyna':
            # Ls-dyna应力应变形式
            t=np.array([[1,0,0,0,0,0],
                        [0,1,0,0,0,0],
                        [0,0,1,0,0,0],
                        [0,0,0,0,0,1],
                        [0,0,0,1,0,0],
                        [0,0,0,0,1,0]],dtype=float)
        case 'ansys':
            # Ansys应力应变形式
            t=np.array([[1,0,0,0,0,0],
                        [0,1,0,0,0,0],
                        [0,0,1,0,0,0],
                        [0,0,0,0,0,1],
                        [0,0,0,1,0,0],
                        [0,0,0,0,1,0]],dtype=float)
        case 'abq-exp':
            # Abaqus/Explicit应力应变形式
            t=np.array([[1,0,0,0,0,0],
                        [0,1,0,0,0,0],
                        [0,0,1,0,0,0],
                        [0,0,0,0,0,1],
                        [0,0,0,1,0,0],
                        [0,0,0,0,1,0]],dtype=float)
        case _:
            raise ValueError("target参数错误")
    return t

def StiffnessFormatTransform(C:np.ndarray,
            target:str='abq-sta',
            source:str='voigt')->np.ndarray:
    """将标准刚度矩阵C转换为ABAQUS格式的刚度矩阵
    
    input:
    
    C: (6,6) np.ndarray, 标准刚度矩阵
    
    target: str, 目标格式,可选值'abq-sta'(Abaqus/Standard), 'ls-dyna'(Ls-dyna), 'ansys'(Ansys), 'abq-exp'(Abaqus/Explicit)
    
    source: str, 源格式,可选值'voigt'(Voigt格式)
    
    output:
    
    C_target: (6,6) np.ndarray, 目标格式的刚度矩阵
    
    """
    t=tMatrix(target)
    if source=='voigt':
        return t.T.dot(C).dot(t)
    else:
        assert True, f"从{source}到{target}的转换尚未实现"

def StressFormatTransform(S:np.ndarray,
            target:str='abq-sta',
            source:str='voigt')->np.ndarray:
    """将标准应力向量S={sigma11,sigma22,sigma33,tau23,tau13,tau12}^T转换为target格式的应力向量"""
    t=tMatrix(target)
    if source=='voigt':
        return t.dot(S)
    else:
        assert True, f"从{source}到{target}的转换尚未实现"

def StrainFormatTransform(E:np.ndarray,
            target:str='abq-sta',
            source:str='voigt')->np.ndarray:
    """将标准应变矩阵E={eps11,eps22,eps33,gamma23,gamma13,gamma12}^T转换为target格式的应变矩阵"""
    t=tMatrix(target)
    if source=='voigt':
        return t.T.dot(E).dot(t)
    else:
        assert True, f"从{source}到{target}的转换尚未实现"

一些随机图片的API整理

posted @ 2023-01-14 16:57  FE-有限元鹰  阅读(421)  评论(0编辑  收藏  举报