Hot News:

Mit Unterstützung durch:

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

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 (699 mal gelesen)
raffi1991
Mitglied
Student

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

Beiträge: 4
Registriert: 12.05.2016

erstellt am: 20. Mai. 2016 17:27    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 zusammen !

Ich habe mir die Subroutine USFLD geschrieben um die ElasticStrain Komponenten in SDVs zu bekommen. Das klappt auch soweit ganz gut. Doch jetzt stehe ich vor dem Problem, dass ich wenn die SDVs eine bestimmte Dehnung erreichen/überschreiten, die betroffenen Elemente "gelöscht" werden sollen. In Foren hab ich gelesen, dass es möglich sei bei den betroffenen Elementen die Steifigkeit auf 0 zu setzten und diese somit aus dem Modell zu entfernen.?

Hat jemand Erfahrung mit einer solchen modifizierung von der subroutine? ich habe leider keine Erfahrung mit Programmieren... Ich könnte mir aber Vorstellen, dass dies mittels einer IF Schleife in der Subroutine zu bewerkstelligen ist!?!

Vielen Dank für die Hilfe 

Hier meine Subroutine:

      SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,
    1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,
    2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,
    3 LACCFLA)
C
      INCLUDE 'ABA_PARAM.INC'
C
      CHARACTER*80 CMNAME,ORNAME
      CHARACTER*3  FLGRAY(15)
      DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),
    1 T(3,3),TIME(2)
      DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),
    1 COORD(*)
C
C Absolute value of current strain:
      CALL GETVRM('E',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
    $    MATLAYO,LACCFLA)
      EP1 = abs ( ARRAY(1) )
      EP2 = abs ( ARRAY(2) )
      EP3 = abs ( ARRAY(3) )
C
C Maximum value of strain up to this point in time:
C
      CALL GETVRM('SDV',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
    $    MATLAYO,LACCFLA)
      EP1MAX = ARRAY(1)
      EP2MAX = ARRAY(2)
      EP3MAX = ARRAY(3)
C
C Use the maximum strain as a field variable
C
      FIELD(1) = MAX ( EP1, EPMAX1 )
      FIELD(2) = MAX ( EP2, EPMAX2 )
      FIELD(3) = MAX ( EP3, EPMAX3 )
C Store the maximum strain as a solution dependent state
C variable
C
      STATEV(1) = FIELD(1)
      STATEV(2) = FIELD(2)
      STATEV(3) = FIELD(3)
C
C If error, write comment to .DAT file:
      IF(JRCD.NE.0)THEN
      WRITE(6,*) 'REQUEST ERROR IN USDFLD FOR ELEMENT NUMBER ',
    1    NOEL,'INTEGRATION POINT NUMBER ',NPT
      ENDIF
C
      RETURN
      END

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

Mustaine
Ehrenmitglied V.I.P. h.c.



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

Beiträge: 3554
Registriert: 04.08.2005

Abaqus

erstellt am: 22. Mai. 2016 10:49    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 raffi1991 10 Unities + Antwort hilfreich

Du solltest erstmal ohne Unterroutine prüfen, ob dein Plan überhaupt funktionieren könnte. Ich sehe da nämlich noch drei Fragezeichen.

1. Prüfe erstmal, ob das Ändern der Steifigkeit auf null überhaupt das Löschen der Elemente auslöst. Soweit ich weiß wird die Funktion "Element Deletion" nur in Verbindungs mit einem Schädigungsmechanismus nutzbar.

2. Wenn du von einem Iteration zur nächsten die Steifigkeit einzelner Elemente stark änderst, veränderst du den Gleichgewichtszustand sehr drastisch. Das dürfte einen impliziten Gleichungslöser in große Schwierigkeiten bringen überhaupt zu konvergieren.

3. Mit null Steifigkeit und ohne Element Deletion fliegen dir die Elemente um die Ohren und die Rechnung bricht sofort ab wegen "Distorted Elements".


Du kannst ja erstmal einen einfachen Block in einer Testrechnung verwenden und dabei mit *Field die Feldvariablen ändern. Dann siehst du was passiert.

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