Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SIMULIA/ABAQUS
  Subroutine VUAMP erstellen

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
Autor Thema:  Subroutine VUAMP erstellen (1645 mal gelesen)
onrokchrist
Mitglied



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

Beiträge: 10
Registriert: 23.05.2014

erstellt am: 22. Jul. 2014 12:08    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


Krabbe_Subroutine.txt

 
Liebes Forum,

ich habe zwei Fragen:
1.
ich möchte mittels einer User Subroutine den Wert einer Amplitude ändern (zu 0 setzen), sobald sich ein bestimmter Knoten an einer Stelle um einen gewissen Wert verdreht.

Zunächst habe ich dafür einen Sensor mit dem Namen Knoten1 definiert, der mir die Verdrehung UR1 an einem Knoten ausgibt.

Leider weiß ich nicht, wie das mit den Subroutinen funktioniert. Nach einiger Recherche im Netz und in der Dokumentation bin ich so weit mit der Soubroutine (siehe Anhang).

Meine Idee war den aktuellen Sensorwert unter U1rot abzuspeichern. Sobald der Absolutwert von U1rot größer als 1 wird, soll die Amplitude dann zu 0 gesetzt werden.

Abaqus gibt beim Run des Jobs jedoch einfach nur zwei mal den Fehler: "Problem during compilation - Dateipfad" an.

2.
Eine weitere Frage ist, was ich genau im CAE bei den Amplitudes vom Typ "User" für eine Variablenzahl eingeben muss bzw. was mir diese Zahl später sagt oder wie ich sie in der Subroutine verwende?

Vielen Dank für die Hilfe!

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

VUMAT
Mitglied
Student


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

Beiträge: 16
Registriert: 16.07.2014

erstellt am: 23. Jul. 2014 12:54    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 onrokchrist 10 Unities + Antwort hilfreich

Hey onrokchrist,

zu 1.
Ich denke der Fortranfehler kommt durch Fehler im Code. Wenn du Anweisungen über mehrere Zeilen schreibst, musst du das Fortran mit einem * (oder Zahl, &...) in der 5. Spalte mitteilen:

Code:
      U1rot=vGetSensorValue('Knoten1',
    *        jSensorLookUpTable,
    *        sensorValues)

Weiterhin verstehe ich nicht ganz die Schreibweise mit den zwei Sternen. Entweder du machst einen If-Einzeiler ohne then und End if,

Code:
      If(abs(U1rot).GE.1) ampValueNew=0

oder du nutzt die Langform
Code:
      If(abs(U1rot).GE.1) then
        ampValueNew=0
      END IF

zu 2.
Du kannst in der VUAMP das Array sVars(nSvars) nutzen um beliebige eigene Werte zu speichern. Dafür musst du aber die Arraygröße nSvars vorher im CAE (oder Inputfile) definieren, da Fortran ja zu Beginn alle Arraygrößen dimensionieren muss. Wenn du sVars nicht brauchst, kannst du die Variable ja einfach auf 1 setzen.

Viele Grüße 

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

onrokchrist
Mitglied



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

Beiträge: 10
Registriert: 23.05.2014

erstellt am: 04. Aug. 2014 15:38    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

Hey VUMAT,

vielen dank für die wertvollen Tipps! Ich bin jetzt so weit, dass schonmal keine Fehlermeldung mehr auftritt! Es lag tatsächlich an den Leerzeichen vor den einzelnen Zeilen....

Ich stehe jetzt vor dem nächsten Problem:

Ich benutze eine Amplitude Amp-1, welche ich ja zu 0 setzen möchte. Jetzt habe ich einfach mal nur

ampValueNew=0.0

ohne if Abfrage hingeschrieben, aber leider wird das Ergebnis kein bischen davon beeinflusst. Gibt es dafür noch einen anderen Befehl? Ich dachte, dass ampValueNew eben genau der aktuelle Wert der Amplitude sei?!

Viele Grüße und danke für die Hilfe!

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

onrokchrist
Mitglied



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

Beiträge: 10
Registriert: 23.05.2014

erstellt am: 07. Aug. 2014 12: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

Ok, ich bin wieder einen Schritt weiter gekommen... Ja, man muss einmal darüber nachdenken, was man da eigentlich macht ;-)

Ich muss im Interactionmodul natürlich auch die entsprechende User-Amplitude verwenden!

Das heißt aber im Umkehrschluss, dass ich eine im CAE definierte Amplitude (Tabelle) nicht direkt mit einer VUAMP-Subroutine beeinflussen kann oder? Ich muss die Amplitude dann in der Subroutine definieren?

Danke für die Hilfe!

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

VUMAT
Mitglied
Student


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

Beiträge: 16
Registriert: 16.07.2014

erstellt am: 07. Aug. 2014 12:20    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 onrokchrist 10 Unities + Antwort hilfreich

Hey,

ja so würde ich das auch verstehen. im Manual steht ja auch

Zitat:
[...]allows you to define the current value of an amplitude definition as a function of time;[...]

Also musst du in deiner VUAMP den genauen Zeitverlauf der Amplitude definieren und bei erreichen deines Kriteriums zu 0 setzen.
Im Example Manual gibts genau ein Beispiel mit VUAMP. Dort wird auch nur die Amplitude ohne Tabelle definiert:
Code:

[...]
*AMPLITUDE, NAME=MOTOR_WITH_STOP_SENSOR, DEFINITION=USER, VARIABLES=2
[...]

Und anschließend einer Randbedingung zugewiesen:
Code:

[...]
*BOUNDARY, TYPE=VELOCITY, AMPLITUDE=MOTOR_WITH_STOP_SENSOR
90000,6,6,5.0
[...]

Viele Grüße

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

onrokchrist
Mitglied



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

Beiträge: 10
Registriert: 23.05.2014

erstellt am: 07. Aug. 2014 14:46    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


Job-3_AMP-2.txt


Monitor.png


Subroutine.txt

 
Hi,

danke für Deine Hilfe!

Dieses Beispiel hab ich mir auch schon des öfteren angesehen und versuche so gut es geht analog dazu zu arbeiten.

In meinem Fall wird die Amplitude jedoch im Interactionmodul bei einer sogenannten incident wave mit der Definition pressure verwendet (siehe Bild im Anhang). Bei dieser Interaction wird die Reference magnitude mit der entsprechenden Amplitude multipliziert. Wenn ich meine Amp-1 (in Tabellenform definierte Amplitude in CAE) verwende, funktioniert es. Sobald ich jedoch die Amp-2 verwende, scheint sie keine Auswirkungen zu haben (die Energie ändert sich ab 0,0015s nicht [siehe Monitor auf Bild]).

Anbei noch die aus der Subroutine erstellte Textdatei. In ihr ändert sich der Amplitudenwert wie gewünscht bei 0,0015s zu 100.

Danke für die Hilfe!

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

VUMAT
Mitglied
Student


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

Beiträge: 16
Registriert: 16.07.2014

erstellt am: 07. Aug. 2014 16: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 Nur für onrokchrist 10 Unities + Antwort hilfreich

Hey,
kannst du das Inputfile anhängen?
Gruß

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

onrokchrist
Mitglied



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

Beiträge: 10
Registriert: 23.05.2014

erstellt am: 08. Aug. 2014 17:59    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

Hi,

ja ich bin nächste Woche wieder am entsprechenden PC, sodass ich es dann hochlade!

Danke!

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

onrokchrist
Mitglied



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

Beiträge: 10
Registriert: 23.05.2014

erstellt am: 11. Aug. 2014 11:06    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


Job-3.txt

 
Hi,

anbei die Inputdatei. Unter Linux wird sie formatiert dargestellt, aber unter Windows scheinbar nicht. Ich hoffe es geht trotz dem?

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

onrokchrist
Mitglied



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

Beiträge: 10
Registriert: 23.05.2014

erstellt am: 11. Aug. 2014 22:25    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

Habe es jetzt einmal ausprobiert, die Amplitude auf einen normalen Pressure-Load anzuwenden. Dort funktioniert alles einwandfrei.

Somit kann der der Beitrag geschlossen werden.

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

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