首页/文章/ 详情

MAPDL线性求解器,为矩阵求解方程和特征值提供手段

3年前浏览1867

箱内矩阵创建、修改、运算后,最终目的是求解方程计算位置量,或者求得特征值和特征向量,这里一并介绍求解方法与过程。

1.创建线性求解器引擎

*LSENGINE,Type,EngineName,Matrix,Option

其中Type为线性求解器引擎算法,可选BCS、DSS、LAPACK、DSP之一;BCS—Harwell-Boeing稀疏矩阵求解器(为稀疏矩阵的缺省求解器),DSS—MKL稀疏矩阵求解器,LAPACK—稠密矩阵求解器(为稠密矩阵的缺省求解器),DSP—分布式稀疏矩阵求解器。缺省求解算法会根据Matrix矩阵类型由程序确定。

EngineName为引擎名字,必须命名。Matrix为要求解的矩阵名,必须给定。

Option为DSS求解器的内存控制开关,INCORE—核内模式,OUTOFCORE—核外内存。

稀疏矩阵有BCS、DSS、DSP求解器,稠密矩阵只有LAPACK求解器。

2.线性求解系统的数值分解

*LSFACTOR,EngineName,Option

其中EngineName为求解器引擎名,即用*LSENGINE定义的名字。

Option为仅当LAPACK时的选项,且仅可为“INVERT”,即求稠密矩阵的逆矩阵(原矩阵存放逆矩阵)。稀疏矩阵不能求逆,需转换为稠密矩阵。

3.求解

*LSBAC, EngineName, RhsVector, SolVector

其中EngineName同*LSENGINE和*LSFACTOR命令。

RhsVector为右端项(荷载)向量,*DMAT或*VEC定义的既有向量。

SolVector为解向量,须由*DMAT或*VEC定义。

4.迭代求解

*ITENGINE, Type, EngineName, PrecondName, Matrix, RhsVector, SolVector, MaxIter, Toler

其中Type为求解算法,目前仅有PCG(预处理共轭梯度)求解算法(缺省)。

EngineName为迭代求解器引擎名,必须命名。

PrecondName为线性求解器名(由*LSENGINE定义),其系数矩阵做为预处理器。

Matrix为要求解的矩阵名。RhsVector为右端项向量名。SolVector为解向量,非零时将做为迭代初始向量。MaxIter为容许的最大迭代数,缺省为2倍的矩阵行数。Toler为收敛容差,缺省为1E-8。

此种求解法使用既有的分解矩阵做为预处理器,若已经求解既有矩阵,然后对矩阵做微小改动后再用此法求解效果显著。

5.不对称矩阵或有阻尼矩阵的模态求解

*EIGEN, Kmatrix, Mmatrix, Cmatrix, Evals, Evects

其中Kmatrix为刚度矩阵名,可为实矩阵或复矩阵。

Mmatrix为质量矩阵名。

Cmatrix为阻尼矩阵名(仅支持MODOPT,DAMP情况)。

Evals为特征值向量,为*VEC定义的m长度复向量,m为欲求特征值数(MODOPT命令定义)。

Evects为特征向量矩阵名,为*DMAT定义的n×m复矩阵,n为矩阵行数,m同上。

该求解器用于模态分析类型(ANTYPE,MODAL)并用MODOPT定义了模态求解选项,仅支持MODOPT中的DAMP、UNSYM、LANB、SUBSP选项。

因为质量矩阵不能为零,因此该命令不能用于普通矩阵的特征值和特征向量求解。

!例1基本运算

FINISH$/CLEAR$/POST1

*DMAT,A_M,D,ALLOC,4,4

*VEC,B1_M,D,ALLOC,4

*VEC,B2_M,D,ALLOC,4

A_M(1,1)=2,1,3,4$A_M(1,2)=3,0,5,1

A_M(1,3)=1,4,2,5$A_M(1,4)=4,3,3,2

B1_M(1)=23,15,34,31$B2_M(1)=67,57,83,77

!另存两个矩阵A1_M和A2_M

*DMAT,A1_M,D,COPY,A_M

*DMAT,A2_M,D,COPY,A_M

!A*X=B1的解为4,3,2,1

!A*X=B2的解为5,6,7,8

!求解过程=========================

!创建求解引擎MYS1

*LSENGINE,,MYS1,A_M

!数值分解(矩阵A_M)

*LSFACTOR,MYS1

!求解未知向量X1和X2

*LSBAC,MYS1,B1_M,X1_M

*LSBAC,MYS1,B2_M,X2_M

*PRINT,X1_M$*PRINT,X2_M

!求A1_M的逆矩阵

*LSENGINE,,MYS2,A1_M

*LSFACTOR,MYS2,INVERT

*PRINT,A1_M

!迭代求解方程=======================

!修改一个元素(原A1_M(2,3)=4)

*ITENGINE,PCG,MYD1,MYS1,A2_M,B1_M,X3_M

*PRINT,X3_M!此解同X1_M

A2_M(2,3)=3.0

*ITENGINE,PCG,MYD1,MYS1,A2_M,B1_M,X3_M!

*PRINT,X3_M!此解已改变

!特征值=======================

!例2模态分析的特征值和特征向量求解

!EX2.01 三自由度质量弹簧体系的模态分析

FINISH$/CLEAR$/FILNAME,KMC$/PREP7

M1=100$M2=200$M3=300

K1=1E4$K2=2E4$K3=4E4

ET,1,MASS21$ET,2,COMBIN14

KEYOPT,1,3,4$KEYOPT,2,3,2

R,1,M1$R,2,M2$R,3,M3

R,4,K1$R,5,K2$R,6,K3

N,4$N,1,1.0$N,2,2.0$N,3,3.0

TYPE,1$*DO,I,1,3

REAL,I$E,I$*ENDDO

TYPE,2$REAL,4$E,4,1

REAL,5$E,1,2$REAL,6$E,2,3

D,4,ALL$D,ALL,UY

/SOLU

ANTYPE,MODAL$MODOPT,LANB,3

MXPAND,3,,,YES$SOLVE

!/POST1$SET,LIST

!以下开始一些MAPDL的计算==============

!从FULL文件获取的均为BCS序列

*SMAT,K0_M,D,IMPORT,FULL,KMC.FULL,STIF

*SMAT,M0_M,D,IMPORT,FULL,KMC.FULL,MASS

*EIGEN,K0_M,M0_M,,TZZ_M,TZXL_M

*PRINT,TZZ_M!模态频率

*PRINT,TZXL_M!模态形状(列)

声明:原创文章,欢迎留言与我讨论,如需转载留言

代码&命令求解技术理论科普其他软件
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-01-28
最近编辑:3年前
王新敏
硕士 | 教授 好好学习,天天快乐
获赞 122粉丝 612文章 96课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈