Все ответы об инженерном анализе

Перед началом работы настоятельно рекомендуем ознакомиться с правилами форума.

Добавление членов в уравнение энергии для твердого тела

Frekby
Аватар пользователя Frekby

Здравствуйте, можно ли добавить в уравнение энергии для твердого тела дополнительный член, не помощью source term

ershovmih
Аватар пользователя ershovmih

Здравствуйте, ну только если переписать с нуля все уравнения с помощью User Defined Scalar.

А какой дополнительный член вы хотите? Это не источник?

Frekby
Аватар пользователя Frekby

Цитата:
Здравствуйте, ну только если переписать с нуля все уравнения с помощью User Defined Scalar. А какой дополнительный член вы хотите? Это не источник?

Челн типа a*(drho/dt). Я просто не очень понимаю как точно работает источник, точнее его производная dS. У меня суть в том, что при drho/dt <0 член должен быть, а при drho/dt>=0 нет и при этом у меня через UDF меняется плотность твердого тела от температуры

ershovmih
Аватар пользователя ershovmih

Здравствуйте!

Всё-таки это очень похоже на источник!

Вам нужно просто сообразить, какую математику использовать для нахождения производной плотности по времени.

Производную источника по переменной уравнения энергии (по температуре) можно занулить. Всё равно будет работать

Пример добавления теплоты конденсации в уравнение энергии в однофазной постановке:

 

DEFINE_SOURCE(my_energy_source,c,t,dS,eqn)
{
    real source;    /* vapor source */
    real sigma = 1.0;    /* evaporation efficiency */
    real constant = sigma *
        sqrt( mw_vapor / (2.0 * M_PI* UNIVERSAL_GAS_CONSTANT * C_T(c,t)));    /* condensation relaxation time, 1/s */
    real diameter_drop = 2.0e-5; /* 10-50 mkm */
    real latent_heat = 2258000.0; /* latent_heat, J/kg */


    
    real X_vap = C_YI(c, t, 0);  /* mass fraction of vapor */
    real Y_vap = molefrac(X_vap, mw_vapor, mw_air);  /* mole fraction, alpha vapor */
    real X_drop = C_YI(c, t, 1);  /* mass fraction of droplets */

    real area_density = 6.0/diameter_drop*X_drop*C_R(c,t)/1000.0; 

    real P_operating = RP_Get_Real("operating-pressure");
    real P_sat = H2O_Saturation_Pressure(C_T(c,t));

    real P_vap = P_operating*Y_vap;


    if (C_UDMI(c, t, UDM_RH) > 101.0)
    {
    
    if (X_drop > 0.0)
    {    source = -latent_heat*area_density*Y_vap*constant*P_sat*((100.0-C_UDMI(c, t, UDM_RH))/100.0);
    dS[eqn] = 0.0;    }
    
    
    else
    {source = 1.0e-7*latent_heat;
    dS[eqn] = 0.0;}

    }

    else 
  {
    source = 0.0;
    dS[eqn] = 0.0;
  }
      
      C_UDMI(c, t, UDM_RH_new) = source;
    return source;
}

Frekby
Аватар пользователя Frekby

Цитата:
Здравствуйте! Всё-таки это очень похоже на источник! Вам нужно просто сообразить, какую математику использовать для нахождения производной плотности по времени. Производную источника по переменной уравнения энергии (по температуре) можно занулить. Всё равно будет работать Пример добавления теплоты конденсации в уравнение энергии в однофазной постановке:   DEFINE_SOURCE(my_energy_source,c,t,dS,eqn) {     real source;    /* vapor source */     real sigma = 1.0;    /* evaporation efficiency */     real constant = sigma *         sqrt( mw_vapor / (2.0 * M_PI* UNIVERSAL_GAS_CONSTANT * C_T(c,t)));    /* condensation relaxation time, 1/s */     real diameter_drop = 2.0e-5; /* 10-50 mkm */     real latent_heat = 2258000.0; /* latent_heat, J/kg */          real X_vap = C_YI(c, t, 0);  /* mass fraction of vapor */     real Y_vap = molefrac(X_vap, mw_vapor, mw_air);  /* mole fraction, alpha vapor */     real X_drop = C_YI(c, t, 1);  /* mass fraction of droplets */     real area_density = 6.0/diameter_drop*X_drop*C_R(c,t)/1000.0;      real P_operating = RP_Get_Real("operating-pressure");     real P_sat = H2O_Saturation_Pressure(C_T(c,t));     real P_vap = P_operating*Y_vap;     if (C_UDMI(c, t, UDM_RH) > 101.0)     {          if (X_drop > 0.0)     {    source = -latent_heat*area_density*Y_vap*constant*P_sat*((100.0-C_UDMI(c, t, UDM_RH))/100.0);     dS[eqn] = 0.0;    }               else     {source = 1.0e-7*latent_heat;     dS[eqn] = 0.0;}     }     else    {     source = 0.0;     dS[eqn] = 0.0;   }              C_UDMI(c, t, UDM_RH_new) = source;     return source; }

Спасибо, изменение плотности от температуры я знаю из эксперемента, а для источника я записываю ввиде drho/dt =(C_R(c,t)-C_R_M1(c,t))/(шаг по времени). а dS у меня равняется a, я как понял это чисто на сходимость решения влияет

Добавить комментарий

Войдите или зарегистрируйтесь, чтобы отправлять комментарии
Приложить файл

Максимальный размер файла: 999 МБ.
Допустимые типы файлов: txt doc docx xls xlsx pdf rar zip 7zip tar.