WSAP为开源结构力学求解器,开放简洁、实用的.NET接口。有.NET开发经验的个人及团队,不妨尝试下WSAP来满足力学求解需求,协助打造结构选型、截面优化及条文复核等衍生产品。上期推送(【WSAP】结构力学求解器(一):二阶效应分析[开源])分享WSAP的重力二阶效应处理方法,本期以多质点模型与框架结构为例,将WSAP模态分析结果与SAP2000模态分析结果进行对比。点击“阅读原文”可直接查看WSAP开源项目。
算例关键接口示例
-
//模型初始化
-
//量纲:N、mm、t
-
var model =new WModelNet();
-
-
/// <summary>
-
/// WModelNet:添加节点
-
/// </summary>
-
/// <param name="tag"> 节点编号 </param>
-
/// <param name="x"> 节点X坐标 </param>
-
/// <param name="y"> 节点Y坐标 </param>
-
/// <param name="z"> 节点Z坐标 </param>
-
/// <param name="isFix"> 节点是否约束 </param>
-
/// <returns> 节点对象 </returns>
-
WNodeNet node = model.AddNode(int tag, double x, double y, double z, bool isFix);
-
-
/// <summary>
-
/// WModelNet:添加单质点
-
/// 本命令仅适用于多质点模型
-
/// </summary>
-
/// <param name="mass"> 质量 </param>
-
/// <param name="stiffness"> 刚度 </param>
-
/// <returns> 是否添加成功 </returns>
-
bool isSuccess = model.AddDOF(double mass, double stiffness);
-
-
/// <summary>
-
/// WModelNet:添加节点质量
-
/// </summary>
-
/// <param name="nodeTag"> 节点编号 </param>
-
/// <param name="transfMass"> 平动质量 </param>
-
/// <param name="inertiaMass"> 扭转质量 </param>
-
/// <returns> 是否添加成功 </returns>
-
bool isSuccess = model.SetNodeMass(int nodeTag, double transfMass, double inertiaMass);
-
-
/// <summary>
-
/// WModelNet:添加坐标为Z的所有节点
-
/// </summary>
-
/// <param name="z"> Z坐标 </param>
-
/// <returns> void </returns>
-
model.FixZ(double z);
-
-
/// <summary>
-
/// WModelNet:添加矩形柱单元,默认考虑P-Delta
-
/// 截面局部向量默认高度方向指向全局Y向
-
/// 默认不考虑刚域
-
/// </summary>
-
/// <param name="iNodeTag"> I端节点编号 </param>
-
/// <param name="jNodeTag"> J端节点编号 </param>
-
/// <param name="width"> 截面宽度 </param>
-
/// <param name="height"> 截面高度 </param>
-
/// <returns> 单元对象 </returns>
-
WElementNet column = model.AddRectConcreteColumn(int iNodeTag, int jNodeTag, double width, double height);
-
-
/// <summary>
-
/// WModelNet:添加矩形梁单元,默认不考虑P-Delta
-
/// 截面局部向量默认高度方向指向全局Z向
-
/// 默认不考虑刚域
-
/// </summary>
-
/// <param name="iNodeTag"> I端节点编号 </param>
-
/// <param name="jNodeTag"> J端节点编号 </param>
-
/// <param name="width"> 截面宽度 </param>
-
/// <param name="height"> 截面高度 </param>
-
/// <returns> 单元对象 </returns>
-
WElementNet beam = model.AddRectConcreteBeam(int iNodeTag, int jNodeTag, double width, double height);
-
-
/// <summary>
-
/// WModelNet:创建有限元模型
-
/// </summary>
-
/// <param name="clearLoadCases"> 是否清空荷载 </param>
-
/// <returns> 是否创建成功 </returns>
-
bool isSuccess = model.CreateFEModel(bool clearLoadCases);
-
-
/// <summary>
-
/// WModelNet:模态分析
-
/// </summary>
-
/// <param name="modeNumber"> 模态数量 </param>
-
/// <returns> 周期列表 </returns>
-
List<double> periodList = model.DoEigen(int modeNumber);
多质点模型测试
图1 WSAP多质点模型模态分析
图4 WSAP框架结构模态分析Gif
精彩回顾:
【会议总结】OpenSEES Days Eurasia 2019 in PolyU
【PBSD】【OpenSees】在2019日本E-Defense盲测比赛的表现
-
PBSD
【PBSD】2019年更新历史——结构抗震性能设计软件PBSD
【PBSD】超限工程好助手:结构抗震性能设计软件PBSD功能简介
【PBSD】【OpenSEES】【YTO】智能化的结构弹塑性分析全套解决方案
【PBSD】V1.0.5.0版正式发布:免费地震动工具箱之教学视频
【PBSD】【PERFORM-3D】性能前馈集中塑性铰单元的定义、优势与测试
【PBSD】性能前馈集中塑性单元PFLPH与纤维单元力学性能对比
-
OpenSees
【OpenSEES】OpenSEES历史版本下载:v1.7.2-v3.1.0
【OpenSees】应力元纤维单元的Localization Issues
【OpenSEES】浅析纤维单元(一):单元剖分数对刚度法纤维单元力学性能的影响
【OpenSEES】浅析纤维单元(二):积分点数对刚度法纤维单元力学性能的影响
【OpenSEES】浅析纤维单元(三):积分点数对柔度法纤维单元力学性能的影响
【OpenSEES】浅析迭代(二):基于LineSearch优化迭代算法
【OpenSEES】浅析迭代(三):基于Krylov优化迭代算法
【OpenSees】SecAggregator为DispBC赋予剪切刚度乃无用功
-
WSAP
-
编程与工具
【工具】OSRun [OpenSees运行辅助工具][开源]
【工具】FSV [OpenSees纤维截面可视化工具][开源]