24小时热门版块排行榜    

查看: 3016  |  回复: 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

新虫 (小有名气)

自己继续顶吧,实在头大。
心情不爽!
5楼2015-11-04 15:55:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

木风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
这一句中的=两边有问题,但是不知道该怎么解决。
心情不爽!
4楼2015-11-04 11:42:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 wsYGJnURYvm6 2026-08-31 3/150 2026-09-01 01:52 by o3EMxHUAQDtS
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 wsYGJnURYvm6 2026-08-31 3/150 2026-09-01 01:40 by o3EMxHUAQDtS
[考博] 售SCI一区T0P文章,我:8O.55.1.O.54,科目全,可伽急 +3 EZ67DG6CvcKL 2026-08-31 4/200 2026-09-01 01:30 by o3EMxHUAQDtS
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 EZ67DG6CvcKL 2026-08-31 3/150 2026-08-31 22:23 by o3EMxHUAQDtS
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +6 yuleib84 2026-08-26 7/350 2026-08-31 19:46 by 鱼翔浅底1
[基金申请] 能否申诉? +7 echo8914667 2026-08-30 8/400 2026-08-31 17:00 by yihongxu
[基金申请] 中青基了要发朋友圈吗? +7 349506619 2026-08-28 7/350 2026-08-31 13:39 by 冼亮淀粉酶
[基金申请] 基金不中,共勉 +12 eulota 2026-08-26 12/600 2026-08-31 08:42 by ZJTJZ
[基金申请] 为什么到现在没收到通知? +5 tannykie 2026-08-29 5/250 2026-08-30 21:05 by purplejack
[考博] 找导师 +6 yuanjiabao 2026-08-29 7/350 2026-08-30 14:40 by 生科新手
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +12 Kittylucky 2026-08-27 13/650 2026-08-29 00:04 by superceng
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
信息提示
请填处理意见