Znn3bq.jpeg
²é¿´: 984  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 344 ²ÄÁÏרҵ Çóµ÷¼Á211 ÎÞµØÓòÒªÇó +6 hualkop 2026-04-11 6/300 2026-04-12 15:00 by seattle40
[¿¼ÑÐ] µçÆø¹¤³Ìר˶320Çóµ÷¼Á +5 СÂé×Ó111 2026-04-10 5/250 2026-04-12 10:47 by zhouyuwinner
[¿¼ÑÐ] È˹¤ÖÇÄÜ320µ÷¼Á08¹¤À໹Óлú»áÂð +12 Õñ¡ªTZ 2026-04-10 12/600 2026-04-12 07:54 by wj165256
[¿¼ÑÐ] 305Çóµ÷¼Á +6 77Qi 2026-04-07 6/300 2026-04-12 02:30 by Çï¶¹²ËÑ¿
[¿¼ÑÐ] 299Çóµ÷¼Á +8 ZVVZ13 2026-04-08 8/400 2026-04-12 00:40 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 271Çóµ÷¼Á +20 2261744733 2026-04-11 22/1100 2026-04-11 23:14 by labixiaoqiao
[¿¼ÑÐ] 277 ÊýÒ»104£¬Ñ§Ë¶£¬Çóµ÷¼Á +21 Æ¿×ÓPZ 2026-04-09 23/1150 2026-04-11 23:12 by labixiaoqiao
[¿¼ÑÐ] ²ÄÁϹ¤³ÌÈÕÓÉúÇóµ÷¼Á +7 0856?µ÷¼Á 2026-04-10 7/350 2026-04-11 21:33 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 271Çóµ÷¼Á +21 2261744733 2026-04-11 21/1050 2026-04-11 20:19 by Angchemist
[¿¼ÑÐ] 285Çóµ÷¼Á +8 ¶ñ·¨´ó¶þµÄÆøÎ¶ß 2026-04-05 11/550 2026-04-11 11:28 by ×ÏêØ×ÏÆå
[¿¼ÑÐ] µ÷¼Á +19 СÕÅZA 2026-04-10 20/1000 2026-04-10 22:08 by Öí»á·É
[¿¼ÑÐ] 071000ÉúÎïѧµ÷¼ÁÇóÖú +17 zzzzwww 2026-04-09 20/1000 2026-04-10 15:55 by Çóµ÷¼Ázz
[¿¼ÑÐ] Çóµ÷¼Á ²ÄÁÏÓ빤³Ì 324·Ö ר˶ +19 ôæôæÒ»ÊéÉú 2026-04-10 21/1050 2026-04-10 11:41 by wp06
[¿¼ÑÐ] Ò»Ö¾Ô¸Öйú¿ÆÑ§ÔºÉϺ£ÓлúËù£¬Óлú»¯Ñ§356·ÖÕÒµ÷¼Á +11 Nadiums 2026-04-09 11/550 2026-04-09 18:04 by lijunpoly
[¿¼ÑÐ] Ò»Ö¾Ô¸ÎäÀí³µÁ¾ 281 Çóµ÷¼Á +5 Éϰ¶Ñо¿Éú. 2026-04-07 5/250 2026-04-09 15:56 by onlyÖÜ
[¿¼ÑÐ] ²ÄÁÏר˶322 +14 ¹þ¹þ¹þºðºðºð¹þ 2026-04-05 14/700 2026-04-09 13:25 by 5268321
[¿¼ÑÐ] ÇóÖú071001µ÷¼Á£¡£¡£¡ +7 »ÆÊØËÉ 2026-04-05 8/400 2026-04-09 09:07 by ÐìÁ¼°×ü´óÏÀ
[¿¼ÑÐ] Çóµ÷¼Á +8 ³Ô¿Ú±ù¼¤Áè 2026-04-07 8/400 2026-04-09 08:03 by 5268321
[¿¼ÑÐ] Çóµ÷¼Áµ½²ÄÁÏ +5 ³Ì9915 2026-04-06 5/250 2026-04-06 15:21 by yulian1987
[¿¼ÑÐ] 308Çóµ÷¼Á +3 ÖÕ²»ËÆ´Óǰ 2026-04-05 3/150 2026-04-05 22:23 by hemengdong
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û