箱内矩阵创建、修改、运算后,最终目的是求解方程计算位置量,或者求得特征值和特征向量,这里一并介绍求解方法与过程。
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!模态形状(列)
声明:原创文章,欢迎留言与我讨论,如需转载留言