ANSYS刚度阵

#!user/bin/python
#-* -coding:UTF-8-*-
#打开矩阵文件
inpfile =open("D:\Ansys_Work\easyexample\Stiffness_mat.txt")
#读取所有内容
lines = inpfile.readlines()
inpfile.close()
#打开输出文件
outfile =open("D:\Ansys_Work\easyexample\outmatrix.txt",'w')
#解析矩阵文件的第二行
row_second = lines[1].split()
#得到矩阵的总行数(扣除头文件),此次实例中为585
Tol_content = int(row_second[0])
#得到列指针的总行数
Col_tol = int(row_second[1])
#得到矩阵元素总数
Row_tol = int(row_second[3])
#得到右端项的行数
Rhs_tol = int(row_second[4])
#初始化矩阵每列非零元素的起始行数
Star_row_num = [1] * Col_tol
#获取行起始数组
for i in range (Col_tol):
    temp = lines[i+5].split()
    Star_row_num[i] = int(temp[0])
    # print(Star_row_num)
for i in range (Rhs_tol):
    temp_len = Star_row_num[i+1] - Star_row_num[i]
    temp_len1 = Star_row_num[1] - Star_row_num[0]
    temp_len2 = Star_row_num[i] - Star_row_num[0]
    row_start_num = 5 + Col_tol + temp_len2
    Each_col_num = i + 1
    Each_col_num_str = str(Each_col_num)
    # print(Each_col_num_str)
    for j in range (temp_len):
        Each_row_num_str = lines[row_start_num + j].split()
        Each_row_num = int(Each_row_num_str[0])
        Each_row_num_str = str(Each_row_num)
        Each_ele_num = Row_tol +5 + Col_tol + temp_len2 + j
        Each_ele_str = lines[Each_ele_num].split()
        Each_ele_value = Each_ele_str[0]
        # print(Each_row_num_str)
        # print(Each_col_num_str)
        # print(Each_ele_value)
        #得到每一行应该输出的列号,行号以及元素值
        Each_row_list =Each_row_num_str,Each_col_num_str,Each_ele_value,'\n'
        a = '   '
        Each_line =a.join(Each_row_list)
        # print(Each_line)
        outfile.write(Each_line)

#输出右端项
for i in range(Rhs_tol):
    Rhs_num = Tol_content + 5 - Rhs_tol+i
    Rhs_each_row = lines[Rhs_num]
    # print(Rhs_each_row)
    # 去掉字符串前面的空格
    Rhs_each_row = Rhs_each_row.lstrip()
    outfile.write(Rhs_each_row)
    outfile.close()

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值