找回密码
 注册
Simdroid-非首页
查看: 411|回复: 9

[工程实例] EGS 模型

[复制链接]
发表于 2012-8-20 10:35:25 | 显示全部楼层 |阅读模式 来自 美国
EGS 地热模型, 粒子流表**质材料,以颗粒中心为定点的四面体单元为流体区域,模型图如下,有相关研究的大家一起讨论,这个模型在c++中生成

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评分

1

查看全部评分

 楼主| 发表于 2012-8-20 10:43:59 | 显示全部楼层 来自 美国
Simdroid开发平台
模型中涉及了两个用户自定义类:FACE 和TET:

class FACE: public Uobj {  // derived class of Uobj
  public:
          Uball *f_b1,*f_b2,*f_b3;
          Ucontact *f_c1,*f_c2,*f_c3;
          int b1, b2, b3;                                // id of balls in the face;         
          double le1, le2, le3;                        // length of 3 edges;
          int id;
          bool fc_open;              //open or not; 1 is open default 0; fc_parea=0: 0; fc_parea<>0: 1;

          // the index of each face;
          int f_tet1,f_tet2;
          Udvect vec1,vec2;                        //normal vector for tet1 and tet2;
          bool bou_face;                                //boundary face; f_tet2 = 0;
          double f_area;                                //total area;
          double f_parea;                                //pore area;
          double f_frac_s;                        //fracture space for face;

          double f_leng;                                //distance of fluid flow path
          double f_perm;                                //permeability of fluid flow path

          double f_aper;                              //fracture aperture in this domain;


  public:
    FACE(unsigned long ulID=0, bool bClone=false, bool bRegister=false);
    ~FACE(void) {}

    const char *Name(void) const { return("face"); }
    unsigned long Type(void) const { return(UFACE); }
                Uobj *Clone(unsigned long ulID=0) const;
                //user function
                //void area(void);
                //void leng(void);
                //void angl(void);
                //void fcar(void);
                void write(Ufile &fi) const;
                void read(Ufile &fi);
                void remap(void);
};
回复 不支持

使用道具 举报

 楼主| 发表于 2012-8-20 10:45:03 | 显示全部楼层 来自 美国
本帖最后由 rock_cumt 于 2012-8-21 00:47 编辑

class TET: public Uobj {  // derived class of Uobj

  public:
                Uball        *t_b[4];
                int                b[4];
                int                fb[4];                        //fake id, is the id for Fball fb;
                int                tet_fc[4];                        //ID: four face of each tetrahedron;
                double        tet_ln[6];                        //length of six edge of each tetrahedron;
                int                neig[4];
                Udvect        vec[4];                                //I(x-x0)+J(y-y0)+K(z-z0)=0
                Udvect        tet_cen;                                // the center coordinate of the tetrahedron domain,Tetc.x, Tetc.y, Tetc.z;
                 double        tet_pre;      //the presure of tetrahedron domain;
                double        tet_con;      //the concentration of tetrahedron domain;
                double        tet_tvol;       //the totall volume of tetrahedron domain;
                double        tet_pvol;       //pore volume of tetrahedron domain;
                double        tet_por;                //porosity of domain, Tetd_pvolume/Tetd_volume;
                double        tet_sto;        //the property of storage;
                double  tet_tem;                //temperature of domain for fluid;
                double  tet_frac_s;                //volume fracture spacing by fracture density;
                //bool  tet_active;     //totally solid, not active, no comunication with others; can be replace by porosity;
                int                t_bd;                        //0--not boundary ,1 --boundary
                double  t_kcon;                        //hydraulic conductivity; which is the function of permeabiltiy;
                double  t_aper;                        //fracture aperture in this domain;

                int                id;                                        //  tetrahedron id ;
                int                fixp;                                // 0--none, 1--boundary fixed pressure
                                                                        //2--injection well fixed pressure;
                                                                        //3--injection well with fixed flow rate
                int                fixc;                                // fixed with certain concentration as boundary;
                bool        del;                                // the tet is outside of the sample, delte;
                bool        act;                                // if porosity is 0, not active




  public:
    TET(unsigned long ulID=0, bool bClone=false, bool bRegister=false);
    ~TET(void) {}

    const char *Name(void) const { return("Tetrahedron"); }
    unsigned long Type(void) const { return(UTET); }
                Uobj *Clone(unsigned long ulID=0) const;
                //calculate the properties of the tetrahedron domain;
                void tet_properti(void){};
        void set_center(void);
                void set_pressure(void);
                void set_volume(void);
                void set_storage(void);
               

                void write(Ufile &fi) const;
                void read(Ufile &fi);
                void remap(void);
};

#endif
回复 不支持

使用道具 举报

 楼主| 发表于 2012-8-20 10:52:06 | 显示全部楼层 来自 美国
Face 类用来表示TET之间运移属性,在流体计算时可以提高效率,有效的链接THMC四个过程。
TET类为主导类,其包括了空隙空间的物理量,压强,矿物质浓度,溶液温度等等,其中化学反应部分有TOUGHREACT计算得到。
ToughREACT的单元划分与PFC的四面体单元相同,但在初始化的时候设置了外边界以拟合PFC单元与TOUGHREACT的差异。得到的结果会直接导入到相应的四面体单元,更新以进行力学响应。
回复 不支持

使用道具 举报

 楼主| 发表于 2012-8-20 10:57:34 | 显示全部楼层 来自 美国
模型假设已经完成,结果会后续贴上,共享!
这个程序包含的10,000以上的球体,50,000以上的TET单元,100,000左右的FACE单元,模型生成1小时,平行算法为所选,可惜我的硬件狗没有平行计算功能,慢慢熬着看了!!
回复 不支持

使用道具 举报

发表于 2012-8-20 21:13:01 | 显示全部楼层 来自 湖北武汉
我又平行计算功能但是pfc不熟练,楼主是我前行的榜样,楼主你有根据颗粒级配生成颗粒的代码吗,孔隙率也是给定的
回复 不支持

使用道具 举报

 楼主| 发表于 2012-8-21 00:16:43 | 显示全部楼层 来自 美国
sorry,没有。
回复 不支持

使用道具 举报

发表于 2012-8-21 17:00:38 | 显示全部楼层 来自 广东深圳
楼主确实挺厉害的,
回复 不支持

使用道具 举报

发表于 2012-8-27 09:02:08 | 显示全部楼层 来自 山东青岛
嗯,研究一下下
回复 不支持

使用道具 举报

发表于 2014-12-28 09:05:42 | 显示全部楼层 来自 安徽合肥
好!得看一下!
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-5-6 16:43 , Processed in 0.041067 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表