±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 2901  |  »Ø¸´: 8

ľ·ç10086

гæ (СÓÐÃûÆø)

[½»Á÷] UDFµÄÎÊÌâ ÒÑÓÐ2È˲ÎÓë

UDFµÄÄÚÈÝÈçÏÂ:
#include "udf.h"
#include <stdio.h>
#include "dynamesh_tools.h"

static int nozzle_tid = 10;
static real g_c = 9.81;
static real loc = 0.0;

static real initial_weight = 10.0;
static real burn_rate = 0.0;

static real current_time = -1.0;
static real thrust_prev = 0.0;
static real missile_velocity = 0.0;

static real
missile_weight (real time)
{
  return (initial_weight - burn_rate * time);
}

DEFINE_ON_DEMAND(reset_velocity)
{
  missile_velocity = 0.0;
  thrust_prev      = 0.0;
  current_time     = -1.0;
}

DEFINE_CG_MOTION(missile_1dof, dt, cg_vel, cg_omega, time, dtime)
{
#if 1
  FILE *fp;
#endif

  /* reset velocities */
  NV_S (cg_vel, =, 0.0);
  NV_S (cg_omega, =, 0.0);


  if (!Data_Valid_P ())
    return;

/* Give rocket time to establish thrust for specified time */
  if (time < 0.1)
    Message (" NO MOTION YET: TIME LESS THAN 0.1 SECONDS ";

  if (time < 0.1)
    return;  

  /* update missile velocity only if we are at
     the next new time level */
  if ((time - 0.1*dtime) > current_time)
    {
      Domain *domain;
      Thread *t;
      face_t f;
      real force0, force1, force;
      real area, total, v_avg, dv;
      real w0, w1, mass_flow;

      /* update time stamp */
      current_time = time;

      /* get nozzle exit thread (from predefined thread id) */
      domain = THREAD_DOMAIN (DT_THREAD ((Dynamic_Thread *)dt));
      if (NULLP (t = Lookup_Thread (domain, nozzle_tid)))
        return;

      /* compute average exit velocity (weighted by area) */
      v_avg = 0.0;
      total = 0.0;
      begin_f_loop (f, t)
        {
          area = NV_MAG (F_AREA_CACHE (f, t));

#if RP_3D
          v_avg += area * ND_MAG (F_U (f, t), F_V (f, t), F_W (f, t));
#else
          v_avg += area * ND_MAG (F_U (f, t), F_V (f, t), 0.0);
#endif
          total += area;
        }


      end_f_loop (f, t)
      v_avg /= total;       

/* subtract off missile_velocity to get relative velocity */
/* ???      v_avg = v_avg - missile_velocity;        */
       
      /* compute thrust from mdot and v_e
         note: assume nozzle_exit is type mass-flow-exit  */
      if (THREAD_VAR(t).mfi.flow_spec == MASS_FLOW_TYPE)
        mass_flow = THREAD_VAR(t).mfi.mass_flow;
      else
        {
          real mass_flow;

          /* if mass_flux given as profile, then sum up
             area * mass_flux over face thread, else, mass_flux
             is constant */
          if (IS_PROFILE (THREAD_VAR (t).mfi.mass_flux))
            {
              begin_f_loop (f, t)
                mass_flow = NV_MAG (F_AREA_CACHE (f, t)) *
                            F_VAR (f, t, THREAD_VAR (t).mfi.mass_flux);
              end_f_loop (f, t)                                  
            }
          else
            {
              mass_flow = THREAD_VAR(t).mfi.mass_flux.constant * total;
            }
#if RP_2D
          if (rp_axi)
            mass_flow *= 2.0 * M_PI;
#endif
        }
      force = v_avg * F_VAR (0, t, THREAD_VAR(t).mfi.mass_flux) / total;
      
      /* compute change in velocity (use trapezoidal rule) */
      w0 = missile_weight (time - dtime);
      force0 = (thrust_prev - w0 * g_c) / w0;
      w1 = missile_weight (time);
      force1 = (force - w1 * g_c) / w1;
      dv = MAX (0.0, 0.5 * dtime * (force0 + force1));

      missile_velocity += dv;
      
      loc += missile_velocity * dtime;
      thrust_prev = force;

#if 1
  if( (fp=fopen("silo.dat","a") !=NULL )
    {
      float check = F_FLUX(f,t)+F_GRID_FLUX(f,t);
      fprintf(fp,"%f    %f    %f     %f    %f   %f \n",
              time,missile_velocity,loc,v_avg,F_FLUX(f,t),F_GRID_FLUX(f,t));
      fclose(fp);
    }
#endif
      
      Message ("time = %12.5e, x_vel = %12.5e, force = %12.5e, loc(m)= %1.5e\n",
               time, missile_velocity, 0.5*(force0 + force1), loc);
    }
  
  /* set missile velocity */
  cg_vel[0] = missile_velocity;
}
±àÒëÐÍUDF£¬buildºóµÄÌáʾÈçÏ£º
silo.c
..\..\src\silo.c(94) : error C2440: ¡°=¡±: ÎÞ·¨´Ó¡°Profile¡±×ª»»Îª¡°real¡±
Á¬×ųöÁ˺ü¸¸öÎÊÌ⣬ÏÖÔÚ¶¼ÒѾ­ÔκõÁË£¬ÇóÖú£¡£¡£¡£¡£¡
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

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

ľ·ç10086

гæ (СÓÐÃûÆø)

Õâô¿ì¾Í³ÁÁË£¬¸Ï½ô×Ô¼º¶¥Ò»ÏÂ
ÐÄÇ鲻ˬ£¡
2Â¥2015-11-03 16:48:11
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ls315920

гæ (СÓÐÃûÆø)

¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
Ã²ËÆÓöµ½´óÉñ£¬¸Ï½ô°Ý°Ý¡£¡£¡£
ÐéÐÄѧϰ
3Â¥2015-11-03 18:44:31
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ľ·ç10086

гæ (СÓÐÃûÆø)

´ó¼Ò¸øµã½¨Òé°É£¬Ó¦¸ÃÖ÷ÒªÊÇ     if (THREAD_VAR(t).mfi.flow_spec == MASS_FLOW_TYPE)
        mass_flow = THREAD_VAR(t).mfi.mass_flow;
      else
ÕâÒ»¾äÖеÄ=Á½±ßÓÐÎÊÌ⣬µ«ÊDz»ÖªµÀ¸ÃÔõô½â¾ö¡£
ÐÄÇ鲻ˬ£¡
4Â¥2015-11-04 11:42:11
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ľ·ç10086

гæ (СÓÐÃûÆø)

×Ô¼º¼ÌÐø¶¥°É£¬ÊµÔÚÍ·´ó¡£
ÐÄÇ鲻ˬ£¡
5Â¥2015-11-04 15:55:15
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ľ·ç10086

гæ (СÓÐÃûÆø)

Óöµ½ÎÊÌ⻹ÊÇ¿¿×Ô¼º½â¾ö£¬¿¿ÂÛ̳ʲôµÄʵÔÚÊDz»¿¿Æ×¡£
ÐÄÇ鲻ˬ£¡
6Â¥2015-11-05 08:53:32
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ËÀÌì

ר¼Ò¹ËÎÊ (ÖøÃûдÊÖ)

¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
mass_flow = THREAD_VAR(t).mfi.mass_flow;Õâ¸öÓÐÎÊÌâ

THREAD_VAR(t).mfi.mass_flowµÄÒâ˼ÊÇ£¬Í¨Ë×µÄ˵THREAD_VAR(t)ÁбíϵÄmfiÁбíϵÄmass_flowµÄ±äÁ¿È¡Öµ£¬Èç¹ûÎÒûÓмǴíµÄ»°£¨ÊÖͷûÓÐUDF£¬Ã»·¨²éѯ£©£¬Õâ¸ö±äÁ¿µÄ·µ»ØÖµ²»ÊÇ¿ÉÓÃÓÚ¼ÆËãµÄÖµ£¬¶øÊÇfluent×Ô¶¨ÒåµÄ±äÁ¿ÀàÐÍ¡£
7Â¥2015-11-05 12:21:16
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ľ·ç10086

гæ (СÓÐÃûÆø)

ÒýÓûØÌû:
7Â¥: Originally posted by ËÀÌì at 2015-11-05 12:21:16
mass_flow = THREAD_VAR(t).mfi.mass_flow;Õâ¸öÓÐÎÊÌâ

THREAD_VAR(t).mfi.mass_flowµÄÒâ˼ÊÇ£¬Í¨Ë×µÄ˵THREAD_VAR(t)ÁбíϵÄmfiÁбíϵÄmass_flowµÄ±äÁ¿È¡Öµ£¬Èç¹ûÎÒûÓмǴíµÄ»°£¨ÊÖͷûÓÐUDF£¬Ã»·¨²éѯ£©£¬Õâ ...

¶Ô£¬È·ÊµÊÇÕâ¸ö£¬ÎÒÒ²ÊÇÕÒÁ˺þã¬ÔÚÎļþÀïÒ»¸ö¸öÕÒ£¬×îºó·¢ÏÖ¾ÍÊÇÕâ¸öµÄÎÊÌâ¡£ÔÚÀϰ汾µÄʱºòÄÜÓã¬ÏÖÔڵIJ»ÐÐÁË¡£ÎÒ²»ÖªµÀÏëÓÃÕâ¸öÁ¿µÄ»°¸ÃÔõô°ì£¬ÎÒÏÖÔÚÊÇÓñðÁ¿Í¨¹ý¹«Ê½·´ËãÕâ¸öÁ¿ÁË£¬Ö±½ÓÌáÈ¡»¹ÊDz»»á¡£
ÐÄÇ鲻ˬ£¡
8Â¥2015-11-11 15:10:00
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

ËÀÌì

ר¼Ò¹ËÎÊ (ÖøÃûдÊÖ)

¡ï
Сľ³æ: ½ð±Ò+0.5, ¸ø¸öºì°ü£¬Ð»Ð»»ØÌû
ÒýÓûØÌû:
8Â¥: Originally posted by ľ·ç10086 at 2015-11-11 15:10:00
¶Ô£¬È·ÊµÊÇÕâ¸ö£¬ÎÒÒ²ÊÇÕÒÁ˺þã¬ÔÚÎļþÀïÒ»¸ö¸öÕÒ£¬×îºó·¢ÏÖ¾ÍÊÇÕâ¸öµÄÎÊÌâ¡£ÔÚÀϰ汾µÄʱºòÄÜÓã¬ÏÖÔڵIJ»ÐÐÁË¡£ÎÒ²»ÖªµÀÏëÓÃÕâ¸öÁ¿µÄ»°¸ÃÔõô°ì£¬ÎÒÏÖÔÚÊÇÓñðÁ¿Í¨¹ý¹«Ê½·´ËãÕâ¸öÁ¿ÁË£¬Ö±½ÓÌáÈ¡»¹ÊDz»»á¡£...

THREAD_VAR(t).mfi.mass_flowÖ»ÊǸö·µ»ØÖµ£¬µ÷ÓøÃÖµ£¬ÏÂÃæÓ¦¸ÃÓиöº¯ÊýÀ´Í¨¹ý¸ÃÖµÖ±½Óµ÷Óÿâ
9Â¥2015-11-11 18:42:32
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ ľ·ç10086 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£© +6 ÏàÐűػá¹ââÍòÕ 2026-04-06 7/350 2026-04-06 11:51 by lijunpoly
[¿¼ÑÐ] 312Çóµ÷¼Á +9 gtw1 2026-04-06 9/450 2026-04-06 09:19 by cql1109
[¿¼ÑÐ] ÉúÎïÓëÒ½Ò©µ÷¼Á +4 Ê®Æßsa 2026-04-05 4/200 2026-04-05 20:05 by lys0704
[¿¼ÑÐ] 271·ÖÇóµ÷¼ÁѧУ +12 zph158488£¡ 2026-04-02 13/650 2026-04-05 10:13 by lqwchd
[¿¼ÑÐ] 301Çóµ÷¼Á +18 ÂæÍÕÄÐÈË 2026-04-02 18/900 2026-04-04 20:33 by À¶ÔÆË¼Óê
[¿¼ÑÐ] 298Çóµ÷¼Á +5 zzz£¬£¬r 2026-04-02 8/400 2026-04-04 19:55 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Çóµ÷¼Á +3 ffyyu 2026-04-02 3/150 2026-04-04 19:03 by À¶ÔÆË¼Óê
[¿¼ÑÐ] ±¾¿Æ211£¬×¨Òµ085404£¬293·ÖÇëÇóµ÷¼Á +5 Á«²Ë¾ÍÊÇź°É 2026-04-04 5/250 2026-04-04 14:08 by ÕâÊÇÒ»¸öÎÞÁĵÄê
[¿¼ÑÐ] ÍÁľ304Çóµ÷¼Á +4 ÍÃͻͻͻ£¬ 2026-03-31 4/200 2026-04-04 13:34 by 1753564080
[¿¼ÑÐ] Ò»Ö¾Ô¸»¦985£¬326·ÖÇóµ÷¼Á +3 Áõīī 2026-04-03 3/150 2026-04-04 11:16 by ±¯É˵ÄÓóÍ·
[¿¼ÑÐ] »¯¹¤Çóµ÷¼Á +11 ÀóÏã֥ʿҬÄÌ 2026-04-03 11/550 2026-04-03 22:06 by à£à£à£0119
[¿¼ÑÐ] 303Çóµ÷¼Á +10 DLkz1314. 2026-03-30 10/500 2026-04-03 18:03 by Jimmyandyou
[¿¼ÑÐ] ÊýÒ»Ó¢Ò»285Çóµ÷¼Á +7 AZMK 2026-04-03 9/450 2026-04-03 13:03 by ms629
[¿¼ÑÐ] ÍÁľ304Çóµ÷¼Á +4 ÍÃͻͻͻ£¬ 2026-04-02 5/250 2026-04-02 21:16 by ÍÃͻͻͻ£¬
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©¿Æ¼¼´óѧ²ÄÁÏѧ˶328·ÖÇóµ÷¼Á +6 1¶Îʱ¼ä 2026-03-31 7/350 2026-04-02 13:57 by 3041
[¿¼ÑÐ] 271Çóµ÷¼Á +15 ÀÕ²¼ÀÊ@ 2026-03-31 20/1000 2026-04-02 11:24 by Sammy2
[¿¼ÑÐ] 354Çóµ÷¼Á +4 lxb598 2026-03-31 5/250 2026-04-02 09:55 by Jaylen.
[¿¼ÑÐ] Çóµ÷¼Á£ºÒ»Ö¾Ô¸£ºÄϾ©´óѧ רҵ£º0705 ×Ü·Ö320 £¬±¾¿Æ985£¬ËÄÁù¼¶Òѹý +3 lfy760306 2026-03-31 3/150 2026-04-01 01:57 by Creta
[¿¼ÑÐ] ÎïÀíѧµ÷¼Á +4 СÑò36 2026-03-30 4/200 2026-03-31 16:16 by lishahe
[¿¼ÑÐ] 083000»·¾³¿ÆÑ§Ó빤³Ìµ÷¼Á£¬×Ü·Ö281 +4 ³È×Ó£¨Ê¤Ò⣩ 2026-03-30 4/200 2026-03-31 00:44 by Linzejun
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û