Autor
|
Thema: Subroutine (5256 mal gelesen)
|
Rugedi Mitglied
Beiträge: 4 Registriert: 18.01.2009
|
erstellt am: 18. Jan. 2009 15:14 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich fange gerade an mich in Abaqus einzuarbeiten und nutze dafür die "Abaqus Documentation" Hilfe. Da gibt es im "Abaqus Example Problems Manual" das Übungsbeispiel von der Scheibenbremse. Dieses entspricht meiner späteren Aufgabe am ehesten. Es sind die Input-files und die Subroutinen gegeben, Problem ist, dass ich nicht weiß, wie man die Subroutine einbaut! Ich habe es versucht, im Job-manager beim Einlesen eines Inputfiles über den Pfad der User-routine, da gibt es aber einen Compiler-fehler, oder über die commandozeile, über job-name und user-name, aber da meckert er immer wegen syntax-fehler. Was ist der gewöhnliche weg die Subroutine einzubeziehen? Kann es sein, dass bei der Installation was fehlt? Sind die Input- und user-files in der "Abaqus Example Problems Manual"-Übung vollständig, oder nur masken? Danke im Voraus! Gruß Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten1983 Mitglied Doktorand
Beiträge: 125 Registriert: 11.10.2007
|
erstellt am: 19. Jan. 2009 08:34 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
Um zu überprüfen ob dein Fortran Compiler funktioniert oder nicht, kannst ja mal Abaqus Verfication starten. Dabei wird ein Logfile erzeugt, welches dir sagt ob der Compiler ordnungsgemäß installiert ist oder nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nicksen Mitglied wissenschaftlicher Mitarbeiter
Beiträge: 239 Registriert: 04.05.2007
|
erstellt am: 19. Jan. 2009 10:56 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
@Rugedi: Die *.inp und die Routinen sind eigentlich nicht nur Masken. Vorschlag: Kopiere beide files in ein Verzeichnis und dann gib in der Konsole den richtigen Befehl ein. Beispiel: Uebung01.inp mit Routine Test.f Befehl: abq681.exe job=Uebung01 user=Test Hinweis: abq681.exe ist der ABAQUS Startbefehl, der je nach Version anders aussehen kann. Wichtig ist, dass du die Dateiendungen weglaesst! Das muesste laufen und keine Syntaxfehler bringen. Probier das mal aus. Ich drueck dir die Daumen dass es klappt! mit Grueßen der Nicksen p.s.: Wenn du in der console die Eintraege des log-files direkt lesen moechtest, um sicherzugehen was gerade passiert, dann gib folgendes ein: abq681.exe job=Uebung01 user=Test interactive Viel Erfolg ------------------ ========== == Dingsen == ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gunkerle Mitglied WMA
Beiträge: 133 Registriert: 15.03.2007
|
erstellt am: 19. Jan. 2009 11:24 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
Hallo, ich habe gerade auch Probleme mit der Compilation/Erstellung von User Subroutines. Ich habe eine Verifikationsprozedur laufen lassen und dabei sind mir folgende Dinge aufgefallen (das komplette verify.log file ist ebenfalls zur Verfuegung gestellt):
1.) Installiert ist bei mir Visiual studio 2005 professionell. Der c++ Compiler ist vorhanden ebenso wie die Datei vcvars32.bat. Gibt es eine Möglichkeit Abaqus dauerhaft beizubringen, dass ein c++ Compiler vorhanden ist? Requirement: Microsoft Visual C++ 7.1 (.NET 2003) or 8.0 (.NET 2005) Product: Abaqus make utility with C++ Status: Fail - Unable to locate or determine the version of a C++ compiler on this system. If Microsoft Visual C++ is installed on this system, please load the vcvars32.bat file before running Abaqus. der Fortran Compiler wird gefunden, aber...
Requirement: Intel Fortran Compiler 8.1 or 9.1 Product: Abaqus make utility with Fortran and Abaqus with user subroutines Status: Pass - Found Intel Fortran Compiler 9.1 Build 20060927Z Package ID W_FC_C_9.1.032. ... ich erhalte folgende Meldung bzgl. Abaqus make utilities: Was bedeutet dies ? Bei allen Tests bzgl. Subroutines, parametric studies etc, erhilet ich die OK Meldung "pass". Abaqus/Standard with user subroutines ...PASS Continuing... Abaqus make utility with Fortran
...INFORMATION System requirements were not met. Verification procedure will be skipped. Continuing... Die Dateien vaba_param.inc, respektive aba_param.inc keonen aug meinem Rechner allerdings NICHT gefunden werden. Bin fuer jede Hilfe dankbar, ciao Gunkerle
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gunkerle Mitglied WMA
Beiträge: 133 Registriert: 15.03.2007
|
erstellt am: 19. Jan. 2009 11:55 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
Hallo ich habe probiert ein ein Beispiel zu kompilieren (mittels abq67ef1 job=... inp=... user=... interactive), dabei sind die im Anhang dargestellten Fehlermeldungen vorgekommen. Weiss jemand Rat? ciao Gunkerle
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rugedi Mitglied
Beiträge: 4 Registriert: 18.01.2009
|
erstellt am: 19. Jan. 2009 18:32 <-- editieren / zitieren --> Unities abgeben:
Vielen Dank für eure Hilfe, also ich habe die "Abaqus Verification" durchlaufen lassen, ich hatte gar keinen FORTRAN-Compiler installiert, hab dann die Version 9.0 installiert, aber beim Abschicken des Jobs hat er wieder gemeckert, hier die Fehlermeldung: Problem during linking - Abaqus/Standard User Subroutines. This Error may be due to a mismatch in the Abaqus user subroutine arguments. These arguments sometimes change from release to release, so user subroutines used with a previous version of Abaqus may need to be adjusted. Wahrscheilich sind die Beispiel-Datein von der Scheibenbremse zu alt?! Ich arbeite mit der Version 6.8.2, laut Simulia-Homepage benötigt man für 6.8.- den FORTRAN-Compiler 9.1 od. 10.1, der 9.0 müsste doch aber trotzdem gehn, oder? hab auch mal eine verify.log-datei angehangen, versteh nicht, warum bei FORTRAN immer noch Fail steht, liegt das denn echt an der Version? und als c++-Compiler hab ich glaube NET2003. @Nicksen: ist es egal, ob ich die Befehle in der Kommandokonsole im CAE unten eingebe, oder im Abaqus-Commands(DOS_Fenster)über START_Schaltfläche? Hab leider auch den Abaqus-Startbefehl für V6.8.2 nicht gefunden, bzw. gab es wieder Syntax-fehler. Vllt liegt das aber auch am FORTRAN_Compiler??? Oh mann, sowas kann einem echt den Tag versauhen, wenn man kein Plan hat! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten1983 Mitglied Doktorand
Beiträge: 125 Registriert: 11.10.2007
|
erstellt am: 20. Jan. 2009 07:36 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
Also so wie ich dein Verify log verstehe, benötigst du einen anderen Compiler oder ne ältere Abaqusversion. Bei Requirements steht ja 9.1 oder höher und gefunden wurde version 9.0. Und ja, bei solchen Unterschieden meckert Abaqus, davon können wir hier am Lehrstuhl ein Lied singen.. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten1983 Mitglied Doktorand
Beiträge: 125 Registriert: 11.10.2007
|
erstellt am: 20. Jan. 2009 07:41 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
@Gunkerle: Sind bei dir die Umgebungsvariablen in Windows gesetzt, so dass der Compiler weiß welche Pfade für ihn relevant sind? Soweit ich mich erinnere, musste man die von Hand eintragen. Die Vorgehensweise dazu wurde aber auch schon hier im Forum diskutiert. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gunkerle Mitglied WMA
Beiträge: 133 Registriert: 15.03.2007
|
erstellt am: 20. Jan. 2009 09:53 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
Hallo carsten1988, koenntest du noch einmal auf die entsprechenden Diskussionen verweisen, in denen die Pfade gesetzt werden? Vielleicht ist dies ja das Problem. Alledrings tritt bei mir dieselbe Fehlermeldung wie bei Rugedi auf, naemlich: Problem during linking - Abaqus/Standard User Subroutines. This Error may be due to a mismatch in the Abaqus user subroutine arguments. These arguments sometimes change from release to release, so user subroutines used with a previous version of Abaqus may need to be adjusted. Es wird zusaetzlich der Linking Fehler 4098 ausgegeben.(Default Lib conflicts with use of other Libs) & link error 1169: one or more multiple defined symbols found. Ich hatte testweise eine Beispieldatei (siehe Bild error.bmp bei vorheriger Antwort) benutzt. ciao Gunkerle
ciao Gunkerle
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gunkerle Mitglied WMA
Beiträge: 133 Registriert: 15.03.2007
|
erstellt am: 20. Jan. 2009 10:17 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
Zitat: Original erstellt von Gunkerle: Hallo carsten1988, koenntest du noch einmal auf die entsprechenden Diskussionen verweisen, in denen die Pfade gesetzt werden? Vielleicht ist dies ja das Problem.Alledrings tritt bei mir dieselbe Fehlermeldung wie bei Rugedi auf, naemlich: Problem during linking - Abaqus/Standard User Subroutines. This Error may be due to a mismatch in the Abaqus user subroutine arguments. These arguments sometimes change from release to release, so user subroutines used with a previous version of Abaqus may need to be adjusted. Es wird zusaetzlich der Linking Fehler 4098 ausgegeben.(Default Lib conflicts with use of other Libs) & link error 1169: one or more multiple defined symbols found. Ich hatte testweise eine Beispieldatei (siehe Bild error.bmp bei vorheriger Antwort) benutzt. Der Fortran Compiler wird wohl gefunden, sowohl in der .env Datei fuer Abaqus, als auch in der Windows-path Variablen sind die korrekten Pfade hinterlegt. ciao Gunkerle
ciao Gunkerle
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Gunkerle Mitglied WMA
Beiträge: 133 Registriert: 15.03.2007
|
erstellt am: 20. Jan. 2009 10:34 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
Hallo, ich hab egerade folgendes festgestellt: In der beispieldatei wird folgede datei versucht einzubinden. INCLUDE 'ABA_PARAM.INC' Im Site-Ordner von Abaqus habe ich nun die folgenden Dateien entdeckt: ABA_PARAM_dp.INC ABA_PARAM_sp.INC aba_globalvar_dp.inc aba_globalvar_sp.inc VABA_PARAM_dp.INC VABA_PARAM_sp.INC Ist es moeglich, dass die beispieldatei einfach veraltete Angaben bzgl. der INCLUDE-Dateien enthält? Falls ja, welche Dateien benoetige ich (nur die Datei ABA_PARAM_dp.INC oder alle anderen auch)? ciao Gunkerle
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten1983 Mitglied Doktorand
Beiträge: 125 Registriert: 11.10.2007
|
erstellt am: 20. Jan. 2009 10:45 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
Also den Fehler mit dem mismatch in Arguments hatte ich heute morgen auch schonmal, bei mir lags vermutich an einer vergessenen Variablen beim Subroutinenaufruf. Da hatte ich einer der Subroutinen vergessen ein Argument mitzugegeben, welches dann gefehlt hatte. Wenn dein Compiler in den Windows Pfadangaben drin steht und in der .env Datei von Abaqus, ist das schonmal gut. Aber was das angeht kann ich dir nicht wirklich weiterhelfen, da ich mich damals da auch nur durch gewurschtelt habe. zu den Include Dateien: Ich habe bei einem älteren Projekt(Version 6.5 oder so) nur die Abaparam.inc eingefügt, hab ich aber auch nur getan, weil das in dem Hilfe Beispiel so drin stand. Jedenfalls hatte das so funktioniert wie es sollte. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
milasan Mitglied
Beiträge: 165 Registriert: 24.04.2007
|
erstellt am: 20. Jan. 2009 12:11 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
Hallo Rugedi, in Deinem verify.txt steht, daß sowohl der C++ Compiler nicht gefunden wird, als auch daß der Fortran Compiler zu alt ist: Requirement: Microsoft Visual C++ 8.0 (.NET 2005) Product: Abaqus make utility with C++ Status: Fail - Unable to locate or determine the version of a C++ compiler on this system. If Microsoft Visual C++ 8.0 (.NET 2005) is installed on this system, please load the vcvars32.bat file before running Abaqus. Requirement: Intel Fortran Compiler 9.1 or 10.1 Product: Abaqus make utility with Fortran and Abaqus with user subroutines Status: Fail - Found Intel Fortran Compiler 9.0 Build 20050430Z Package ID W_FC_P_9.0.017. Damit funktioniert es nicht, egal wie sehr Du versuchst Abaqus auf andere Pfade zu schicken. Grund dafür ist, daß Teile von Abaqus selbst in Fortran geschrieben und mit eben diesem Compiler übersetzt sind. Du mußt mindestens diese Version verwenden, weil sonst die Aufrufe zu den Abaqus-Bibiliotheken nicht richtig funktionieren. Vielleicht kannst Du den neueren Fortran Compiler installieren und den C++ Compiler brauchst Du auch. Gruß, M. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nicksen Mitglied wissenschaftlicher Mitarbeiter
Beiträge: 239 Registriert: 04.05.2007
|
erstellt am: 21. Jan. 2009 10:59 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
Hallo Leute, ich habe gerade nur ganz kurz Zeit, moechte aber als erstes bemerken, dass meine Subroutinen seit der Version 6.6-1 bis heute zur Version 6.8-1 einwandfrei laufen und die INCLUDE Dateien genauso heißen, wie "damals". Hinsichtlich compiler usw. muss ich nochmal nachschauen und sage spaeter dazu noch was. Und dann natuerlich auch eine Antwort an Rugedi!!! Bis demnaechst. der Nicksen ------------------ ========== == Dingsen == ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Nicksen Mitglied wissenschaftlicher Mitarbeiter
Beiträge: 239 Registriert: 04.05.2007
|
erstellt am: 21. Jan. 2009 14:34 <-- editieren / zitieren --> Unities abgeben: Nur für Rugedi
So ich nochmal: Zitat Rugedi von weiter oben: @Nicksen: ist es egal, ob ich die Befehle in der Kommandokonsole im CAE unten eingebe, oder im Abaqus-Commands(DOS_Fenster)über START_Schaltfläche? Hab leider auch den Abaqus-Startbefehl für V6.8.2 nicht gefunden, bzw. gab es wieder Syntax-fehler. Vllt liegt das aber auch am FORTRAN_Compiler??? Nun ja... Die Subroutinen sind vom Viewer CAE unabhaengig und sind in FORTRAN geschrieben. Das CLI (command line interface) im CAE-Viewer ist python orientiert. Hier kannst du keine Sobroutinen starten. Was ich meinte war die Konsolenumgebung (ueber Start-Schaltflaeche). Dort gehst du in dein Arbeitsverzeichnis, wo auch die entsprechende *.inp und das Subroutinenfile liegen, und dann startest du Abaqus mit Angabe von Job und Routine. Bei uns wuerde das fuer die Datei "Testjob.inp" mit der Routine "meineSubs.f" so aussehen: abq681.exe job=Testjob user=meineSubs Versuch bei den Zahlen mal eure Version aus. Es ist moeglich dass dies schon funktioniert. Der/die/das CAE brauch dafuer nicht offen zu sein. Wenn das klappt und du das entstehende *.log file gerne gleich sehen moechtest (so kann man nachvollziehen, was ABAQUS gerade macht), dann ergaenze die Zeile um ein "interactive". Dann wird zwar kein *.log mehr erstellt, aber direkt in die Konsole geschrieben. abq681.exe job=Testjob user=meineSubs interactive Probier beides mal aus. Dann siehst du, was ich meine. Hab mich sicherlich etwas schwerfaellig ausgedrueckt. viel Erfolg mit Grueßen der Nicksen ------------------ ========== == Dingsen == ========== Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rugedi Mitglied
Beiträge: 4 Registriert: 18.01.2009
|
erstellt am: 22. Jan. 2009 14:00 <-- editieren / zitieren --> Unities abgeben:
Also Danke nochmals für eure Hilfe, das Thema mit den Subroutinen hat sich für mich erst einmal erledigt, da ich die erforderlichen Compiler nicht auf dem Rechner habe, und diese auch nicht bekommen werde. Ich werde mich jetzt ohne Hilfsprogramme meiner Aufgabe widmen und wenn ich Fragen habe, weis ich ja an wen ich mich wenden kann ! Viele Grüße Bis demnächst! Rugedi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |