Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  ANSYS
  User Programmable Features - eigene Fortran-Routine - ANSCUST.BAT

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Ansys
Autor Thema:  User Programmable Features - eigene Fortran-Routine - ANSCUST.BAT (4132 mal gelesen)
triangulum
Mitglied


Sehen Sie sich das Profil von triangulum an!   Senden Sie eine Private Message an triangulum  Schreiben Sie einen Gästebucheintrag für triangulum

Beiträge: 6
Registriert: 13.03.2009

ANSYS 11.0, Intel Fortran Compiler 9.1, MS Visual Studio 2005, Windows XP

erstellt am: 13. Mrz. 2009 18:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Salü,

habe die Aufgabe, eine Fortran-Kriechroutine aus ABAQUS nach ANSYS zu portieren und zu testen.
Bin neu in ANSYS.

Für "User Programmable Features", also Einschluss eigener Fortranroutinen, schreibt die Anleitung, man solle mittels ANSCUST.BAT und seiner eigenen Fortranroutine eine "custom ANSYS.exe" erstellen.

Die Batch veranlasst u.a. Compilieren und Linken der Fortran-Routine. Kompilieren geht klar, beim Linken jedoch: entweder Fehlerabbruch oder Meldung "ANSYS.exe is up-to-date", und Erzeugung einer leeren .exe-Datei!

Fehlermeldung:

Code:
ansysex.def : warning LNK4022: cannot find unique match for symbol 'USERCREEP'
ansysex.def : warning LNK4002: _USERCREEP defined in usercreep.obj
ansysex.def : warning LNK4002: _USERCREEP@88 defined in usercreep.obj
ansysex.def : error LNK2001: unresolved external symbol USERCREEP
ANSYS.lib : fatal error LNK1120: 1 unresolved externals
NMAKE : fatal error U1077: '"d:\apps\Microsoft Visual Studio 8\VC\bin\link.EXE"'
: return code '0x460'
Stop.

Noch etwas: Intel Fortran Compiler 9.1 will nur Dateien mit Endung .f90 kompilieren, gleichen Inhalt mit Endung .f nicht.

Inhalt ANSCUST.BAT:

Code:
echo off
if "%ansys110_dir%"=="" goto NoAnsDir

set revnum=11.0

echo.
echo      ******************************************************************
echo.
echo          This is the ANSYS Revision %revnum% ANSCUST batch file.  It is
echo          used to link User Programmable Features into versions of
echo          the ANSYS program on Intel Microsoft Windows systems.
echo.
echo          NOTE:  The user subroutine source files are expected to
echo                  reside in your local directory and be of the form
echo                  *.F and/or *.c
echo.
echo      ******************************************************************
echo.
pause

rompt
"%ansys110_dir%\custom\user\intel\ask" "Do you want to link with small export list"
if errorlevel=1 goto SMALLEX
if errorlevel=0 goto LARGEEX
echo.
echo "Please answer Y or N!"
echo.
goto prompt

:SMALLEX
if exist ansysex.def del ansysex.def
copy ansyssmall.def ansysex.def
echo "Meldung1"
goto LinkNow

:LARGEEX
if exist ansysex.def del ansysex.def
copy ansyslarge.def ansysex.def

:LinkNow
echo on
rem for %%p in ( *.F ) do ifort -D__IFL -DNOSTDCALL -DARGTRAIL -Od /Zp4 -DPCWINNT_SYS -DCADOE_ANSYS -Qfpp -Qopenmp -4Yportlib  -4Ya  /c /Fo.\  /DFORTRAN  /MD /W0 %%p >> f_comp.log
for %%p in ( *.F90 ) do ifort -D__IFL -DNOSTDCALL -DARGTRAIL -Od /Zp4 -DPCWINNT_SYS -DCADOE_ANSYS -Qfpp -Qopenmp -4Yportlib  -4Ya  /Gm /c /Fo.\  /DFORTRAN  /MD /W0 %%p >> f_comp.log
rem for %%p in ( *.c ) do cl -DNOSTDCALL -DARGTRAIL -Od -GR -GX  /Zp4 /DPCWINNT_SYS  /DCADOE_ANSYS /DCURVEFIT_EXPORTS  /c /W3  /D_X86=1  /DOS_WIN32 /DWIN32 /D__STDC__ /MD %%p >> c_comp.log 
nmake
goto end

:NoAnsDir
echo.
echo      **************************************************************************
echo.
echo          ERROR:
echo            The environment variable ANSYS110_DIR must be set to the
echo            root ANSYS directory.
echo.
echo          EXAMPLE:
echo            set ANSYS110_DIR=C:\Program Files\Ansys Inc\v110\ANSYS
echo.
echo      ****************************************************************************
echo.
:end
pause



Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

MGebhardt
Mitglied
Dipl.-Ing. Masch., WiMi


Sehen Sie sich das Profil von MGebhardt an!   Senden Sie eine Private Message an MGebhardt  Schreiben Sie einen Gästebucheintrag für MGebhardt

Beiträge: 95
Registriert: 15.09.2008

2 * Intel Core 2 Duo 2,66 GHz,
2* 4 GB RAM,
OpenSUSE 11.0
Ansys 11.0 Academic Research

erstellt am: 16. Mrz. 2009 15:02    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für triangulum 10 Unities + Antwort hilfreich

Hallo,

leider kann ich Dir bei Deinem Problem nicht helfen, aber ich würd Dich bitten die Lösung ins Forum zu stellen, wenn Du fertig bist, da es
1. für mich auch bald interessant wird
2. sehr wenig zu dem Thema zu finden ist

Danke und Gruß
Moritz

------------------
Moritz Oliver Gebhardt

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

triangulum
Mitglied


Sehen Sie sich das Profil von triangulum an!   Senden Sie eine Private Message an triangulum  Schreiben Sie einen Gästebucheintrag für triangulum

Beiträge: 6
Registriert: 13.03.2009

ANSYS 11.0, Intel Fortran Compiler 9.1, MS Visual Studio 2005, Windows XP

erstellt am: 17. Mrz. 2009 15:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Sodala.

Lösung ham'mer noch nicht, aber der Support von cadfem hat reagiert!

Zunächst erklärten sie telefonisch, die bisherige ANSCUST.BAT sei schlickt fehlerhaft (also schon werksseitig so). Sie schickten mir eine neue ANSCUST.BAT, mit der Bitte, die Verzeichnisse anzupassen. Einige Verzeichnisse waren aber bei mir garnicht vorhanden, andere waren in der neuen .BAT nicht, mussten aber wg. .lib-Dateien hinzugefügt werden. Tat ich, so weit, so gut. Irgendwann beklagte sich der Linker dann nicht mehr über fehlende .lib's.

Damit habe ich zum ersten Mal geschafft, eine .exe zu erstellen aaaaaber !!! kann sie noch nicht starten, irgend etwas mit der Lizenz wird gemeckert. Das hasse ich am meisten, wenn die Heidenangst der SW-Schmieden vor Raubkopien vor allem darin ausartet, dass zahlenden Anwendern die Verwendung der Software deutlich erschwert oder verhindert wird, oder einen deutlicher Arbeitsmehraufwand wg. LizenzKram mit sich bringt!

Die jetzige ANSCUST.BAT:
(geremte set-Zeilen sind für diejenigen Verzeichnisse, deren Entsprechende ich bei mir nicht wiederfand, die aber in der vom Support geschickten .BAT enthalten waren. Und: es ist lt. Support SMALLEX zu nehmen, nicht LARGEEX! Warum man dann nicht gleich LARGEEX aus der .BAT rauslassen kann, frage ich mich ....


Code:
@echo off

set PATH=
set PATH=C:\Programme\Intel\IDB\9.1\IA32\Script;%PATH%
set PATH=C:\Programme\Intel\Compiler\Fortran\9.1\em64t\bin;%PATH%
set C:\Programme\Intel\IDB\9.1\IA32\Bin;%PATH%
set PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;%PATH%
rem HIER IST UNKLAR, WELCHE SDK aus dem Microsoft Visualstudio zu nehmen ist
rem set PATH=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin\winnt;%PATH%
set PATH=D:\apps\Microsoft Visual Studio 8\VC\PlatformSDK\Bin;%PATH%
rem set PATH=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Bin\win64\x86\AMD64;%PATH%

set INCLUDE
set INCLUDE=D:\apps\Microsoft Visual Studio 8\VC\PlatformSDK\Include;%INCLUDE%
rem set INCLUDE=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\mfc;%INCLUDE%
rem set INCLUDE=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\crt\sys;%INCLUDE%
rem set INCLUDE=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include\crt;%INCLUDE%
rem set INCLUDE=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Include;%INCLUDE%
set INCLUDE=C:\Programme\Intel\Compiler\Fortran\9.1\em64t\Include;%INCLUDE%

set LIB=
set LIB=C:\Programme\Intel\Compiler\Fortran\9.1\em64t\Lib;%LIB%
set LIB=D:\apps\Microsoft Visual Studio 8\VC\PlatformSDK\Lib\AMD64;%LIB%
set LIB=D:\apps\Microsoft Visual Studio 8\VC\PlatformSDK\Lib;%LIB%
rem set LIB=C:\Program Files\Microsoft Platform SDK for Windows Server 2003 R2\Lib\AMD64\atlmfc;%LIB%
set LIB=%ansys110_dir%\custom\lib\intel;%LIB%
set LIB=D:\apps\Microsoft Visual Studio 8\VC\lib;%LIB%

if "%ansys110_dir%"=="" goto NoAnsDir

set revnum=11.0

set LIB=%ansys110_dir%\custom\lib\winx64;%LIB%
set INCLUDE=%ansys110_dir%\custom\include;%INCLUDE%

echo.
echo      ******************************************************************
echo.
echo          This is the ANSYS Revision %revnum% ANSCUST batch file.  It is
echo          used to link User Programmable Features into versions of the
echo          ANSYS program on Microsoft Windows XP x64 systems.
echo.
echo          NOTE:  The user subroutine source files are expected to
echo                  reside in your local directory and be of the form
echo                  *.F and/or *.c
echo.
echo      ******************************************************************
echo.
pause

rompt

rem "%ansys110_dir%\custom\user\winx64\ask" "Do you want to link with small export list"
rem if errorlevel=1 goto SMALLEX
rem if errorlevel=0 goto LARGEEX
rem echo.
rem echo "Please answer Y or N!"
rem echo.
rem goto prompt

:SMALLEX
copy /Y ansyssmall.def ansysex.def
goto LinkNow

:LARGEEX
rem copy /Y ansyslarge.def ansysex.def

:LinkNow
echo on
del /Q *.err
for %%p in ( *.F ) do ifort -D__EFL -DNOSTDCALL -DARGTRAIL -O3 -DPCWIN64_SYS -DPCWINX64_SYS -DPCWINNT_SYS -DCADOE_ANSYS -Qfpp -nbs -4Yportlib -4Ya /c /Fo.\ /DFORTRAN /MD /W0 %%p >> f_comp.err  2>&1
rem for %%p in ( *.c ) do cl -DNOSTDCALL -DARGTRAIL -Ox -GR -EHsc /DPCWINNT_SYS /DPCWIN64_SYS /DPCWINX64_SYS /DCADOE_ANSYS /DCURVEFIT_EXPORTS /Zi  /c /W3 /D_X86=1 /DOS_WIN32 /DWIN32 /D__STDC__ /MD %%p >> c_comp.err

del /Q ansys.exe
nmake
goto end

:NoAnsDir
echo.
echo      **************************************************************************
echo.
echo          ERROR:
echo            The environment variable ANSYS110_DIR must be set to the
echo            root ANSYS directory.
echo.
echo          EXAMPLE:
echo            set ANSYS110_DIR=C:\Program Files\Ansys Inc\v110\ANSYS
echo.
echo      ****************************************************************************
echo.

:end
pause


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

triangulum
Mitglied


Sehen Sie sich das Profil von triangulum an!   Senden Sie eine Private Message an triangulum  Schreiben Sie einen Gästebucheintrag für triangulum

Beiträge: 6
Registriert: 13.03.2009

ANSYS 11.0, Intel Fortran Compiler 9.1, MS Visual Studio 2005, Windows XP

erstellt am: 07. Apr. 2009 17:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Sodala,

ich kann jetzt die Custom-EXE starten.

Man muss es aus dem ANSYS Product Launcher machen, warum auch immer. (Naivlinge würden ja meinen, es entsteht deswegen eine .exe, damit man einfach draufklicken kann ...).

Ich muss jetzt die einkompilierte Nutzer-Kriechroutine "aktivieren".

Wie macht man das?

Der Befehl USRCAL aktiviert einiges, aber keine USERCREEP.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Phil001
Mitglied



Sehen Sie sich das Profil von Phil001 an!   Senden Sie eine Private Message an Phil001  Schreiben Sie einen Gästebucheintrag für Phil001

Beiträge: 23
Registriert: 05.04.2009

erstellt am: 26. Apr. 2009 13:07    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für triangulum 10 Unities + Antwort hilfreich

*PUSH*

Wie kann man eine einkompilierte Datei in ANSYS aktivieren? In meinem Fall ein User-defined Element.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nbuhl
Mitglied
Dipl.-Ing.


Sehen Sie sich das Profil von nbuhl an!   Senden Sie eine Private Message an nbuhl  Schreiben Sie einen Gästebucheintrag für nbuhl

Beiträge: 52
Registriert: 25.06.2007

Win XP Prof.
2,8 GHz DualCore
3GB RAM
WF2 - Studiversion
CATIA V5 - Studiversion
Ansys Classic V11SP1 - Studiversion

erstellt am: 19. Mai. 2009 10:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für triangulum 10 Unities + Antwort hilfreich

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz