-
-
October 10, 2024 at 2:55 amyf70512Subscriber
Hello all,
I am trying to modify the source term (Changing the temperature power exponent from 1 to 4) of energy equation in non-equilibrium thermal model by UDS and UDF (DEFINE_SOURCE macro). But the Fluent crashed when the code runned with the error "999999:mpt_accept:error: accept failed: No error". I think there may be two questions:
1 how to access the solid temperature in the fluid zone and fluid temperature in the solid zone?
2 how to specify the UDS Scalar as the energy source (Figure 2)?
Could anybody help with this? Thank you in advance.
Best regards,Fan
-
October 10, 2024 at 7:33 amyf70512Subscriber
Here is my UDF:
#include "udf.h"
#define HFS_CONSTANT 1000Â Â
#define AFS_CONSTANT 0.1Â Â Â// Fluid Source Term
DEFINE_SOURCE(Fluid_source, c, t, dS, eqn)
{
  real Tf, Ts;
  real hfs, Afs;
  real source;  // Obtain the fluid temperature (Tf) and solid temperature (Ts)
  Tf = C_STORAGE_R(c, t, SV_T_F);  // Access fluid temperature
  Ts = C_STORAGE_R(c, t, SV_T_S);  // Access solid temperature
  Â
  // Calculate or use constants for hfs (heat transfer coefficient) and Afs (interfacial area density)
  hfs = HFS_CONSTANT;  // Define or calculate hfs
  Afs = AFS_CONSTANT;  // Define or calculate Afs  // Calculate the source term using modified expression hA(Tf^4 - Ts^4)
  source = hfs * Afs * (pow(Ts, 4) - pow(Tf, 4));  // Define the derivative of the source term with respect to Tf
  dS[eqn] = -4 * hfs * Afs * pow(Tf, 3);  return source;  // Return the calculated source term
}// Solid Source Term
DEFINE_SOURCE(Solid_source, c, t, dS, eqn)
{
  real Tf, Ts;
  real hfs, Afs;
  real source;  // Obtain the fluid temperature (Tf) and solid temperature (Ts)
  Ts = C_STORAGE_R(c, t, SV_T_S);  // Access solid temperature
  Tf = C_STORAGE_R(c, t, SV_T_F);  // Access fluid temperature  // Calculate or use constants for hfs (heat transfer coefficient) and Afs (interfacial area density)
  hfs = HFS_CONSTANT;  // Define or calculate hfs
  Afs = AFS_CONSTANT;  // Define or calculate Afs  // Calculate the source term using modified expression hA(Ts^4 - Tf^4)
  source = hfs * Afs * (pow(Ts, 4) - pow(Tf, 4));  // Define the derivative of the source term with respect to Ts
  dS[eqn] = 4 * hfs * Afs * pow(Ts, 3);  return source;  // Return the calculated source term
}I am not sure if it is right to access the solid temperature in the fluid zone and fluid temperature in the solid zone.
-
October 10, 2024 at 1:33 pmRobForum Moderator
The problem isn't so much getting the fluid temperature as seen by the solid or vice versa but that you need to link to the two cells: so some care will be needed there.Â
Changing the exponent from 1 to 4 suggests radiation effects? Will this effect anything other than the front and rear (ie external surfaces) of the solid?
-
October 11, 2024 at 12:37 amyf70512Subscriber
Hi Rob,
Many thanks for your suggestions. I would like to ask how to link the two cells.
I have tried to link them by the spatial coordinate because a dual cell approach is used in non-equilibrium thermal model.
But the same errors occured "999999:mpt_accept:error: accept failed: No error" . The code is following:
DEFINE_SOURCE(Fluid_source,c,t,dS,eqn)Â{Âreal xc[ND_ND], xcs[ND_ND];real Tf, Ts;real hfs = HFS_CONSTANT; // Placeholder value for heat transfer coefficient  real Afs = AFS_CONSTANT;  // Placeholder value for interfacial area density  real source;int zone_ID;Thread *st;cell_t sc;Domain *domain;// Solid_Cell_id *st;Â// Find the coordinate position of the centroidC_CENTROID(xc,c,t);  // Obtain fluid and solid temperatures  Tf = C_T(c, t); // Fluid temperature  // Ts = C_STORAGE_R(c, t, SV_T_S); // Solid temperatureÂÂzone_ID = THREAD_ID (t);Âif (zone_ID == 11){domain = Get_Domain(27);thread_loop_c(st, domain) // loop over all cell threads in the domain{begin_c_loop (sc,st) // loop over all cellsÂ{C_CENTROID(xcs,sc,st);if (fabs(xc[0] - xcs[0]) < 1.0e-6 && fabs(xc[1] - xcs[1]) < 1.0e-6 && fabs(xc[2] - xcs[2]) < 1.0e-6)Ts = C_T(sc,st);break;}end_c_loop (sc,st)}  // DEFINE_PROFILE(Ts, st, xc);}if (zone_ID == 14){domain = Get_Domain(33);thread_loop_c(st, domain){begin_c_loop (sc,st){C_CENTROID(xcs,sc,st);if (fabs(xc[0] - xcs[0]) < 1.0e-6 && fabs(xc[1] - xcs[1]) < 1.0e-6 && fabs(xc[2] - xcs[2]) < 1.0e-6)Ts = C_T(sc,st);break;}end_c_loop (sc,st)}Â}  // DEFINE_PROFILE(Ts, st, xc);  // Calculate the source term based on the modified expression  source = hfs * Afs * (pow(Ts, 4.0) - pow(Tf, 4.0));  // Set the derivative of the source term with respect to Tf  dS[eqn] = - 4.0 * hfs * Afs * pow(Tf, 3.0);  return source;Â}Besides, the effect (exponent from 1 to 4) in my case only affect the heat transfer in the interface between the solid and fluid.
-
-
- You must be logged in to reply to this topic.
- Non-Intersected faces found for matching interface periodic-walls
- Script error Code: 800a000d
- Unburnt Hydrocarbons contour in ANSYS FORTE for sector mesh
- Help: About the expression of turbulent viscosity in Realizable k-e model
- Fluent fails with Intel MPI protocol on 2 nodes
- Cyclone (Stairmand) simulation using RSM
- error udf
- Diesel with Ammonia/Hydrogen blend combustion
- Mass Conservation Issue in Methane Pyrolysis Shock Tube Simulation
- Script Error
-
1301
-
591
-
544
-
524
-
366
© 2025 Copyright ANSYS, Inc. All rights reserved.