Acusolve :Compile for UDF

Altair Forum User
Altair Forum User
Altair Employee
edited October 2020 in Community Q&A

I'm learning Acusolve following the Acusolve_2017_Turtorials. In the example of ACU-5300, the wave is defined by UDF. But when I compiled the wave.c file, an error occurred: 'wave.obj can not be found in the working directory'. I don't konw why, because I have put all files in the folder of ACU5300_ShipStatic, which includes geomsim.jou, wave.c and Wigley_hull.x_t, to the working directory. I didnt find the wave.obj file. Could you tell me Why and what can I do to eliminate the errror? Thank you!

This figure is the error information.

image.png.d71ca7861be649fc65138270f5227a9e.png

Tagged:

Answers

  • ydigit
    ydigit
    Altair Employee
    edited February 2018

    I am not sure why you have a 'dot' at the end of wave.c file? Could you try without that 'dot' at the end?

  • whj
    whj Altair Community Member
    edited May 2019

    I'm learning Acusolve following the Acusolve_2017_Turtorials. In the example of ACU-5300, the wave is defined by UDF. But when I compiled the wave.c file, an error occurred: 'wave.obj can not be found in the working directory'. I don't konw why, because I have put all files in the folder of ACU5300_ShipStatic, which includes geomsim.jou, wave.c and Wigley_hull.x_t, to the working directory. I didnt find the wave.obj file. Could you tell me Why and what can I do to eliminate the errror? Thank you!

    This figure is the error information.

    <?xml version="1.0" encoding="UTF-8"?>image.png.d71ca7861be649fc65138270f5227a9e.png

    Hello, have you solved this problem? I have the same problem as you.
    E:3_leiyou.... Is this your way of working? How is this set up? My acusolve CMD prompt, do you know how to modify it?

  • Junta_20361
    Junta_20361 New Altair Community Member
    edited July 2019

    hello everyone,

    Any update on this post?

    Does anyone know what is mean of 'can not find wave.obj' ?

    I have faced the same message while compile for UDF file.

    But the compile process still worked and created new files in the folder.

    image.png.57cb9d393c448c47cb70bb82e00d1997.png

  • acupro
    acupro
    Altair Employee
    edited July 2019

    According to the last line in your post, libusr.dll was successfully created - that is the linked/compiled library to be used by AcuSolve.  What files are in that ACU5300 directory after you run acuMakeDll?  Does the solver go through using the libusr.dll file that was created?

  • Junta_20361
    Junta_20361 New Altair Community Member
    edited July 2019

    According to the last line in your post, libusr.dll was successfully created - that is the linked/compiled library to be used by AcuSolve.  What files are in that ACU5300 directory after you run acuMakeDll?  Does the solver go through using the libusr.dll file that was created?

    Hi Acupro,

    I didn't completed Acu5300. But i will share info with Acu4002. They have similar step with compiling UDF file. ok?

    Below image are the files created after running AcuMakeDLL:

    image.png.1c9748cf54d5fbe2d253e96397ef942b.png

    The simulation worked, but in .log files, there are messages as below:

    <?xml version="1.0" encoding="UTF-8"?>image.thumb.png.c24607c6ba155c588c5ee679d989c940.png

     

    Can you tell me what is the meaning of acuMakeDll message in .log file? AcuSolve recompiled again?

  • Junta_20361
    Junta_20361 New Altair Community Member
    edited July 2019

    Also, when i submit the job to another PC (stronger than mine to reduce processing time) and that machine doesn't have compiler.

    The solver didn't run and show message as below:

    <?xml version="1.0" encoding="UTF-8"?>image.thumb.png.0e079c2e5b059764861a599ea0d108a2.png

    does this mean AcuSolve requires the current machine must have compiler?
    This is quite inconvenience. Since, for large complex model, engineer usually pre-processing on their desktop then submit the job on HPC for solving.

  • acupro
    acupro
    Altair Employee
    edited July 2019

    When the user function is compiled, it includes the libraries necessary for the type of message passing to be used by the solver itself.  If you issue

    acuMakeDll  -h

    you'll see the option '-mp' with the default being  impi.  So if you're going to use impi at the solver level, the compiled library will be correct.  However, in the cases you show above, the message passing used by the solver is openmp, thus the user library needs to be recompiled.  The second system doesn't have the 64-bit compiler, so it fails.  If you want to compile for openmp to be used on the second system you would add

    -mp  openmp

    to the acuMakeDll command you used for the first attempt.  Then the compiled dll should be usable by the solver on both systems, without recompiling.

  • Junta_20361
    Junta_20361 New Altair Community Member
    edited July 2019

    When the user function is compiled, it includes the libraries necessary for the type of message passing to be used by the solver itself.  If you issue 

    acuMakeDll  -h

    you'll see the option '-mp' with the default being  impi.  So if you're going to use impi at the solver level, the compiled library will be correct.  However, in the cases you show above, the message passing used by the solver is openmp, thus the user library needs to be recompiled.  The second system doesn't have the 64-bit compiler, so it fails.  If you want to compile for openmp to be used on the second system you would add

    -mp  openmp

    to the acuMakeDll command you used for the first attempt.  Then the compiled dll should be usable by the solver on both systems, without recompiling.

    Hi acupro,

    Thanks for your detailed answer.

    i will try it. :D/emoticons/default_biggrin.png' srcset='/emoticons/biggrin@2x.png 2x' title=':D' width='20' />