999999: mpt_accept: error: accept failed: No error

AnadiAnadi Member Posts: 22

Hello,

Greetings! I am experiencing same error since last 3 weeks. I also posted earlier about my problem. As I am getting error during initialization, one of you told me I have problem with DEFINE_DPM_INJECTION_INIT . Other recommended me to allocate UDMI before compiling UDF and to use double precision . I followed last two recommendations but still same error. However, someone told me to set counter so that I can isolate the error. Here is my DEFINE_DPM_INJECTION_INIT ,would you tell me how can I set counter here or inside any other udf?


DEFINE_DPM_INJECTION_INIT(entrainment_inj,I)

{

Particle *p;

cell_t c;

Thread *tc;


loop(p,I->p_init)

{

c = P_CELL(p);

tc = P_CELL_THREAD(p);

P_POS(p)[0]=C_UDMI(c,tc,6);

P_POS(p)[1]=C_UDMI(c,tc,7);

P_POS(p)[2]=C_UDMI(c,tc,8);

P_FLOW_RATE(p)= C_UDMI(c,tc,5);

P_DIAM(p)=p_diam;

P_VEL(p)[0]=C_U(c,tc);

P_VEL(p)[1]=C_V(c,tc);

P_VEL(p)[2]=C_W(c,tc);

C_UDMI(c,tc,9)=C_U(c,tc);

C_UDMI(c,tc,10)=C_V(c,tc);

C_UDMI(c,tc,11)=C_W(c,tc);

}

}

And my error is same at the time of initialization,

999999: mpt_accept: error: accept failed: No error

999999: mpt_accept: error: accept failed: No error

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


Node 0: Process 18384: Received signal SIGSEGV.


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


999999: mpt_accept: error: accept failed: No error


999999: mpt_accept: error: accept failed: No error

999999: mpt_accept: error: accept failed: MPI Application rank 0 exited before MPI_Finalize() with status 2

The fl process could not be started.


Thank you

Anadi

«1

Answers

  • YasserSelimaYasserSelima Member Posts: 431

    I think the problem is in the line c = P_CELL(p); But let's make sure first.

    let the code print message after each line and see where will it stop ... use the function like this


    DEFINE_DPM_INJECTION_INIT(entrainment_inj,I)

    {

    Particle *p;

    cell_t c;

    Thread *tc;

    int i=0;

    #if RP_HOST

    Message("\n i = %d", i);

    #endif

    loop(p,I->p_init)

    {

    i++

    #if RP_HOST

    Message("\n i = %d", i);

    #endif

    c = P_CELL(p);

    #if RP_HOST

    Message("\n passed line 1, i = %d", i);

    #endif

    tc = P_CELL_THREAD(p);

    #if RP_HOST

    Message("\n passed line 2, i = %d", i);

    #endif

    P_POS(p)[0]=C_UDMI(c,tc,6);

    P_POS(p)[1]=C_UDMI(c,tc,7);

    P_POS(p)[2]=C_UDMI(c,tc,8);

    #if RP_HOST

    Message("\n passed line 3, i = %d", i);

    #endif

    P_FLOW_RATE(p)= C_UDMI(c,tc,5);

    P_DIAM(p)=p_diam;

    P_VEL(p)[0]=C_U(c,tc);

    P_VEL(p)[1]=C_V(c,tc);

    P_VEL(p)[2]=C_W(c,tc);

    #if RP_HOST

    Message("\n passed line 4, i = %d", i);

    #endif

    C_UDMI(c,tc,9)=C_U(c,tc);

    C_UDMI(c,tc,10)=C_V(c,tc);

    C_UDMI(c,tc,11)=C_W(c,tc);

    }

    }

  • AnadiAnadi Member Posts: 22

    Thank you YasserSelima ! I will use this code tomorrow. But will you check the attached image. In the ansys udf manual I see that DEFINE_DPM_INJECTION_INIT can be only used with Linux system. But I am working on Windows machine. Can I still use DEFINE_DPM_INJECTION_INIT on windows system?


  • YasserSelimaYasserSelima Member Posts: 431

    I am not sure. We have nothing to loose. Let's debug and see where it stops.

    If it gives you an error in the line

    i++;

    replace it with

    i=i+=1;

  • AnadiAnadi Member Posts: 22

    Hi YasserSelima!

    I have tried using both i++; and i=i+=1; with both serial and parallel processing options. But, in all cases I got same error message as follows:

    999999: mpt_accept: error: accept failed: No error


    999999: mpt_accept: error: accept failed: No error


    999999: mpt_accept: error: accept failed: No error

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


    Node 0: Process 22844: Received signal SIGSEGV.


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


    999999: mpt_accept: error: accept failed: No error


    999999: mpt_accept: error: accept failed: No error

    999999: mpt_accept: error: accept failed: No error

    MPI Application rank 0 exited before MPI_Finalize() with status 2

    The fl process could not be started.


    Just for more information ,DEFINE_DPM_INJECTION_INIT is one of the udf out of 7 in a file. I am also using liquid and vapor mass, momentum sources( 2 mass sources, 4 momentum sources and one DEFINE_DPM_INJECTION_INIT) in the same udf.

    This all errors are happening at the time of solution initialization.


    Thank You,

    Anadi

  • YasserSelimaYasserSelima Member Posts: 431

    I know, but the error happens when you initialize ... This means the problem occurs in the initialization function. Other functions might have problems but they are not recalled at initialization.

    Before you got this error, did you get a message

    i=0

    i=1

    ... and so on

    if yes, please copy and paste the printed line. We can know from these lines where did the code stop

  • YasserSelimaYasserSelima Member Posts: 431
    edited February 22

    A question

    Do you compile, or interpret the UDF?

  • AnadiAnadi Member Posts: 22

    Hi YasserSelima!

    Here I have attached the images of console output from uploading case file to starting of error.

    I am compiling the UDF.

    Actually for liquid it's a boundary condition . This is why define_profile is being used.


  • YasserSelimaYasserSelima Member Posts: 431

    It didn't print any message!!

    Let's try something else ...

    Add this line at the top of all functions.


    Message("\n \n This is function : function_name");

    In this line, replace the function_name with the actual function name.


    Then Delete the libudf folder and recompile ... After initialisation you will receive the same error ... but every function will print a message when recalled. So, we know the last recalled function,

  • AnadiAnadi Member Posts: 22

    I am using above format at the top of all function but getting the following error for all cases:

    ..\..\src\liquid_film.c(17): error C2143: syntax error: missing ')' before 'string'

    ..\..\src\liquid_film.c(17): error C2143: syntax error: missing '{' before 'string'

    ..\..\src\liquid_film.c(17): error C2059: syntax error: 'string'

    ..\..\src\liquid_film.c(17): error C2059: syntax error: ')'

  • YasserSelimaYasserSelima Member Posts: 431

    This is the top of of the function ... inside the function, before any calculations.



  • AnadiAnadi Member Posts: 22

    Hello YasserSelima!

    I am using '' message'' as fellows:

    DEFINE_PROFILE(film_mass_source,tf,i)

    {

    real film_thickness, film_vel, vap_vel, Jf, Jg, fi, Ref, area_face, area[ND_ND], pos[ND_ND], r1, angle, x_inj, y_inj, z_inj, evap_mass_source, evap_mom_source, ent_mass_source;

    real flow_time = CURRENT_TIME;

    face_t f;

    cell_t c;

    Thread *tc;

    Message("\n\n This is function : film_mass_source");

    begin_f_loop(f,tf)

    {

    film_thickness = F_EFILM_HEIGHT(f,tf);

    ...............................................................


    And starting of error is like these-


    Available material properties or methods have changed.

    Please confirm the property values before continuing.



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


    Node 1: Process 1804: Received signal SIGSEGV.


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


    999999: mpt_accept: error: accept failed: No error


    999999: mpt_accept: error: accept failed: No error

    .......................................................................................

    999999: mpt_accept: error: accept failed: No error


    999999: mpt_accept: error: accept failed: No errorMPI Application rank 0 exited before MPI_Finalize() with status 2

    The fl process could not be started


    Still it's not printing any output in console windows

  • YasserSelimaYasserSelima Member Posts: 431

    Do you get this error when you run the simulation without UDF?

    Available material properties or methods have changed.

    Please confirm the property values before continuing.

  • YasserSelimaYasserSelima Member Posts: 431


    if(!Data_Valid_P())  
         return;
    
    


  • AnadiAnadi Member Posts: 22

    Hi YasserSelima !

    I notice that when I am trying to turn on the 'Eulerian Wall Film ' and selecting 'Film Material ' water-liquid ' and Surface Tension 0.017633, and clicking 'ok' , I am getting bottom message in the console window even I am not using UDF. Film material was air and surface tension was 0.76.. as default.

  • AnadiAnadi Member Posts: 22

    I can run the simulation if I don't use UDF. So, obviously the problem is in UDF. Do you need any more info ?

  • YasserSelimaYasserSelima Member Posts: 431

    yes, lots of questions

    First, Are you able to run the case with air film material using the UDF?

    Second, Did you press the initialize at the bottom of wall film material panel?


    The error you get SIGSEGV means that Node 0 requested some piece of information from memory and it did not find it. This piece of information could be material property, location in UDM, cell does not exist ... or something else.

  • AnadiAnadi Member Posts: 22

    Hi YasserSelima,

    Thank you for constantly supporting me!


    I have tried to run the case with air film but same type of error.

    At first I was not pressing the initialize at the bottom of wall film material panel. Later, I repeat the process by pressing 'initialize' but both cases I got same output in console panel.

    But, what is the correct way, should I press initialize or not at the bottom of wall film material panel?

    For the case of Memory/UDM, I am allocating 12 locations (Number of User Defined Memory Location ) before compiling UDF. I have attached an image of it. My C_UDMI is from C_UDMI (c,t,0) to C_UDMI (c,t,11) in UDF. So I am using 12 locations.

    In all cases errors are as follows:(sometimes I am getting this error with numbers of '999999: mpt_accept: error: accept failed: No error' lines.)


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


    Node 1: Process 25200: Received signal SIGSEGV.


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

    MPI Application rank 0 exited before MPI_Finalize() with status 2

     The fl process could not be started.


    Where should I use the command ? if(!Data_Valid_P())  
                                     return;
    
    Should I use at the bottom of these lines?( This is the inside of DEFINE_DPM_INJECTION_INIT function)
    loop(p,I->p_init)
    {
    i++;
    #if RP_HOST
    Message("\n, i = %d", i);
    #endif
    c = P_CELL(p);
    #if RP_HOST
    Message("\n passed line 1, i = %d", i);
    #endif
    tc = P_CELL_THREAD(p);
    #if RP_HOST
    Message("\n passed line 2, i = %d", i);
    #endif
    



  • YasserSelimaYasserSelima Member Posts: 431

    For the film, I am not sure about the answer but we can ask one of the experts here.

    @Rob , Can you please have a look at the Eulerian wall film settings and let @Anadi know the right procedure to initialise the film. There is an error message appeared after changing the film material. The message appears in the photos above. Thank you!



    For the UDM, I believe you are selecting the right number. Let's add a value to the UDM before starting. This function should put a value of 1 in all C_UDMI . After compile you should find this in the execute on demand menu. Run this before initialisation.


    DEFINE_ON_DEMAND(init_udm)
    {
      Domain *domain;
      cell_t c;
      Thread *t;
     
      domain=Get_Domain(1);
      
      /* Fill the UDM with magnitude of gradient. */
      thread_loop_c (t,domain)
        {
           begin_c_loop (c,t)
             {
               C_UDMI(c,t,0) = 1;
               C_UDMI(c,t,1) = 1;
               C_UDMI(c,t,2) = 1;
               C_UDMI(c,t,3) = 1;
               C_UDMI(c,t,4) = 1;
               C_UDMI(c,t,5) = 1;
               C_UDMI(c,t,6) = 1;
               C_UDMI(c,t,7) = 1;
               C_UDMI(c,t,8) = 1;
               C_UDMI(c,t,9) = 1;
               C_UDMI(c,t,10) = 1;
               C_UDMI(c,t,11) = 1;
             }
           end_c_loop (c,t)
        }
    }
    


    These lines should check that the data is valid before proceeding in calculation. It should be used below the message Message("\n\n This is function : film_mass_source");

    if(!Data_Valid_P())  
        return;
    


  • YasserSelimaYasserSelima Member Posts: 431

    99999 is the Host . there is no error happening in the host

    the actual error happens at Node 0: SIGSEGV


    Even when you select 1 processor, Fluent run in parallel. So, the same processor acts as a host and Compute Node 0 at the same time. No serial solver available now in Fluent

  • AnadiAnadi Member Posts: 22

    Finally it works. It runs without any error. I am trying to run on my laptop to check it works or not. It has 260k elements, so it will not run on my laptop. I will try this simulation on university's vLabs . Let's see which type of data it gives.

    Thank you so much for helping constantly. See you again.

Sign In or Register to comment.