ADAMS / AeroDyn interface


I have a problem when I try to make the interface between ADAMS and AeroDyn.

I am using the following softwares: ADAMS 2005r2 and Compaq Visual Fortran v6.6. I have installed Fortran after ADAMS in my computer and I changed into the ADAMS Settings the Solver to use Fortran.

I have made my model in ADAMS directly and I have modified the ID numbers of the MARKERS (as you explained into the AeroDyn Interface for ADAMS User’s Guide). With this ADAMS model I have exported the *.adm file (ADAMS data set file) and I have modified it including the GFORCE statements. Also I have created a *.acf file (ADAMS command file) to activate/deactivate the free/fixed yaw revolute joint.

I have created the aerodyn.ipt file, the airfoil data file and a steady wind file.

I put all of these files into the same folder (also the “CompileLinkA2AD.bat” file). I follow the instructions of the “Installing NWTC Design Codes on PCs Running Windows XP”. My ADAMS model is also in the same folder.

From a command window I execute the file “CompileLinkA2AD.bat” but it does not work. The message is:

Concatening all Fortran source files into ADAMS.f90:
the system can not find the specified path
can not find C:…*.mod
can not find C:…*.obj

I do not know what can I do. Could you help me???¡¡¡¡¡¡

Thanks in advance,

Alex Estevez

Hi, Alex.

The CompileLinkA2AD.bat file is only used to create the Adams dll. The file is independent of the Adams model, the AeroDyn input file, and wind files (so it doesn’t really matter if those files exist or are in the folder). And, as long as you have downloaded Adams2AD, AeroDyn, and/or FAST so that you have the source files required to compile Adams2AD, it should not matter if you have followed all the steps in “Installing NWTC Design Codes on PCs Running Windows XP.”

Basically, CompileLinkA2AD.bat should
(1) set the environment variables needed for the compiler (by running DFVARS.bat)
(2) concatenate all of the source files into a new file named Adams.f90 (and Adams.f, if you are using an alpha version later than 6.01)
(3) compile Adams.f90 (using DF.exe) to make the object file Adams.obj
(4) run Adams to make the dll from the Adams.obj file created in step 3
(5) clean up the *.mod and *.obj files we created

It sounds to me that there is an issue with one or more paths in CompileLinkA2AD.bat. Check that DF_LOC is the directory that contains the CVF 6.6 executable file, “DF.exe”. Also verify that A2AD_LOC, AD_LOC, and FAST_LOC contain the directories to the correct source files (NOT executable files). Then, also check that the script is set up to use ADAMS05r2–the line should read something like this:

@CALL ADAMS05r2 cr-user n %ROOT_NAME%.obj -n %ROOT_NAME%.dll exit < NewLine.txt

If you are successful, you should have a file named Adams.dll when you finish. You use this dll when you run Adams05r2 with the model(s) you created.

If you still have errors, here are some questions that might help us figure out the problem: Did the file Adams.f90 get created? Can you compile Adams.f90 from a command line? Is Adams.obj created? (you will have to remove the line “@DEL *.obj” to answer that one) Can you open Adams05r2 from the command line and create the dll that way?

Hope that helps,

Hi Alex,

One more thing: it is unclear from your e-mail how you’ve gone about creating your MSC.ADAMS wind turbine model. Was this made by hand? As an alternative, our FAST code has a preprocessor for creating MSC.ADAMS datasets of wind turbines for you: Using this FAST-to-ADAMS preprocessor, as it is known, is a very convenient way of making wind turbine models for MSC.ADAMS. The FAST-to-ADAMS preprocessor uses the turbine configuration specified for the FAST model to build a higher-fidelity model of the turbine for use with MSC.ADAMS. The FAST-to-ADAMS preprocessor also includes all of the AeroDyn-ADAMS interface specifications automatically.

Best regards,


thank you very much for the long response (now I am a little bit less crazy…).

I have resolved the problem and I have generated the ADAMS.dll file.

With this file, now I have to open ADAMS/Command. Then I use the command ru-user and write the ADAMS.dll file: C:…\ADAMS.dll

Then it asks for the Adams Command File (with the code of the control of the simulation). I write the .acf file: C:…\MODELO_AERODYN.acf (Is it correct using the symbol ‘_’ into the file name?). At this moment it gives me a windows error message (please see attached figure). Sorry, the message is in spanish. The translation is something like: ‘solver.exe - Can not find the input point: can not find the input point of the procedure j0f into the library libmmd.dll’ I do not know if this is clear for you…

Must I use first the cr-user command? In that case, how can I use it into the ADAMS/Command? Which are the inputs I have to write?

I have made my model in ADAMS by hand. Then I have generated the .adm file (Adams data set file). In this file I have include the GFORCE (writting by hand into the file). To check the .adm file I have created a new model file in ADAMS/View and import this .adm file. It works and the GFORCE are included in the model.

Really I do not know if I have to open the ADAMS/View during the Aerodyn runs… or the interface is internally and I can check the simulation when the interface is over… really I do not know how it works. I use to work directly into the ADAMS/View.

Thank you very much for the answers. I think I am near the solution.

Alex Estevez

Dear Alex,

I’m glad to hear you got the ADAMS.dll compiled. And the procedure you are applying to run the ADAMS simulation using ru-user sounds correct. However, I’m not sure what the error message means (even with your translation into English).

The cr-user command is used in CompileLinkA2AD.bat to compile the ADAMS.dll; once the ADAMS.dll is made, cr-user is no longer used.

You must use the ru-user command when running ADAMS models with the AeroDyn interface. The ADAMS.dll is the interface between ADAMS/Solver and the AeroDyn subroutines. Without this interface, your model will not have aerodynamics. ADAMS/Solver, the ADAMS.dll, an ADAMS model (.adm and .acf files), and AeroDyn inputs are all that is needed to run the ADAMS simulation. ADAMS/View is only needed for viewing the model graphically.

I’m not sure if the problem you have run into is with your ADAMS installation, the compiling of the ADAMS.dll using your source code modifications, or in your hand-made ADAMS model or AeroDyn inputs. It is hard to offer advice because there are too many differences between how you are using ADAMS and how we use ADAMS. Perhaps you should start using ADAMS by first creating the ADAMS model with FAST (take one of the models from FAST’s CertTest, for example), compiling the ADAMS.dll with the FAST source files identified in CompileLinkA2AD, and running the ADAMS simulation with this model. If you follow the directions supplied with FAST, such a model should run fine. If you still get the same error in this case, we will have isolated the problem to your ADAMS installation. Otherwise, I’m not sure how to help you, as the problem is with your own model or DLL.

One idea I have is that your ADAMS installation did not load all of the libaries necessary to create and run user-defined routines that are linked to ADAMS. I know some users have run into problems if they installed ADAMS before they installed their compiler. In your original post, you mentioned that you installed ADAMS first. So, uninstalling and reinstalling ADAMS may fix the problem.

You may also want to contact MSC.ADAMS technical support.

Best regards,

Hi Jason,

Finally I have resolved it !!!

The problem was when the program tried to open ADAMS/Solver. If I tried to open directly the ADAMS/Solver icon the same message error appeared. I have reinstalled ADAMS and the problem was solved.

After some problems of convergence the simulation have finished. I have created a new model in ADAMS/View, I have imported the *.adm file and then I have imported the result file *.res.
If I play the simulation it runs ¡¡¡¡¡

To solve the problems of convergence I have to deactivated the free yaw d.o.f. and fixed it. Also I have commented into the *.adm file the MOTION to deactivated it. I can watch at the simulation how the rotor accelerates. I have apply a “steady.wnd” file.

I have a question: the reason to include a MOTION into the *.adm file is to simulate the effect of the windturbine control which try to maintain the same angular velocity to the rotor? In that case, the rotor will turn with constant angular velocity and the aerodinamic forces will hit the blades? But the rotor will not accelerate due to the constant angular velocity imposed? Isn´t it?

Thank you very, very, very, very,… much for your attention. I hope these answers and comments will be usefull for other users in the future.

Alex Estevez

Dear Alex,

I’m glad you got ADAMS to work.

Yes, MOTION statements in ADAMS eliminate DOFs by prescribing motion. If the angular rotation of the shaft has a MOTION statement prescribing constant angular speed, then the shaft will spin at that speed regardless of the forces applied to it.

In the FAST-to-ADAMS preprocessor, FAST creates the ADAMS datasets (.adm) files with JOINT and MOTION statements disabling all DOFs. These statements are than removed (DEACTIVATEd) in the ADAMS control (.acf) file created by FAST, based on which DOFs are enabled in the model. See the last two paragraphs in the “ADAMS Preprocessor” chapter of the “FAST User’s Guide” for more information.

Best regards,