Fluids

Fluids

BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES error

    • DexterQiu
      Subscriber

      Hi,

      I'm new to Fluent. I'm using ANSYS 2021 R2 Fluent to simulate a moving wall within a fluid domain using a UDF. When I preview the remeshed region in the next time step, I always receive an error message saying BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES. 

      In some rare cases, this problem can be solved by meshing with a different mesh density. However, it will lead to a negative volume error, and it is hard to tell which part in the mesh went wrong. The refined initial mesh can make the error happens more frequently.

      What could be the potential causes of the BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES error? 

      Is there any way to avoid this type of error?


      The error message is shown as follows.

      ===================================================================================

      = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES

      = RANK 0 PID 17876 RUNNING AT DQ-A

      = EXIT STATUS: -1 (ffffffff)

      ===================================================================================


      ===================================================================================

      = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES

      = RANK 1 PID 45524 RUNNING AT DQ-A

      = EXIT STATUS: -1 (ffffffff)

      ===================================================================================

      The same error happens at every thread.


      The dynamic mesh setting is shown as below:

      blob:https://forum.ansys.com/87f07059-f185-457e-a80f-5c4121a379c5 There was an error displaying this embed.


      blob:https://forum.ansys.com/8c9e94bf-207e-4dba-9509-30dcc18df694 There was an error displaying this embed. blob:https://forum.ansys.com/ff34f16f-465f-40b9-a16e-e3a828b42658 There was an error displaying this embed.


      Thank you,

      Dong Qiu

    • Karthik R
      Administrator
      Hello This might be because of the UDF or how you set up your dynamic meshing. You need to provide us with additional details so we are able to understand the issue better.
      What is the UDF doing? Please also share screenshots of your starting mesh. What is this mesh quality at the beginning? Also, how did you set up your dynamic meshing?
      Karthik
    • DexterQiu
      Subscriber
      Hi Karthik Thank you so much. I checked my UDF and noticed there was an incorrect parameter in my code. I have revised the code and it is working now.
      Thank you Dong Qiu
    • Karthik R
      Administrator
      Excellent! Glad it worked.
      Karthik
    • pratheeba.chandanagarajan
      Subscriber
      Hi
      I have the same problem.

      My UDF is below:

      begin_f_loop(f, thread)
      {
      if (t < 20.0)
      {
      F_PROFILE(f, thread, position) = 11.8325;
      }
      else if (t < 50.0)
      {
      F_PROFILE(f, thread, position) = 22.0135;
      }

      }
      end_f_loop(f, thread)
      }

      /**********************************************************************
      unsteady.c
      UDF for specifying a transient temperature profile boundary condition
      ***********************************************************************/

      DEFINE_PROFILE(unsteady_temperature, thread, position)
      {
      face_t f;
      real t = CURRENT_TIME;

      begin_f_loop(f, thread)
      {
      if (t < 20.0)
      {
      F_PROFILE(f, thread, position) = 373.15;
      }
      else if (t < 50.0)
      {
      F_PROFILE(f, thread, position) = 366.15;
      }

      }
      end_f_loop(f, thread)
      }
      /**********************************************************************
      unsteady.c
      UDF for specifying a h-value based on time
      ***********************************************************************/

      DEFINE_PROFILE(htc, thread, position)
      {
      face_t f;
      real time = CURRENT_TIME;

      begin_f_loop(f, thread)
      {
      if (time < 20.0)
      {
      F_PROFILE(f, thread, position) = 50.0;
      }
      else
      {
      F_PROFILE(f, thread, position) = 100.0;
      }
      }
      end_f_loop(f, thread)
      }

      Below is the message displayed on FLUENT
      The fl process could not be started.

      ===================================================================================
      = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
      = RANK 0 PID 8148 RUNNING AT C19FTAI
      = EXIT STATUS: -1 (ffffffff)
      ===================================================================================

      ===================================================================================
      = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
      = RANK 1 PID 22144 RUNNING AT C19FTAI
      = EXIT STATUS: -1 (ffffffff)
      ===================================================================================

      ===================================================================================
      = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
      = RANK 2 PID 12564 RUNNING AT C19FTAI
      = EXIT STATUS: -1 (ffffffff)
      ===================================================================================

      ===================================================================================
      = BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
      = RANK 3 PID 26620 RUNNING AT C19FTAI
      = EXIT STATUS: -1 (ffffffff)

      The same simulation was running few days back. i did not change any parameter.

      Can you please help, ?

      Thank You
      Pratheeba
    • pratheeba.chandanagarajan
      Subscriber
      Just to add details I am running a transient simulation, flow through a pipe and a porous media section. There is change in velocity and temperature as a step change. I am using the viscous resistance for the porous media model and shell conduction with three layers for heat loss through a heat transfer coeffient.

      Thank You
      Pratheeba
    • Rob
      Ansys Employee
      Have a look at the DEFINE_PROFILE example in the manual - you're missing some fairly important bits at the top. I'd also review the IF statements, as 20 is less than 50 the latter value will always be used until time exceeds 50s in which case I have no idea what will happen.
    • pratheeba.chandanagarajan
      Subscriber
      Hi Rob
      Thank You.

      Sorry! The first header file etc was not pasted while I copied.

      /**********************************************************************
      unsteady.c
      UDF for specifying a transient velocity profile boundary condition
      ***********************************************************************/

      #include "udf.h"


      DEFINE_PROFILE(unsteady_velocity, thread, position)
      {
      face_t f;
      real t = CURRENT_TIME;

      begin_f_loop(f, thread)
      {
      if (t < 20.0)
      {
      F_PROFILE(f, thread, position) = 11.8325;
      }
      else if (t < 50.0)
      {
      F_PROFILE(f, thread, position) = 22.0135;
      }

      }
      end_f_loop(f, thread)
      }

      /**********************************************************************
      unsteady.c
      UDF for specifying a transient temperature profile boundary condition
      ***********************************************************************/

      DEFINE_PROFILE(unsteady_temperature, thread, position)
      {
      face_t f;
      real t = CURRENT_TIME;

      begin_f_loop(f, thread)
      {
      if (t < 20.0)
      {
      F_PROFILE(f, thread, position) = 373.15;
      }
      else if (t < 50.0)
      {
      F_PROFILE(f, thread, position) = 366.15;
      }

      }
      end_f_loop(f, thread)
      }
      /**********************************************************************
      unsteady.c
      UDF for specifying a h-value based on time
      ***********************************************************************/

      DEFINE_PROFILE(htc, thread, position)
      {
      face_t f;
      real time = CURRENT_TIME;

      begin_f_loop(f, thread)
      {
      if (time < 20.0)
      {
      F_PROFILE(f, thread, position) = 50.0;
      }
      else
      {
      F_PROFILE(f, thread, position) = 100.0;
      }
      }
      end_f_loop(f, thread)
      }
      This is my full UDF. Thank you for your suggestion about the IF statement. I will rewrite the IF.
      Thank You
      Pratheeba
Viewing 7 reply threads
  • You must be logged in to reply to this topic.