找回密码
 注册
Simdroid-非首页
查看: 774|回复: 14

[命令/FISH] 关于user define model

[复制链接]
发表于 2005-11-9 11:59:33 | 显示全部楼层 |阅读模式 来自 上海杨浦区
flac提供的C++的二次开发,可是其接口说明非常不详细。
最近想自己写一个modified camclay model,进行到一般就over了,呵呵。不知道那位朋友有比较详细的接口说明可以提供,手册上的udm那一章实在是太简略了,虽然有mc材料和strain soft 材料可以参考,可以对其本构模型virtual base class中的成员函数的参数说明实在难以看懂。
搞了快两个礼拜了,难以进行下去,那位朋友可以提供帮助啊?到时候老规矩,还是和大家共享source code,呵呵。
 楼主| 发表于 2005-11-9 12:01:02 | 显示全部楼层 来自 上海杨浦区

Re:关于user define model

Simdroid开发平台
特别的,有那些朋友做一些本构的,可以提供一些建议啊。
starsmoon@yeah.net
发表于 2005-11-9 14:39:11 | 显示全部楼层 来自 同济大学

Re:关于user define model

A workspace has already been created for the user — “UDM.DSW.” (See “UDM.ZIP” in the “\ITASCA\Models\UDM” folder.) It contains a project called “UDM.DSP” that contains example source and header files called “USERSSOFT.CPP” and “USERSSOFT.H.”.....

我也想自己搞一个,可是这里面提到的东西我这里没有。估计他提供了一个工作空间,一些基本的东西已经有了,只要自己往里面添加东西就行了。应该是就像ObjectARX二次开发一样,官方提供的Wizard很方便。
发表于 2005-11-9 14:59:30 | 显示全部楼层 来自 江苏南京

Re:关于user define model

我来贡献一点自己的成果:
FLAC3D的二次开发环境提供了开放的用户接口,在软件安装文件中包含了软件自带所有本构模型的源代码,且给出了Mohr-Coulomb模型和应变软化模型的编译示例,因此可以方便地进行本构模型的修改与开发。为了方便起见,下面的说明以建立UserModel模型为例。
(1) 在模型头文件(usermodel.h)中进行新的本构模型派生类的声明,修改模型的ID(为避免与已有模型冲突,一般要求大于100)、名称和版本,修改派生类的私有成员,主要包括模型的基本参数及程序执行过程中主要的中间变量。
(2) 在程序C++文件(usermodel.cpp)中修改模型结构(UserModel::UserModel(bool bRegister): Constit -utive Model)的定义,这是一个空函数,主要功能是给(1)中定义的所有私有成员赋初值,一般均赋值为0.0。
(3) 修改const char **UserModel:roperties()函数,该函数包含了给定模型的参数名称字符串,在FLAC3D的计算命令中需要用到这些字符串进行模型参数赋值。
(4) const char **UserModel::States()函数是单元在计算过程中的状态指示器,可以按照需要进行修改指示器的内容。
(5) 按照派生类中定义的模型参数变量修改double UserModel::GetProperty()和void UserModel:: SetProperty()函数,这两个函数共同完成模型参数的赋值功能。
(6) const char * UserModel::Initialize()函数在执行CYCLE命令或大应变模式下对于每个模型单元(zone)调用一次,主要执行参数和状态指示器的初始化,并对派生类声明中定义的私有变量进行赋值。值得注意的是,Initialize()函数调用时没有定义应变分量,但可以调用应力分量,但不能对应力进行修改。
(7) const char * UserModel::Run()是整个模型编制过程中最主要的函数,它对每一个字单元(sub-zone)在每次循环时均进行调用,由应变增量计算得到应力增量,从而获得新的应力。在计算过程中,要根据单元应力情况对单元状态指示器进行赋值。当进行塑性模型编制时,需对达到塑性的应力状态进行修正。
(8) 修改const char * UserModel::SaveRestore()中的变量,修改方法同(2)和(5),该函数的主要功能是对计算结果进行保存。
(9) 程序的调试有两种方法。①在VC++的工程设置中将FLAC3D软件中的EXE文件路径加入到程序的调试范围中,并将FLAC3D自带的DLL文件加入到附加动态链接库(Additional DLLs)中,然后在Initialize()或Run()函数中设置断点,进行调试;②在程序文件中加入return()语句,这样可以将希望得到的变量值以错误提示的形式在FLAC3D窗口中得到。

评分

1

查看全部评分

发表于 2005-11-10 04:40:32 | 显示全部楼层 来自 广西贵港

Re:关于user define model

谢谢lakewater斑竹的贡献,顶!
发表于 2005-11-14 16:32:41 | 显示全部楼层 来自 山东青岛

Re:关于user define model

积分越少的人越需要帮助,请斑竹考虑一下,取消积分限制。
chenfeng2005 该用户已被删除
发表于 2005-11-20 20:29:36 | 显示全部楼层 来自 湖北武汉
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2008-2-17 23:22:55 | 显示全部楼层 来自 河北唐山
原帖由 chenfeng2005 于 2005-11-20 20:29 发表

支持

啊,我感觉这里真是太好了,这里注册了就可以下载东西,不像有的论坛非要发多少帖子,回多少话。其实那样很不好的,为了回而回,灌太多的水,反而把有用的东西给冲淡了,至少要翻页去找半天。

真正要学东西的,自然会来这里。
回复 不支持

使用道具 举报

发表于 2009-4-1 14:51:01 | 显示全部楼层 来自 辽宁大连
二次开发太难了,支持版主。
回复 不支持

使用道具 举报

发表于 2010-9-9 08:37:59 | 显示全部楼层 来自 湖北武汉
好像积分比较难以上升!
回复 不支持

使用道具 举报

发表于 2011-6-16 16:32:54 | 显示全部楼层 来自 北京
支持斑竹哦,不过程序确实不懂,。还要二次开发,太难了哦。
回复 不支持

使用道具 举报

发表于 2011-9-25 12:42:08 | 显示全部楼层 来自 陕西西安
最近想弄一下这东西,但不知道怎么着手
回复 不支持

使用道具 举报

发表于 2011-10-3 16:01:19 | 显示全部楼层 来自 上海
要往这个方向努力,顶
回复 不支持

使用道具 举报

发表于 2012-6-12 11:46:32 | 显示全部楼层 来自 北京
本构有弄出来的吗?小弟最近也想搞一个,现在还是一头雾水中呢帮帮忙吧:sunleave@yahoo.cn
回复 不支持

使用道具 举报

发表于 2012-6-30 19:20:49 | 显示全部楼层 来自 天津
lakewater 发表于 2005-11-9 14:59
我来贡献一点自己的成果:
FLAC3D的二次开发环境提供了开放的用户接口,在软件安装文件中包含了软件自带所 ...

谢谢lakewater !
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-24 20:25 , Processed in 0.053341 second(s), 19 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表