博文

动态链接库编程中巧用抽象类(2009-03-07 02:51:00)

摘要: 有限元动态链接库编程中巧用抽象类   动态链接库以dll为后缀,软件开发中采用动态链接库有利于开发时的分工、后期维护,以及防止代码泄密。有限元软件架构中,经常会将不同的功能划分为不同的模块,每个模块采用动态链接库来完成。如现有的有限元软件中,常常将计算模块以及图象显示模块设计为动态链接库,在界面程序中调用。 在动态链接库程序开发中,巧用抽象类常常可以起到举足轻重的作用。本文简单讲解在有限元程序开发时,如何在动态链接库中使用抽象类。       举个小例子说明:   制作有限元计算模块FemModel链接库,并在程序Main中调用FemModel链接库。   先看通常采用的方式,在VC6.0中新建FemModel链接库工程,建立有限元模型输出类FemModel,包含成员为节点数nPoint,函数ReadFile,其中ReadFile函数用来读取文件读取节点数。   //FemModel.h Class __declspec(dllexport) FemModel :   { public:   FemModel();   virtual ~FemModel();   void ReadFile(FILE* _ifile);//读取文件,设置节点数 private:   int nPoint; //节点数 }; FemModel.cpp内容略。       编译工程,生成FemModel.lib、FemModel.dll文件。 在程序Main中调用FemModel链接库时,需要在工程中导入FemModel.h文件,调用方式如下,   #include "FemModel.h" int main() {   FemModel ......

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

有限元节点类\单元类(手把手有限元编程)(2007-08-03 15:41:00)

摘要:本篇讨论有限元中最基本的两个类, 节点类和单元类: 节点类首先需要基本的坐标信息,还需要节点位移、荷载、约束等信息,
节点类代码如下: #ifndef MVNODE_H
#define MVNODE_H #include "vector"
using namespace std;
class MVNode
{
public:
 MVNode();
 virtual ~MVNode();
 inline int GetCodeNum(int iPos) const;
 inline int getDOF() const;     
 inline vector <double> getDispVector() const; 
 inline double GetX() const;  
 inline double GetY() const;  
 inline double GetZ() const;  
 int GetNum()  const;  
 void SetData(int n,    
  double x, double y, double z, int iDOF);
 void setDspVct(double displacement, int iPos);
 void Init();    
 void Draw();
private:
 int m_iNodeNum;     
 double m_dX,m_dY,m_dZ;   
 vector <double> m_dDis......

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

1.wxWidgets初步 (手把手有限元编程)(2007-06-17 23:36:00)

摘要:手把手有限元编程系列,给大家讲解如何利用c++语言,借助wxWidgets和opengl构建有限元程序.... 第一篇, wxWidgets初步 开发交互软件首先必须有界面, wxWidgets是很不错的界面库,由于wxWidgets的教材很少,所以本篇先介绍如何分离wxWidgets基本框架的几个类, 首先,MVApp类是主应用程序类, /***********************
MVApp.h
************************/
#ifndef MV_APP_H
#define MV_APP_H
#pragma warning (disable: 4018)
#include "wx_pch.h"
#include "MVFrame.h"
class MVApp: public wxApp
{
public:
    bool OnInit();
 MVFrame * GetFrame(void);
private:
 MVFrame * frame;
};
DECLARE_APP(MVApp);
#endif // #ifndef MV_APP_H /*************************************
MVApp.cpp
**************************************/
#include "MVApp.h"
IMPLEMENT_APP(MVApp)
//Main program (equivalent)
bool MVApp::OnInit()
{
    // Create the main frame window
    frame = new MVFrame(NULL, wxT("MV Post"),wxDefaultPosition, wxSize(650, 600));
    // Show the frame
    fra......

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