⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 data_active.h

📁 cfd求解器使用与gmsh网格的求解
💻 H
字号:
/* * Copyright (C) 1997-2006 P. Dular, C. Geuzaine * * 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; either version 2 of the License, or * (at your option) any later version. * * 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. * * Please report all bugs and problems to <getdp@geuz.org>. */#ifndef _DATA_ACTIVE_H_#define _DATA_ACTIVE_H_#include "Data_Passive.h"#include "Data_Element.h"#define _PRE  1 /* pre-processing */#define _PAR  4 /* partitionning */#define _CAL  2 /* processing */#define _POS  3 /* post-processing */#define _CST  5 /* update constraint */#define TIME_STATIC   1#define TIME_THETA    2#define TIME_NEWMARK  3#define ASSEMBLY_AGGREGATE  1#define ASSEMBLY_SEPARATE   2/* ------------------------------------------------------------------------ *//* I n t e g r a l Q u a n t i t y A c t i v e                              *//* ------------------------------------------------------------------------ */struct IntegralQuantityActive {  int     Type_FormDof, Type_ValueDof ;  List_T  *IntegrationCase_L;   struct  IntegrationCase *IntegrationCase_P ;  int     CriterionIndex ;  void    (*Get_IntPoint)();  int     Nbr_IntPoints ;  List_T  *JacobianCase_L;  double  (*Get_Jacobian)() ;  int     Type_Dimension ;  void    (*xChangeOfCoordinates)();} ;struct FirstElement {   struct Dof * Equ ;  struct Dof * Dof ;  double Value ;} ;/* ------------------------------------------------------------------------ *//* F e m L o c a l T e r m A c t i v e                                      *//* ------------------------------------------------------------------------ */struct FemLocalTermActive {  struct QuantityStorage  * QuantityStorageEqu_P ;  struct QuantityStorage  * QuantityStorageDof_P ;  struct Dof              * DofForNoDof_P ;  int  Type_FormEqu, Type_FormDof, Type_ValueDof ;  int  Type_DefineQuantityDof ;  int  SymmetricalMatrix ;  List_T *IntegrationCase_L, *JacobianCase_L ;  int     CriterionIndex ;  struct JacobianCase  *JacobianCase_P0 ;  int    NbrJacobianCase, Flag_ChangeCoord, Flag_InvJac ;  void   (*xChangeOfCoordinatesEqu)();  void   (*xChangeOfCoordinatesDof)();  double (*Cal_Productx)();  void   (*Function_AssembleTerm)();  struct IntegralQuantityActive  IntegralQuantityActive ;  int MHJacNL, MHJacNL_Index, MHJacNL_NbrPointsX, MHJacNL_HarOffSet;  double MHJacNL_Factor;  double **MHJacNL_H, ***MHJacNL_HH, *MHJacNL_t, *MHJacNL_w;  int Full_Matrix;  int NbrEqu, NbrHar, *NumEqu, *NumDof;  struct Dof *Equ, *Dof;   List_T *FirstElements;  double **Matrix;} ;/* ------------------------------------------------------------------------ *//* Q u a n t i t y S t o r a g e                                            *//* ------------------------------------------------------------------------ *//* En parallele avec DefineQuantity (zone active)   */struct QuantityStorage {  struct DefineQuantity  * DefineQuantity ;  int    NumLastElementForFunctionSpace ;  int    NumLastElementForDofDefinition ;  int    NumLastElementForEquDefinition ;  int    FMMGroupList ;  struct FunctionSpace   * FunctionSpace ;  int       NbrElementaryBasisFunction ;  int       TypeQuantity ;  struct {    struct Dof  * Dof ;    int    NumEntityInElement ;    int    CodeBasisFunction, CodeEntity ;    int    CodeAssociateBasisFunction ;    int    Constraint ;    double Value[NBR_MAX_HARMONIC] ;    int    TimeFunctionIndex ;    int    CodeEntity_Link ;    struct BasisFunction  * BasisFunction ;  } BasisFunction [NBR_MAX_BASISFUNCTIONS] ;} ;/* Traitement de Fem GlobalTerm (zone active)       */struct GlobalQuantityStorage {  int     NumEquation ;  int     NumDof ;  int     CodeGlobalQuantity, CodeAssociateBasisFunction ;  int     CodeEntity ;  int     Constraint ;    double  Value[NBR_MAX_HARMONIC] ;  int     TimeFunctionIndex ;} ;/* ------------------------------------------------------------------------ *//*  P o s t E l e m e n t                                                   *//* ------------------------------------------------------------------------ */struct PostElement {      int              Index, Type, Depth;  int              NbrNodes, * NumNodes;  double           * u, * v, * w, * x, * y, * z;  struct Value     * Value;} ;/* -------------------------------------------------*//* En parallele avec Constraint (zone active)      */struct ConstraintActive {  int  TimeStep, SubTimeStep ;  union {    struct {      int  NbrNode, NbrBranch, NbrLoop ;      int  ** MatNode, ** MatLoop ;    } Network ;    struct {      List_T  * Couples ;    } Link ;  } Case ;} ;/* -------------------------------------------------*//* En parallele avec Function (zone active)      */struct FunctionActive {  union {    struct {      int     NbrPoint ;      double  * x, * y, *xc, *yc ;      double  * mi, * bi, * ci, * di ;  /* Akima */    } Interpolation ;    struct {      double  Value ;    } SurfaceArea ;    struct {      List_T * Table ;    } ValueFromIndex ;  } Case ;} ;#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -