博文

面向对象有限元软件Sfea介绍(2007-06-08 18:36:00)

摘要: Sfea介绍
      Sfea(Structual-Finite-Element-Analysis结构有限元分析)是一款正在研发中的计算力学软件,采用有限元方法、泛型和面向对象编程等技术(c++,stl,wxWidgets,opengl),主要用于求解土工结构力学分析中涉及较广的静动力流固耦合问题。       本软件目前研发阶段正在招新中,有意向者请将简历发自oopfem@163.com         Sfea相关问题回答 
    (一)、何为计算力学?
    (二)、何为有限元方法?
    (三)、有限元方法步骤?
    (四)、有限元软件浅谈?
    (五)、何为耦合问题?
    (六)、为何Sfea采用泛型方法与面向对象技术?
    (七)、何为wxWidgets?
    (八)、何为stl?
    (九)、何为opengl?
    (十)、何为结构工程力学问题?
  

(一)、何为计算力学?

      随着计算机的发展,计算机技术、计算数学和力学交叉而产生了一个新的学科分支,这就是计算力学。计算力学致力于研究采用计算机技术求解工程和科学中的力学及与力学有关的耦合问题的理论、算法和软件。计算机技术提供的可能性和来自工业和其他科学部门的需求推动着计算力学的飞速发展,而计算力学已经取得的成就,使得在这世纪之交,计算已经和实验及理论分析成为力学工作者解决工程和科学......

阅读全文(7850) | 评论:5

现代围城_经典语录(2007-05-13 16:16:00)

摘要: 现代围城—聚焦中国城市的婚姻家庭,  摘几句其中经典: (包括其中引用的部分名人名言) 市场不相信眼泪,每个人都必须学会自救。 面对市场面对未来,任何人都难以轻松地依靠文凭或学历的荫庇。 互相研究了3周,相爱了3个月,吵架了3年,彼此忍耐了30年——这就叫婚姻。 极端的压抑与人的本性相左,必然容易导致极端的放纵。
弗罗伊德说:“人类的文明史,也就是人类爱欲被压抑的历史。” 恋爱是魔术,婚姻是技术。 恋爱真是没有道理可言。恋爱中的人几乎都一样可爱,所以你不必诧异嫦娥也许会和猪八戒相爱。 常言道“物以类聚,人以群分”有相同需求的角色观念的人较易缔结婚姻。事先考察清楚对方的角色观念,可以减少始料未及的矛盾。 失恋的概念缘于爱情的不能存活。谁要感染失恋这个病毒,比杀了你还难受。首先是绝望:感情储蓄连同对这个世界的美好感觉被洗劫一空,你开始不相信女人,把女人的外延无限扩大,你的敌人已增加到人类的一半。紧接着,就学会了仇恨,迅速掌握一门伪科学——偏激,在这一段特殊的日子里,她似乎能给你提供一个咒骂的麦克风,倾泻所有的积愤,倾泻在一场智力游戏失利后对规则的怀疑:尽管你没有作弊,你还是输了。 家庭就像一所房屋,夫妻便是支撑屋顶的梁、檩。梁与檩各有各的功用,如果不量其功用而随意调换其位置,那屋顶即使不坍塌,也会变形。 别和人家比太太, 我们要学会赞美妻子。 没有爱情的婚姻是不道德的婚姻。——恩格斯 在人的一生中,妻子是青年时代的情人,中年时代的伴侣,暮年时代的守护。所以在人的一生中,只要有合适的对象,任何时候结婚都是有道理的。——(英)培根
单纯可爱,成熟也可爱。 成功的男人或女人总容易让人关心其家庭私生活。 当女人没有职业和才华时,美丽就是她们唯一的机会。 智慧和自尊是女性妩媚娇柔背后不可缺少的脊梁。失去了智慧和尊严,即使再靓丽,充其量不过是别人舌尖上的调味品而已,或者成为大款脖子上的“安娜”,成为装饰世界的一道风景线。 恋爱是一场梦,直到结婚时才苏醒。——(英)薄柏
男性更多地希望得到传统的贤......

阅读全文(18775) | 评论:4

梦回周朝思妲姬(2007-07-04 15:23:00)

摘要:梦回周朝思妲姬 紫烟缭绕,梦境回旋。 风若遥远的回音,带着无限的惆怅和期待,寻找记忆里宁静的枫桥、令人陶醉的弦音; 雨似缠绵的情思,夹着悲伤的依恋和怀想,呼唤轮回里尘封的历史、无法忘却的旧事。         多少生命和思想,在岁月中蹉跎成泥塑?        多少期盼和渴望,对着走过汉唐,走过明清的星月,渐次消瘦? 多少欢乐和忧伤,在匆匆时光中悄然流逝? 思念,此时,是宁静的海,是温暖的痛,是绵绵不绝、放声歌唱的夜晚。 穿越清风鸣蝉之夜,一条纯净的月光之链,一杯醉人的释怀之酒,一滴寂寞的哀伤之泪,轻抒: 妲姬,为何出身狐仙却又坠入尘世? 秋娘,为何清风拂面却又郁郁寡欢? 林昭,为何光芒丽彩却又灵魂丧失? 唯有你,明儿, 螓首蛾眉而气似幽兰,手如柔荑而肤如凝脂;
海棠春睡而荣曜秋菊,灵巧风流而冰清玉洁。 我沉入原始的渴望,依偎青青的草地,心灵之海异常平静,恋恋之心摇荡无比思念的情怀。   声明: 酒后胡乱写文章,明儿只是朋友,呵呵,酒醒后一看,自己都感觉有点麻。  ......

阅读全文(17244) | 评论:3

放弃MFC,转学wxWidgets(2007-04-10 20:00:00)

摘要:    Julian Smart 1992年在Edinburgh大学的人工智能程序学院开始开发wxWindows。在1995年 Markus Holzem完成了Xt版本的移植。在1997年Windows 和 GTK+ 的移植版整合并放入了 CVS 档案库。2004年更名为wxWidgets。      wxWidgets是用来为普通桌面程序和移动设备程序开发用户界面的工具包。由于它是一个框架(Framework),所以它在提供标准程序行为的同时也消除了程序底层的复杂性。wxWidgets库包括了大量的类和方法供程序员使用,甚至可供程序员定制其中某些类别以满足不同的需求。一个典型的应用程序窗口包括标准的控件,特殊图形的绘制和对来自鼠标键盘等输入设备的响应。同时也与其它进程通信或是驱动其它程序。换句话说,程序员利用wxWidgets开发软件,能实现现代程序能实现的所有功能,并且相对轻松。
    尽管wxWidgets通常被成为“用户图形界面开发工具包”,但事实上它所提供的功能决不仅限于此。它的其他特性能够应用与软件开发的各个方面。这个特点很重要,因为所有基于wxWidgets的应用程序都应能移植到不同的平台,而不仅仅是移植界面。wxWidgets提供了各种类库用以支持文件流(files and streams)、多线程、程序设置、进程间通信、在线帮助、数据库访问等等 wxWindows为你隐藏了全部平台相关的代码。它是一个与平台无关的framework,它有如下特点:    它是非常全面的,拥有很多实用的类。It is very complete. There are many utility classes. 它仍然在快速的发展中。It is still heavily developed. 支持很多的编译器与平台: Windows, Linux, Mac, Unix. 拥有大量的文档。There's a lot of documentation. 个人与商业机构都可以自由的使用它。It's free for personal and commercial ......

阅读全文(11789) | 评论:2

千万别学别用Matcom(2007-04-10 19:32:00)

摘要: 千万别学别用Matcom 此文推荐给正希望学习Matcom编程,或者已经涉入其编程一段时间的人看。     Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具。使用Matcom实现Matlab和C++的混合编程,是开发数据处理应用软件的一种途径。此种方法的优势主要有: 提供了Matlab中的大量成熟函数 ,程序可脱离Matlab运行环境。     使用Matcom一个星期就可以做一个相当不错的信号处理软件或是简单图象的图形处理软件。优点不言而喻,随便在网上搜一下,就可以看到很多Matcom应用的论文,确实是很方便。本人也是其受益者,也曾利用Matcom和C++混合编程在短期完成内完成过多个小软件。     但我今天要建议大家的是: 千万不要浪费时间来学习和使用Matcom。  大家看了觉得奇怪,这么方便为什么不学呢? 这么好用为什么不用呢? 讲几点原因,     首先,Matcom不提供源代码,大家能够下载到的只是一个链接库和一个matlab.h头文件。曾经有一个网名叫energy的大侠破解了 Matcom4.0和Matcom4.5的安装口令,但这仅仅只让大家能够使用盗版而已。而且大家都知道,要想从这么大的一个库的十六进制文件转化为原始代码几乎是不可能的。所以Matcom永远只是一个类似于能Matlab部分功能的东西。北航刘*也在其书中讲解了如何去掉Matcom中的广告菜单。但是最后编出来的软件都要带上v4501v.dll与ago4501.dll才能使用。这样的软件根本无法卖出去,留着自己用又不如Matlab的效果好。     从长远角度看,对于想成为专业编程人员的学手,初学Matcom容易对其产生依赖心理,而忽略了对很多基础数值计算编程的学习。他们会发现,用Matcom做个插值,或是求个积分如此容易,何必再去花费时间学习那些基础算法呢?长此下去,编程基础会越来越差。而对于非专业的学生,学习Matcom也是有害无益。他们往往在大学或研究生期间做论文时使用Matcom来完成一些计算或图象的处理,结果......

阅读全文(18893) | 评论:8

编程如禅——工厂模式的智能化实现(c++)(2)(转帖)(2007-04-05 00:13:00)

摘要: 原文作者:曹骥   接上一帖,消除switch和case语句:   由名字创建对象其实的有挺强的背景,那就是软件工程学中的对象持久性问题。本文讨论的方法也是持久性的一个可能实现。废话少说,看看C++是怎么做的。   动态创建当然要用指针。我们不希望在程序中出现硬编码:   Shape * pShape = new Circle;   那就用函数/对象包装一下。函数包装简单、高效一些。于是有Circle类的成员函数:   Shape *createInstance() {return new Circle;}   我们需要用这个函数去创建Circle对象,同时只有Circle对象创建以后才可以调用createInstance()。这是一对矛盾。解决的办法是将createInstance()写成静态函数。于是Shpae和Circle类长的是这个样子:   class Shape{ public:        virtual void  Draw()  = 0; };   class Circle : public Shape{ public:        void Draw()  { std::cout << "Drawing a Circle......Done" << std::endl; }        static Shape *createInstance() {return new Circle;} };   指向createInstance()的函数指针当然要放在工厂类里面,同时要和创建对象的名字关......

阅读全文(8338) | 评论:1

编程如禅——工厂模式的智能化实现(c++)(1)(转帖)(2007-04-05 00:12:00)

摘要: 原文作者:曹骥   地球人都知道有个loki库。它的工厂模式应该是经典的。但是我总觉得用loki有点杀鸡用牛刀的感觉。本来工厂模式应该是应用极为广泛的,搞的太复杂有时会适得其反。   撇开别的不说,工厂模式绝对是C++程序员的必用武器。C++的继承和多态使得我们在程序中知围绕基类来编写程序。这样的程序不会因为子类的扩充而反复修改,因而提高了可维护性和可扩展性。但是把子类作为硬编码(hard-coding)写入程序并不是一件好事。因此我们需要在运行时刻动态的生成(创建)子类的对象。总之,作为创建模式的工厂模式大有用武之地。   来个绘图经典的例子吧。基类是Shape,子类是Circle,Triangle等等。肯定有人写过这样的代码:   enum SHAPE_DEFINE {CIRCLE, TRIANGLE, RECTANGLE };   someFunction() {               SHAPE_DEFINE shape_variable;        …… Shape * shap;        switch(shape_variable)        {        case CIRCLE:               shape = new Circle;         ......

阅读全文(12659) | 评论:0

开篇宣言(2007-03-18 13:15:00)

摘要: 当我们的大型机、工作站、个人电脑全都充斥着美国的有限元软件,我们不痛心么? 当我们的各种设备,特别是航空航天和军工的一些敏感设备,以及各种大型土木水利建筑,全都使用外国的有限元分析软件,我们能放心么? 市场被国外瓜分,没有民族企业的立足之地;大学、科研院所使用外国的有限元软件,盼不到自己的国产软件。这是一种悲哀。 我们努力着,努力着改变这种现状,消除这种悲哀。然而,国外的公司太强大了,我们落后的太多了,怎么办???   当我们的大型机、工作站、个人电脑全都充斥着美国的有限元软件,我们不痛心么?当我们的各种设备、特别是航空航天和军工的一些敏感设备全都使用外国有限元分析软件,我们能放心么?
  市场被国外瓜分,没有民族企业的立足之地;大学、科研院所使用外国的有限元软件,盼不到自己的国产软件。这是一种悲哀。
  我们努力着,努力着改变这种现状,消除这种悲哀。然而,国外的公司太强大了,我们落后的太多了,怎么办??? 当我们的大型机、工作站、个人电脑全都充斥着美国的有限元软件,我们不痛心么?当我们的各种设备、特别是航空航天和军工的一些敏感设备全都使用外国有限元分析软件,我们能放心么? 制造通用有限元软件?我们的民族企业没有这个实力,我们的科研院校更没有这个实力,不但很难开发出来,更关键的是一开发出来就只有死路一条--没有市场--市场有市场的法则。 到底怎么办?--......

阅读全文(11880) | 评论:0