<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.3660" name=GENERATOR></HEAD>
<BODY>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2>York,</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT color=#0000ff><FONT
face=Arial size=2>I use Visual Studio 2008 to build IPOPT 3.8. In my case,
I build IPOPT as a static library and link it with PARDISO. If you are
using Visual Studio, you must make sure that the file
"IpPardisoSolverInterface.cpp" is included in your project file, or it will not
be compiled even if you've changed it. I've noticed that some IPOPT source
files have not been included in the Visual Studio project file, and I've had to
manually add some on occasion.</FONT></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2>If you are building PARDISO as a DLL, you have to perform a
few additional steps.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT size=2><FONT
face=Arial color=#0000ff>1. When you build the IPOPT DLL, you will need to
link it with the import library named "libpardiso400_INTEL_IA32.lib". This
is done so that when the IPOPT DLL is loaded by your executable, it can find the
PARDISO functions it needs at runtime
in "libpardiso400_INTEL_IA32.dll". The process of building the IPOPT
DLL should also produce a .lib file of the same name as the
DLL.</FONT></FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2>2. When you build your executable, you must link
your code to the .lib file that was produced when building IPOPT. This
way, your executable can find the IPOPT functions it needs in the accompanying
DLL at runtime.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2>3. The file libiomp5md.dll is a runtime library (not
to be confused with the import libraries mentioned above), and needs to be in
the same directory as your executable. This DLL is used to support the
Intel MKL code that is used by PARDISO. It may also be located somewhere
else, provided that your system can find it, ie, it needs to be in a directory
defined by the PATH environment variable.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2>4. Do not rename "libpardiso400_INTEL_IA32.dll", or
it will not be properly located at runtime. If you link IPOPT with
libpardiso400_INTEL_IA32.lib, it expects to use a runtime DLL of the same
name.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2>5. You probably do not need the PARDISO_Template.zip
file - I didn't need it.</FONT></SPAN></DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2></FONT></SPAN> </DIV>
<DIV dir=ltr align=left><SPAN class=921374619-18022010><FONT face=Arial
color=#0000ff size=2>6. At run time, your executable, the IPOPT DLL, and
file libiomp5md.dll must all reside in the same directory or be located in a
directory defined by the PATH environment variable.</FONT></SPAN></DIV><BR>
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> York Tang [mailto:hkyork@gmail.com]
<BR><B>Sent:</B> Thursday, February 18, 2010 12:02 PM<BR><B>To:</B> Teeter,
Chuck<BR><B>Cc:</B> ipopt@list.coin-or.org<BR><B>Subject:</B> Re: [Ipopt] Can
PARDISO 4.0 work with ipopt in windows?<BR></FONT><BR></DIV>
<DIV></DIV>Dear Teeter,<BR><BR>I have tried your step, but still crash when the
solver start (do not print any msg from the process)<BR><BR>Here is what i have
done.<BR><BR>1. First i download the( INTEL, 32-bit, icc/ifort 10.1 Windows)
(with MKL BLAS) Version of PARDISO.<BR>It has 4
files(libpardiso400_INTEL_IA32.dll,libpardiso400_INTEL_IA32.lib,libiomp5md.dll,PARDISO_Template.zip)<BR>2.
I named the "libpardiso400_INTEL_IA32.dll" to "libpardiso.dll". Put it next to
my exe. (my exe can detect the licence is wrong, if i input a invalid licence
file)<BR>3. And do all the thing that you mentioned. and replace the old
Ipopt38.dll with the new one.<BR><BR>Where is my problem?<BR>Also What i need to
do with the libpardiso400_INTEL_IA32.lib,libiomp5md.dll,PARDISO_Template.zip?
(if i just want to use the PARDISO with ipopt)<BR>Thank you so much for your
help!<BR><BR>York<BR><BR>
<DIV class=gmail_quote>2010/2/18 Teeter, Chuck <SPAN><<A
href="mailto:cteeter@suncor.com">cteeter@suncor.com</A>></SPAN><BR>
<BLOCKQUOTE class=gmail_quote
style="PADDING-LEFT: 1ex; MARGIN: 0pt 0pt 0pt 0.8ex; BORDER-LEFT: rgb(204,204,204) 1px solid">York,<BR><BR>PARDISO
does indeed work with IPOPT. I had an experience similar to<BR>yours,
but this is how I fixed it:<BR><BR>1. At the top of the IPOPT source
file IpPardisoSolverInterface.cpp,<BR>add the following preprocessor
definition if it does not already exist:<BR><BR>#ifndef
HAVE_PARDISO_NEWINTERFACE<BR>#define HAVE_PARDISO_NEWINTERFACE
1<BR>#endif<BR><BR><BR>2. In the same source file, remove the F77_FUNC()
macro definition from<BR>ALL references to functions PARDISOINIT() and
PARDISO(). For example,<BR>instead of the original function
prototype:<BR><BR>void F77_FUNC(pardisoinit,PARDISOINIT) (void* PT, const
ipfint* MTYPE,<BR>
const
ipfint*<BR>SOLVER,<BR>
ipfint* IPARM,<BR>
double* DPARM,<BR>
ipfint*
ERROR );<BR><BR><BR>Use the following version instead:<BR><BR>void
PARDISOINIT(void* PT, const ipfint* MTYPE,<BR>
const ipfint*<BR>SOLVER,<BR>
ipfint*
IPARM,<BR>
double* DPARM,<BR>
ipfint* ERROR );<BR><BR>I commented out the original references
and created the modified<BR>versions to be used instead. Do the same for
all function calls as<BR>well, and this should fix your problem after
rebuilding IPOPT.<BR><BR>One final point: If you haven't already done so,
remember to define<BR>HAVE_PARDISO and HAVE_PARDISO_PARALLEL (if applicable)
in the IPOPT<BR>source file IpoptConfig.h<BR>
<DIV>
<DIV></DIV>
<DIV class=h5><BR><BR><BR><BR>-----Original Message-----<BR>From: <A
href="mailto:Olaf.Schenk@unibas.ch">Olaf.Schenk@unibas.ch</A> [mailto:<A
href="mailto:Olaf.Schenk@unibas.ch">Olaf.Schenk@unibas.ch</A>]<BR>Sent:
Thursday, February 18, 2010 2:27 AM<BR>To: York Tang<BR>Cc: <A
href="mailto:ipopt@list.coin-or.org">ipopt@list.coin-or.org</A>; Teeter,
Chuck<BR>Subject: Re: [Ipopt] Can PARDISO 4.0 work with ipopt in
windows?<BR><BR>York,<BR><BR>The PARDISO 4.0.0 DLL is working correctly with
IPOPT. I am copying<BR>Chuck Teeter in this email since he is actually using
IPOPT and PARDISO<BR>on Windows.<BR><BR>Olaf<BR><BR> Tang <<A
href="mailto:hkyork@gmail.com">hkyork@gmail.com</A>>:<BR><BR>> Dear
all,<BR>><BR>> Recently i tried to download PARDISO dll from its
website, after i<BR>> provided its license file , the program
crashed.<BR>> Can PARDISO 4.0 work with ipopt in windows? the ipopt
documentation<BR>> said no , but someone in the mail archive said
yes.<BR>> Which one is correct? if yes, what i need to set, after i have
the dll<BR><BR>> and the license file.<BR>> thank you<BR>><BR>>
York<BR>><BR><BR><BR><BR>----------------------------------------------------------------<BR>This
message was sent using IMP, the Internet Messaging
Program.<BR><BR><BR></DIV></DIV>------------------------------------------------------------------------<BR>This
email and its contents are private and confidential, for the sole use of the
addressees. If you are not an intended recipient, copying, forwarding or other
distribution of this email or its contents by any means is prohibited. If you
believe that you received this email in error please notify the original
sender immediately.<BR><BR>Petro-Canada is a Suncor Energy
business.<BR><BR>------------------------<BR><BR>Ce courriel et son contenu
sont privés et confidentiels, et sont destinés à l’usage exclusif des
destinataires. Si vous n'êtes pas le destinataire prévu, toute reproduction,
transfert ou autre forme de diffusion de ce courriel ou de son contenu par
quelque moyen que ce soit est interdit. Si vous croyez avoir reçu ce courriel
par erreur, veuillez en aviser l'expéditeur original
immédiatement.<BR><BR>Petro-Canada est une entreprise de Suncor
Énergie.<BR><BR></BLOCKQUOTE></DIV><BR><DIV> </DIV>------------------------------------------------------------------------<br>This email and its contents are private and confidential, for the sole use of the addressees. If you are not an intended recipient, copying, forwarding or other distribution of this email or its contents by any means is prohibited. If you believe that you received this email in error please notify the original sender immediately. <br><br>Petro-Canada is a Suncor Energy business.<br><br>------------------------<br><br>Ce courriel et son contenu sont privés et confidentiels, et sont destinés à l’usage exclusif des destinataires. Si vous n'êtes pas le destinataire prévu, toute reproduction, transfert ou autre forme de diffusion de ce courriel ou de son contenu par quelque moyen que ce soit est interdit. Si vous croyez avoir reçu ce courriel par erreur, veuillez en aviser l'expéditeur original immédiatement. <br><br>Petro-Canada est une entreprise de Suncor Énergie.<br></BODY></HTML>