亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.cpp

?? OFELI is an object oriented library of C++ classes for development of finite element codes. Its main
?? CPP
字號:
/*==============================================================================

                              **********************
                              *    T  I  F  F 2    *
                              **********************

                 A Finite Element Code for Transient Incompressible
                       Fluid Flow Simulations in 2-D Geometries

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

   Copyright (C) 1998 - 2004 Rachid Touzani

   This program is free software; you can redistribute it and/or modify it under
   the terms of the GNU General Public License as published by the Free 
   Software Foundation; Version 2 of the License.

   This program is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
   FOR A PARTICULAR PURPOSE. See the GNU General Public License for more 
   details.

   You should have received a copy of the GNU General Public License 
   along with this program; if not, write to the :

   Free Software Foundation
   Inc., 59 Temple Place - Suite 330
   Boston, MA  02111-1307, USA

  ==============================================================================*/

#include "OFELI.h"
#include "Fluid.h"
#include "User.h"
using namespace OFELI;

int main(int argc, char *argv[])
{
   Mesh     ms;
   Element  *el;
   Side     *sd;
   int      i, step;
   ifstream mf, bcf, bodyf, boundf, inf;
   FDF      *p_file=NULL, *v_file=NULL;
   double   time = 0;

   if (argc < 2) {
     cout << "\nUsage:  tiff2  <parameter_file>\n";
     return 0;
   }

   IPF data("tiff2 - 1.0",argv[1]);
   int output_flag = data.Output();
   int save_flag = data.Save();
   int init_flag = data.Init();
   int bc_flag = data.BC();
   int body_flag = data.BF();
   int bound_flag = data.SF();
   int pres_flag = data.IntPar(1);
   double deltat = data.TimeStep();
   double max_time = data.MaxTime();

   if (output_flag) {
     cout << "=====================================================================\n\n";
     cout << "                             T  I  F  F  2\n\n";
     cout << "         A Finite Element Code for Transient Incompressible\n";
     cout << "                 Fluid Flow Simulation in 2-D Geometries\n\n\n";
     cout << "              tiff2 uses OFELI Library of Finite Element Classes\n\n";
     cout << "                             V E R S I O N   1.0\n\n";
     cout << "                       Copyright R. Touzani, 1998\n\n";
     cout << "=====================================================================\n\n";
   }

//-----------
// Read data
//-----------

// Read Mesh data
   if (output_flag > 1)
     cout << "Reading mesh data ...\n";
   ms.Get(data.MeshFile(1));
   User ud(ms);
   int nb_dof = ms.Dim();

// Print Mesh data
   if (output_flag > 1)
     cout << ms;

// Declare problem data (matrix, rhs, boundary conditions, body forces)
   if (output_flag > 1)
     cout << "Allocating memory for matrix and R.H.S. ...\n";
   SkSMatrix<double> a(ms);
   Vect<double> b(ms.NbDOF());

// Read initial condition, boundary conditions, body and boundary forces
   Vect<double> u(ms.NbDOF());
   if (output_flag > 1)
     cout << "Reading initial condition ...\n";
   if (!init_flag)
     ud.SetInitialData(u);
   else {
     FDF in_file(data.InitFile(),"r");
     NodeVect<double> ui(ms,nb_dof);
     u = in_file.Get(ui);
   }

   if (output_flag > 1)
     cout << "Reading boundary conditions ...\n";
   Vect<double> bc(ms.NbDOF());
   if (!bc_flag)
     ud.SetDBC(bc);
   else {
     FDF bc_file(data.BCFile(),"r");
     NodeVect<double> ui(ms,nb_dof);
     bc_file.Get(ui);
     bc = Vect<double>(ui);
   }

   Vect<double> body_f(ms.NbDOF());
   if (body_flag) {
     if (output_flag > 1)
       cout << "Reading Body Forces ...\n";
     FDF bf_file(data.BFFile(),"r");
     NodeVect<double> ui(ms,nb_dof);
     bf_file.Get(ui);
     body_f = Vect<double>(ui);
   }

   if (output_flag > 1)
     cout << "Reading Boundary Tractions ...\n";
   Vect<double> bound_f(ms.NbDOF());
   if (bound_flag) {
     FDF sf_file(data.SFFile(),"r");
     NodeVect<double> ui(ms,nb_dof);
     sf_file.Get(ui);
     bound_f = Vect<double>(ui);
   }

   int transient = 0;
   int nb_step = 1;
   if (deltat <= max_time) {
     transient = 1;
     nb_step = (int)(max_time/deltat);
   }
   NodeVect<double> uf(ms,nb_dof);
   if (save_flag) {
     v_file = new FDF(data.AuxFile(1),"w");
     p_file = new FDF(data.AuxFile(2),"w");
   }

// Loop over time steps
// --------------------

   for (step=1; step<=nb_step; step++) {

      if (output_flag > 1 && transient)
        cout << "Performing time step " << step << " ..." << endl;
      time += deltat;
      cout << "Step : " << step << ", Time : " << time << endl;
      b = 0;

//    Loop over elements
//    ------------------

      if (output_flag > 1)
        cout << "Looping over elements ...\n";

      for (ms.TopElement(); (el=ms.GetElement());) {
         NSP2DQ41 eq(el,u,time);
         eq.LMass(1./deltat);
         eq.Penal(1.e07);
         eq.Viscous(0.001);
         eq.RHS_Convection();
         eq.BodyRHS(ud);
         if (step==1) 
           a.Assembly(el,eq.A());
         b.Assembly(el,eq.b());
      }

//    Loop over sides
//    ---------------

      if (output_flag > 1)
        cout << "Looping over sides ...\n";

      for (ms.TopSide(); (sd=ms.GetSide());) {
         NSP2DQ41 eq(sd);
         eq.BoundaryRHS(ud);
         b.Assembly(sd,eq.b());
      }

//    Impose Boundary Conditions and Solve the linear system
//    ------------------------------------------------------

      a.Prescribe(ms,b,bc,step-1);
      if (step == 1)
        a.Factor();
      a.Solve(b);
      u = b;

//    Output and/or Store solution
//    ----------------------------
 
      uf.FromVect(u,1,"Velocity",time);
      if (output_flag > 0)
        cout << uf;
      if (save_flag && step==nb_step)
        v_file->Put(uf);

//    Calculate and smooth pressure
//    -----------------------------

      if (pres_flag) {
        double pres = 0.;
        Vect<double> pm(ms.NbNodes());
        NodeVect<double> p(ms,1,"Pressure",time);

        for (ms.TopElement(); (el=ms.GetElement());) {
           NSP2DQ41 eq(el,u,time);
           pres += eq.Pressure(1.e07);
           eq.PresMat();
           for (i=1; i<=eq.NbNodes(); i++) {
              int n = el->PtrNode(i)->Label();
              pm(n) += eq.PM()(i);
              p(n,1) += pres;
           }
        }
        for (int n=1; n<=ms.NbNodes(); n++)
           p(n,1) /= pm(n);
        if (output_flag > 0)
          cout << p;
        if (save_flag  && step==nb_step)
          p_file->Put(p);
      }
   }

   if (save_flag > 0) {
     delete p_file;
     delete v_file;
   }
   return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品一区二区三区视频 | 91麻豆123| 93久久精品日日躁夜夜躁欧美| 色婷婷国产精品综合在线观看| 欧美三片在线视频观看| 欧美精品一区视频| 中文字幕日韩欧美一区二区三区| 亚洲免费电影在线| 久久国产乱子精品免费女| 成人久久视频在线观看| 欧美日韩美少妇| 精品国产免费一区二区三区四区| 国产精品毛片久久久久久久| 天堂成人免费av电影一区| 国产成人综合在线播放| 欧美性生活一区| 久久亚洲一区二区三区四区| 亚洲精品国产成人久久av盗摄 | 亚洲视频综合在线| 秋霞影院一区二区| 99re这里只有精品首页| 日韩一二三区不卡| 最新日韩在线视频| 国产综合一区二区| 欧美日韩大陆在线| 综合av第一页| 狠狠色狠狠色综合系列| 高清不卡一区二区| 国产欧美一区二区三区网站| 欧美一区二区三区免费| 中文字幕中文字幕一区二区| 青青草精品视频| 97精品视频在线观看自产线路二| 日韩欧美国产高清| 一区二区三区.www| 成人深夜福利app| 欧美成va人片在线观看| 亚洲伊人色欲综合网| 成人app网站| 2017欧美狠狠色| 日韩中文字幕亚洲一区二区va在线 | 风间由美一区二区三区在线观看| 欧美理论片在线| 中文字幕一区二区不卡| 国产一区二区美女| 日韩欧美中文字幕公布| 亚洲一区二区欧美日韩| 成人av资源站| 2020国产成人综合网| 美女www一区二区| 欧美日韩国产高清一区二区 | 首页综合国产亚洲丝袜| 久久婷婷国产综合国色天香| 国产精品中文字幕一区二区三区| 狠狠色综合播放一区二区| 欧美肥胖老妇做爰| 一级精品视频在线观看宜春院| caoporm超碰国产精品| 久久久高清一区二区三区| 极品尤物av久久免费看| 欧美一区二区三区视频免费| 亚洲一区二区中文在线| 91久久精品一区二区三| 最好看的中文字幕久久| 99vv1com这只有精品| 国产精品色婷婷久久58| 国产成人免费视频网站| 久久久国产午夜精品| 精品一区二区免费在线观看| 欧美视频日韩视频| 亚洲午夜久久久久久久久电影网| 在线亚洲免费视频| 一区二区在线观看视频在线观看| 色哟哟国产精品| 亚洲美女偷拍久久| 91久久精品一区二区三区| 一区二区三区中文字幕| 欧美做爰猛烈大尺度电影无法无天| 综合色天天鬼久久鬼色| 一本色道久久综合亚洲aⅴ蜜桃 | 日韩一级在线观看| 91精品国产综合久久精品app| 午夜精品视频一区| 色婷婷av一区二区三区gif| 一区二区在线观看不卡| 91在线观看高清| 久久久综合九色合综国产精品| 亚洲视频一二三区| caoporm超碰国产精品| 亚洲欧美日韩成人高清在线一区| 在线观看一区二区视频| 午夜欧美电影在线观看| 日韩一级完整毛片| 国产乱码精品一品二品| 国产精品久久网站| 91国产丝袜在线播放| 亚洲超丰满肉感bbw| 欧美一二三区在线观看| 国产在线国偷精品产拍免费yy | 日本 国产 欧美色综合| 精品国产亚洲在线| 春色校园综合激情亚洲| 一区二区三区国产豹纹内裤在线 | 美女视频黄久久| 久久久久综合网| 91麻豆精品一区二区三区| 欧美大片一区二区| 亚洲欧美日韩在线| 成人手机电影网| 亚洲精品乱码久久久久久| 欧美日韩一本到| 免费成人在线视频观看| 欧美激情一区二区三区全黄 | 亚洲一区在线观看免费| 日韩欧美亚洲国产精品字幕久久久| 国产成人在线看| 一个色妞综合视频在线观看| 欧美大片日本大片免费观看| 97精品国产露脸对白| 日韩av一区二区在线影视| 国产日韩欧美高清| 欧美日韩国产一级片| 国产成人久久精品77777最新版本 国产成人鲁色资源国产91色综 | 亚洲国产精品尤物yw在线观看| 2023国产精华国产精品| 一本久道久久综合中文字幕| 麻豆一区二区三| 亚洲免费观看高清完整| xvideos.蜜桃一区二区| 欧美亚洲一区二区在线观看| 激情欧美日韩一区二区| 一区av在线播放| 国产日产欧美一区二区三区| 在线成人av网站| 99久免费精品视频在线观看| 久久国产精品区| 亚洲h在线观看| 国产精品久久久久久久久免费相片 | 国产午夜一区二区三区| 欧美午夜片在线观看| 成人精品一区二区三区四区| 日本亚洲三级在线| 亚洲免费av高清| 欧美高清在线视频| 精品国产一二三区| 欧美精品99久久久**| 95精品视频在线| 国产精品一区一区三区| 日本免费新一区视频| 一区二区三区在线观看动漫| 国产精品网站在线| 26uuu精品一区二区| 91精品国产综合久久久久久漫画| 99久久夜色精品国产网站| 国产夫妻精品视频| 久久精品99国产精品日本| 亚洲国产毛片aaaaa无费看| 综合色中文字幕| 国产精品丝袜91| 国产欧美日韩综合精品一区二区| 日韩精品中午字幕| 欧美日韩国产另类一区| 欧美综合在线视频| 色综合天天性综合| 成人av网站在线观看| 国产夫妻精品视频| 国产精品一区在线| 国产精品一区二区久久不卡| 免费一级欧美片在线观看| 亚洲国产欧美一区二区三区丁香婷| 亚洲欧美日韩中文字幕一区二区三区| 欧美激情综合网| 国产无一区二区| 国产欧美日韩视频一区二区 | 国产91精品免费| 国产精品一区二区久激情瑜伽| 国产资源在线一区| 国内成+人亚洲+欧美+综合在线| 美日韩一级片在线观看| 蜜桃精品在线观看| 久久99这里只有精品| 久久激情五月婷婷| 精品系列免费在线观看| 日本欧美一区二区三区乱码| 免费久久精品视频| 久草在线在线精品观看| 精品一区二区影视| 国产综合一区二区| 岛国av在线一区| 91视频观看视频| 在线视频欧美精品| 欧美精品18+| 日韩欧美中文一区| 2020日本不卡一区二区视频| 国产日韩欧美亚洲| 亚洲欧美色一区| 午夜精品在线看| 久久国内精品视频| 成人久久18免费网站麻豆| 91网页版在线|