Znn3bq.jpeg
²é¿´: 985  |  »Ø¸´: 2

wsb1345289

гæ (³õÈëÎÄ̳)

[ÇóÖú] ¼ÆËãÍä¹ÜµÄÄ¥ËðÁ¿£¬ÀûÓÃfluent°ïÖúÀïµÄ³ÌÐò£¬³ö´íÁË£¬¸÷λ°ïæ¿´¿´Ôõô»ØÊ ÒÑÓÐ1È˲ÎÓë

³ÌÐò´úÂëÊÇ£º
#include "udf.h"

#define MIN_IMPACT_VELO -1000

Domain *domain;

enum  
  {
    NUM_OF_HITS,
    AVG_DIAMETER,
    AVG_RADI_VELO,
    NUM_OF_USED_UDM
  };

int UDM_checked = 0;

void reset_UDM_s(void);

int check_for_UDM(void)  
{
  Thread *t;
  if (UDM_checked)
    return UDM_checked;

  thread_loop_c(t,domain)
  {      
     if (FLUID_THREAD_P(t))   if (NULLP(THREAD_STORAGE(t,SV_UDM_I)))
        return 0;
  }
  UDM_checked = 1;
  reset_UDM_s();  
  return UDM_checked;
}      

void reset_UDM_s(void)
{
  Thread *t;
  cell_t c;
  face_t f;
  int  i;
  if (!check_for_UDM())
    return;
  Message("Resetting User Defined Memory...\n";
  thread_loop_f(t, domain)
    {
      if (NNULLP(THREAD_STORAGE(t,SV_UDM_I)))
        {
          begin_f_loop(f,t)
                 {
                   for (i = 0; i < NUM_OF_USED_UDM; i++)
                           F_UDMI(f,t,i) = 0;
                 }
          end_f_loop(f, t)
        }
     else
       {
                 Message("Skipping FACE thread no. %d..\n", THREAD_ID(t));
       }
    }
  thread_loop_c(t,domain)
    {
      if (NNULLP(THREAD_STORAGE(t,SV_UDM_I)))
               {
          begin_c_loop(c,t)
                 {
                   for (i = 0; i < NUM_OF_USED_UDM; i++)
                           C_UDMI(c,t,i) = 0;
                 }
          end_c_loop(c,t)
               }
      else
               {
          Message(" Skipping CELL thread no. %d..\n", THREAD_ID(t));
               }
    }   
  
  Message(" --- Done.\n";
}

DEFINE_DPM_EROSION(dpm_accr, p, t, f, normal, alpha, Vmag, Mdot)
{
  real A[ND_ND], area;
  int num_in_data;
  Thread *t0;
  cell_t c0;
  real imp_vel[3], vel_ortho;

#if RP_2D  
  if (rp_axi)
    {
      real radi_pos[3], radius;
     
     
      
      
      radi_pos[0] = P_POS(p)[1];  
      radi_pos[1] = P_POS(p)[2];  
      radius = NV_MAG(radi_pos);
      NV_VS(radi_pos, =, radi_pos, /, radius);
     
      imp_vel[0] = P_VEL(p)[0];
      imp_vel[1] = NVD_DOT(radi_pos, P_VEL(p)[1], P_VEL(p)[2], 0);
    }
  else
#endif
    NV_V(imp_vel, =, P_VEL(p));
  
  


  vel_ortho = NV_DOT(imp_vel, normal);

  if (vel_ortho < MIN_IMPACT_VELO)
    return;
  
  if (!UDM_checked)   
    if (!check_for_UDM())
      return;   

  
  c0 = F_C0(f,t);
  t0 = THREAD_T0(t);
  
  F_AREA(A,f,t);
  area = NV_MAG(A);
  F_STORAGE_R(f,t,SV_DPMS_ACCRETION) += Mdot / area;
  
  MARK_PARTICLE(p, P_FL_REMOVED);


  if (THREAD_TYPE(t) == THREAD_F_JUMP)
    return;

  num_in_data  = F_UDMI(f,t,NUM_OF_HITS);
  

  F_UDMI(f,t,AVG_DIAMETER) = (P_DIAM(p)
                              + num_in_data * F_UDMI(f,t,AVG_DIAMETER))
                              / (num_in_data + 1);
  C_UDMI(c0,t0,AVG_DIAMETER) = F_UDMI(f,t,AVG_DIAMETER);


  F_UDMI(f,t,AVG_RADI_VELO) = (vel_ortho
                               + num_in_data * F_UDMI(f,t,AVG_RADI_VELO))
                               / (num_in_data + 1);
  C_UDMI(c0,t0,AVG_RADI_VELO) = F_UDMI(f,t,AVG_RADI_VELO);
  
  F_UDMI(f, t, NUM_OF_HITS) = num_in_data + 1;
  C_UDMI(c0,t0,NUM_OF_HITS) = num_in_data + 1;

  
}

DEFINE_ON_DEMAND(reset_UDM)
{
  
  domain = Get_Domain(1);
  reset_UDM_s();
}

¸÷λ¿´¿´ÄÄ´íÁË£¬Ó¦¸ÃÔõÑù½â¾ö

¼ÆËãÍä¹ÜµÄÄ¥ËðÁ¿£¬ÀûÓÃfluent°ïÖúÀïµÄ³ÌÐò£¬³ö´íÁË£¬¸÷λ°ïæ¿´¿´Ôõô»ØÊÂ
´íÎó.png
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

moons2

½ð³æ (ÕýʽдÊÖ)

¡¾´ð°¸¡¿Ó¦Öú»ØÌû

¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï ¡ï
¸Ðл²ÎÓ룬ӦÖúÖ¸Êý +1
wsb1345289: ½ð±Ò+10 2015-04-24 15:45:02
¹À¼ÆÊÇvisual studio°æ±¾µÄÎÊÌâ
2Â¥2015-04-23 16:03:31
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

wsb1345289

гæ (³õÈëÎÄ̳)

ÒýÓûØÌû:
2Â¥: Originally posted by moons2 at 2015-04-23 16:03:31
¹À¼ÆÊÇvisual studio°æ±¾µÄÎÊÌâ

ÄÇÎÒÊÔÊÔÆäËü°æ±¾
3Â¥2015-04-24 15:45:25
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ wsb1345289 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] µç×ÓÐÅÏ¢270Çóµ÷¼Á +18 terminal469 2026-04-07 18/900 2026-04-12 16:23 by ajpv·çÀ×
[¿¼ÑÐ] Ò»Ö¾Ô¸»ªÖÐũ΢ÉúÎ288·Ö£¬ÈýÄêʵÑé¾­Àú +11 ´úfish 2026-04-09 11/550 2026-04-12 10:21 by Hayaay
[¿¼ÑÐ] 26×ÔÈ»µØÀíѧ303·ÖÇóµ÷¼Á +6 Ò»Õ½³É˶°¡°¡°¡° 2026-04-06 11/550 2026-04-11 21:27 by Åáºêΰ
[¿¼ÑÐ] 086003µ÷¼ÁÇóÖú +21 ËÕß®Íò 2026-04-09 22/1100 2026-04-11 20:25 by dongdian1
[¿¼ÑÐ] µç×ÓÐÅÏ¢279Çóµ÷¼Á£¬ÓÐÊé¶Á¾ÍÐÐ +8 wwwooden 2026-04-08 11/550 2026-04-11 20:22 by cq2548
[¿¼ÑÐ] »¯Ñ§308·ÖÇóµ÷¼Á +22 ÄãºÃÃ÷ÌìÄãºÃ 2026-04-07 24/1200 2026-04-11 11:14 by ChemPharm
[¿¼ÑÐ] 283Çóµ÷¼Á£¬¹¤¿Æ£¡ +12 ËÕ´òË®7777 2026-04-08 12/600 2026-04-11 10:28 by ÄæË®³Ë·ç
[¿¼ÑÐ] ÖÐҩѧµ÷¼Á ³õÊÔ324 +4 Ñó¸Ê¾Õ¡¢ 2026-04-10 6/300 2026-04-11 09:41 by gong120082
[¿¼ÑÐ] 362Çóµ÷¼Á +10 ÎÒÒª¿¼´ó 2026-04-06 14/700 2026-04-10 17:00 by luoyongfeng
[ÂÛÎÄͶ¸å] mdpiСÐÞrvrʱ¼äËÄÎåÌìÁË 20+3 ¹þ¹þhigh 2026-04-08 5/250 2026-04-10 16:02 by ±±¾©À³ÒðÈóÉ«
[»ù½ðÉêÇë] Óб¬ÁÏ£¬Ò»¸öÇàÄê½ÌʦÂô·¿µÃ400Íò£¬È»ºó»»ÁËÒ»¸öËÄÇàñ×Ó +9 babu2015 2026-04-08 9/450 2026-04-10 11:43 by ËÕ¶«ÆÂ¶þÊÀ
[¿¼ÑÐ] Òѵ÷¼Á +18 ²ñ¿¤Ã¨_ 2026-04-09 19/950 2026-04-09 22:10 by ²ñ¿¤Ã¨_
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤×¨Ë¶329 Çóµ÷¼Á +24 ¶îcc 2026-04-06 25/1250 2026-04-09 16:01 by wp06
[¿¼ÑÐ] 286Çóµ÷¼Á +19 Faune 2026-04-08 20/1000 2026-04-09 08:36 by ŶŶ123
[¿¼ÑÐ] 281Çóµ÷¼Á +10 Ò¬×ÓÄ¢¹½ 2026-04-06 10/500 2026-04-08 11:43 by zzucheup
[¿¼ÑÐ] 304Çóµ÷¼Á +10 ËØÄê¼ÀÓï 2026-04-06 17/850 2026-04-08 09:05 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 328Çóµ÷¼Á +4 ghhh88888 2026-04-06 5/250 2026-04-07 14:45 by ghhh88888
[¿¼ÑÐ] 0854Çóµ÷¼Á +9 ºàÊÏ·¬ÇÑɳ˾ 2026-04-06 10/500 2026-04-07 14:37 by shdgaomin
[¿¼ÑÐ] ¿¼Ñе÷¼Á +3 WwwwwwwÍÛ 2026-04-06 3/150 2026-04-06 20:55 by lbsjt
[¿¼ÑÐ] Ò»Ö¾Ô¸±±½»´ó²ÄÁϹ¤³Ì×Ü·Ö358Çóµ÷¼Á +10 cs0106 2026-04-05 12/600 2026-04-06 19:41 by Î޼ʵIJÝÔ­
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û