Jump to content
lei-y16

Acusolve :Compile for UDF

Recommended Posts

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

Share this post


Link to post
Share on other sites
On 2/5/2018 at 4:38 PM, lei-y16 said:

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

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?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites
6 hours ago, acupro said:

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:

image.thumb.png.c24607c6ba155c588c5ee679d989c940.png

 

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

Share this post


Link to post
Share on other sites

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:

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.

Share this post


Link to post
Share on other sites

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.

Duc_Hoang likes this

Share this post


Link to post
Share on other sites
15 hours ago, acupro said:

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...