首页/文章/ 详情

FEM之在求解器中使用设计模式(10)---Visitor访问者模式

4年前浏览2089

在设计模式中,Visitor模式相对来说比较抽象和复杂,实现起来比其它模式也有一些难度。


visitor的主要作用是将数据结构与数据操作分离,解决稳定的数据结构和易变的操作耦合问题。关键代码实现:在数据基础类里面有一个方法接受访问者,将自身引用传入访问者。


举个简单的例子,有人委托你打听朋友的近况,你访问朋友家,然后通过和朋友聊天得到相关信息,然后根据自己的理解将朋友的近况反馈回来。


以多物理场中求解器的材料管理为例,多物理场的类型相对固定,材料数据也相对固定。有时候我们需要拿到这些数据进行加工,但是希望尽可能不要影响已有数据接口。比如某些材料的杨氏模量对温度敏感,对温度是一个函数表达式,这些计算我们希望在材料数据类外部进行。


在进行多物理场仿真时,我们需要同时拿到材料的各种场的属性数据,而这些数据按照物理场分类在不同的场材料管理库中。我们可以采用如下的visitor模式


针对不同的需求建立相应的visitor,比如在仿真前处理的MaterialPreprocessVistior,后处理提供MaterialPostVisitor,组装单刚矩阵MaterialOneMatrixVisitor等,在visitor针对每种不同的仿真类型(热,流体,电磁,声,结构等),提供相应的访问接口,在材料内部实现访问的内容,即在accpet()函数中处理相应的数据。


由多物理场仿真的特点可知,物理场的类型不会太多,如果添加新仿真类型的材料库,添加相应的visitor接口和accept接口即可,兼容性和扩展性能得到保证。

---------------------------------------------------------------------------------------------

版权声明:

原创文章,来源多物理场仿真技术,本文已经授权,欢迎分享,如需转载请联系作者。


仿真体系求解技术Mechanical APDLMechanicalWorkbench
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2020-11-28
最近编辑:4年前
多物理场仿真技术
www.cae-sim.com
获赞 126粉丝 322文章 220课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈