一个单轴材料的二次开发过程

  • 前言
  • 过程
  • 结语

前言

之前介绍了使用VS2019对OpenSees 3.0.0源代码进行编译的方法,在此基础上,我对源代码中提供的material二次开发实例(源代码目录–DEVELOPER–material–cpp)进行了试验,由于源代码中已经提供了该材料的h文件和cpp文件,因此本文主要介绍的是将自定义的材料嵌入到源代码的过程。

过程

  1. 本材料是单轴材料,材料名字为ElasticPPcpp
  2. 在material–uniaxial下添加h文件和cpp文件
  3. 在classTag.h类中添加新材料类编号,使其能被识别,格式如下: #define MAT_TAG_ElasticPPcpp 7777
  4. 修改actor项目中的FEM_ObjectBrokerAllclasses.cpp:首先包含新单轴材料的头文件,格式为:#include "ElasticPPcpp.h"(PS:这时可能会出现错误提示–“无法打开源文件 ElasticPPcpp.h”,这是因为ElasticPPcpp.h文件所在的目录没有在actor项目的包含目录中,因此在actor项目的包含目录中添加h文件的所在目录即可,同样问题解决方法相同),然后修改其中的getNewUniaxialMaterial()函数,在其中添加该材料的选项,格式如下:
case MAT_TAG_ElasticPPcpp:
return new ElasticPPcpp;
  1. 新增加的单轴材料需添加到TCL建模工具中,才能在分析中通过TCL命令进行定义,修改material–uniaxial–TclModelBuilderUniaxialMaterialCommand.cpp,先添加包含新材料的头文件:#include “ElasticPPcpp.h”,然后修改 TclModelBuilderUniaxialMaterialCommand函数,添加如下代码:
else if (strcmp(argv[1],"ElasticPPcpp") == 0) {void *theMat = OPS_ElasticPPcpp();if (theMat != 0) theMaterial = (UniaxialMaterial *)theMat;else return TCL_ERROR; }

这时可能会出现错误–未定义标识符“OPS_ElasticPPcpp”,解决方法是在该文件中包含材料的cpp文件,格式为#include <ElasticPPcpp.cpp>
6. 然后生成可执行文件,并且运行example1.tcl文件,运行结果如下所示,到此为止,一个简单的单轴材料二次开发完成。

结语

这是一个比较简单的二次开发实例,二次开发的难点是自定义材料的过程,希望本文能帮助到学习OpenSees二次开发同志。

OpenSees二次开发实例01相关推荐

  1. OpenSees二次开发实例02

    一个记录器的二次开发过程 前言 过程 结语 前言 本文介绍了一个源代码中附带的记录器的二次开发过程,记录器的h和cpp文件是源代码自带的.这次花费了我3天的时间,才实现了记录器的添加. 过程 本记录器 ...

  2. solidworks api二次开发实例详解_Solidworks开发语言对比及分析

    很多初学Solidworks二次开发的同学,也许都会纠结使用何种语言进行二次开发.对于Solidworks二次开发的语言,官方有VBA,VB.NET,C#以及C++,四种语言. 用户通常会有如下疑问, ...

  3. python对abaqus本构二次开发_基于Python的Abaqus二次开发实例讲解

    第 1 页 共 11 页 基于 Python 的 Abaqus 二次开发实例讲解 ( asian58 2013.6.26 ) 基于 Python 的 Abaqus 的二次开发便捷之处在于: 1 .所有 ...

  4. oa java 二次开发_泛微OA ecology 二次开发实例 开发完整.doc

    泛微OA ecology 二次开发实例 开发完整 二次开发培训文档 ECOLOGY系统框架结构 主要的程序结构 Ecology Classbean 存放编译后的CLASS文件 js 系统中使用的JAV ...

  5. OpenSees二次开发

    OpenSees二次开发 有关时间的函数传递搞定 有关rigidDiaphragm命令的bug解决 时间:2021/05/29 有关时间的函数传递搞定 时间:2021/05/29 在这里插入代码片 有 ...

  6. Python 语言 SAP2000 二次开发 实例

    目 录 Blog Links Remarks Example Blog Links DalNur | 博客总目录 Python语言 SAP2000 二次开发 -- 概述 Python语言 SAP200 ...

  7. lisp 圆柱螺旋线_Auto LISP对AutoCAD2002进行二次开发实例——绘制二维函数曲线

    Auto LISP 对 AutoCAD 2002 进行二次开发实例 ---绘制二维函数曲线Ξ李旭荣 ,任奕玲 ,梁秀英 ,刘梅英 (华中农业大学 工程技术学院 ,湖南 武汉 430070) 摘 要:主 ...

  8. 基于python的abaqus二次开发_基于PYTHON的ABAQUS二次开发实例讲解

    第 1 页 共 11 页 基于 Python 的 Abaqus 二次开发实例讲解 ( asian58 2013.6.26 ) 基于 Python 的 Abaqus 的二次开发便捷之处在于: 1 .所有 ...

  9. objectarx用户交互_AutoCAD2010二次开发实例教程(附光盘ObjectARX)

    导语 AutoCAD软件二次开发牵涉的面非常广,不可能在一本书中将其完全论述.王文波和邹清源等编著的<AutoCAD2010二次开发实例教程>把AutoCAD软件二次开发的内容归为实体对象 ...

  10. arcgis python实例_arcgis二次开发_arcgis二次开发python_arcgis二次开发实例

    [1.rar] - QQ连连看的源码.单消秒杀挂机等功能喜欢的朋友请拿去研究 [qqCHAR.rar] - qq 验证码识别程序 可以叫准确的识别出qq登陆前的验证码 [1.rar] - 本书以Vis ...

最新文章

  1. 你还不了解基于session的授权认证吗?
  2. c html转为datatable,C#中DataTable导出为HTML格式的方法
  3. 转载|网络编程中阻塞式函数的底层逻辑
  4. 有多个路由器的子网的分配
  5. Spring应用上下文 - - context
  6. 华为云龙api自动化工具_聊聊华为GDE刚发布的一体化低门槛开发平台ADC 2.0
  7. 解决gcc version 不匹配问题。
  8. [Vani有约会]雨天的尾巴(树上差分+线段树合并)
  9. 详解MessageBox(),MsgBox函数的正确使用
  10. 【ML小结8】降维与度量学习(KNN、PCA、因子分析、LDA)
  11. Opera中的opera密码修改,半残了
  12. 视频教程-2020年软考网络工程师基础知识历年真题详解软考视频教程-软考
  13. 新媒体运营胡耀文教程:从运营角度,教你4招破解销售推销套路
  14. 电脑蓝屏记录(RESOURCE_NOT_OWNED)
  15. STM32CubeMX5.6.1生成的代码无启动文件
  16. 妙用schedule执行php脚本定时任务
  17. 计算机培训普通话是什么,普通话培训(计算机辅助普通话测试介绍).ppt
  18. 对付虚伪的人,用这招!
  19. iOS代码混淆安全加固
  20. qq动态名片代码_《绿信集团》一员工因智能名片而改变人生

热门文章

  1. 计算机关机后风扇还转,小编教你电脑关机后CPU风扇还在转怎么解决
  2. 分布式存储Ceph之PG状态详解
  3. 几款任意波形发生卡推荐
  4. zblog如何调用HTML,Zblog教程:模板文件与调用标签详细说明
  5. python-sklearn数据分析-线性回归和支持向量机(SVM)回归预测(实战)
  6. 沉迷于网络的人数_一个沉迷于追求的搜索者
  7. 10个免费的英文企业名称及品牌生成器
  8. 最新版chromium 76如何支持xp
  9. 动态为Spring Boot项目中所有自定义的Controller添加过滤器的两种方法
  10. 基于vue transform: translateY 上下滑动实现