Mehrere Teilkörper, Kontakt und Kraftrandbedingung

More
8 years 8 months ago - 8 years 8 months ago #6949 by MGolbs
Hallo Tobi,

in dem von mir genutzten Modell arbeitet ich wirklich derzeit mit Verschiebungsbedingungen. Der Tipp von Richard wird wohl in die richtige Richtung gehen.

Was das Anhängen von Dateien angeht klicke ich auf Add File und wähle die Datei aus. Nachdem sich das Ordner-Fenster wieder geschlossen hat, ist das Attachment-Feld immer noch leer!? Merkwürdig!


Erscheint dann in deinem geschriebenen Text irgend wo ein "[attachment:1]...........[/attachment]?


Gruß Markus

Dem Überflüssigen nachlaufen, heißt das Wesentliche verpassen.
Jules Saliège
Last edit: 8 years 8 months ago by MGolbs.

Please Log in or Create an account to join the conversation.

  • Tobias Vonstein
  • Tobias Vonstein's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 8 months ago - 8 years 8 months ago #6950 by Tobias Vonstein
Replied by Tobias Vonstein on topic Re: Mehrere Teilkörper, Kontakt und Kraftrandbedingung
Hallo Zusammen,

Dateien hochladen läuft einfach nicht, auch nicht mit einer 8KB TXT-Datei! Weiß nicht woran es liegt, ich habe das Problem bei andern Foren nicht! Vielleicht eine Browser-Einstellung? Ich arbeite mit Firefox. Jedoch habe ich eine Alternativlösung gefunden, ich habe einen ZIP-Ordner unter folgendem Link hochgeladen. Hoffe mal da kommt ihr dran. In dem Ordner müssten alle relevanten Dateien sein, drei Netze, COMM-File und auch die RESU und MESS.

www.fh-meschede.de/public/vonstein/flansch.zip

@Markus:
Mein Problem tritt erst dann auf, wenn ich mit Kraftrandbedingungen arbeite. Bei Verschiebungsrandbedingungen läuft alles bestens.
Nein, [attachment:1]...........[/attachment] erscheint nicht in meinem geschriebenen Text. Ich habe mal versucht es manuell rein zu schreiben, aber das bringt nix.

@Richard:
Danke auch für deine Antwort!!!
Genau. Mein Modell ist so aufgebaut, dass der Kontakt für eine korrekte Lagerung benötigt wird. Fällt der Kontakt weg, ist ein Körper in z-Richtung beweglich und wird auch in diese Richtung belastet. Bei meinem Modell sind die Kontaktflächen nicht deckungsgleich, eine Fläche ist größer. Ich weiß nicht ob das ein Problem darstellt, bzw. noch andere Definitionen erfordert. Vor diesem Modell habe ich ein Modell mit deckungsgleichen Kontaktflächen gebaut. Es handelte sich einfach um zwei gleiche Klötze die aufeinander gedrückt werden. Dieses Modell funktionierte auch mit einer Kraftrandbedingung super.
Ich habe das Gefühl, bevor sich der Kontakt initialisiert wird die Kraft schon aufgegeben. Dadurch entsteht die Beweglichkeit. Deswegen habe ich ja schon den vorgeschalteten Analyseschritt mit einer Verschiebungsrandbedingung eingebaut. Das mache ich immer bei ABAQUS wenn der Kontakt nicht konvergiert (Siehe einleitender Beitrag). Aber bei CA scheint es nicht zu helfen.

Viele Grüße

Tobi

Salome Meca 2013.1, Code Aster 11.3, Ubuntu 12.04
Last edit: 8 years 8 months ago by Tobias Vonstein. Reason: Ergänzung

Please Log in or Create an account to join the conversation.

More
8 years 8 months ago - 8 years 8 months ago #6951 by RichardS
Hallo Tobi,
mit ein paar Änderungen läuft deine Simulation ohne Probleme.

1. Änderung der Kontaktflächen
- Vertauschen von MAIT und ESCL (die größere Fläche sollte MAIT sein)
- die Gruppe DkontA beinhaltet überflüssige Elemente, die gemeinsame Knoten mit DkontB haben, was zu Problemen führt.
2. Änderung der Randbedingungen
- DZ=0.0 auf Fläche Dinnend ist überflüssig
- keine Verschiebungsrandbedingungen in Vorrechnung
3. Änderung der Kontaktdefinition
- GLISSIERE='OUI', bei dieser Einstellung wird das ablösen der Kontaktflächen verhindert,
was bei diesem Beispiel in Ordung ist
- Newton + Standardeinstellungen für den Kontaktalgorithmus

Gruß,
Richard

Leider funktioniert der upload bei mir auch nicht. Hier das geänderte Comm-File:
# Erster Flansch mit CodeAster
# fuer Code Aster STA 10.5
# Ingenieurbuero fuer multiphysikalische Berechnungen
# Tobias Vonstein B.Eng. - Mai 2013

DEBUT();

# Definition des Materialgesetzes
#      Einheitensystem Meter Elastizitaetsmodul E=2.1e11 (N/m²)
#                            Querkontraktionszahl NU=0.3 
MA = DEFI_MATERIAU(ELAS=_F(E=2.1e11,
                           NU=0.3,),);

# Importieren der Einzelkoerper (Netze) als *.med
#      Die Netze wurden vorher in Salome Meca erstellt
#      Die Zuordnung der Datei erfolgt über die in ASTK eingetragene LU-Nummer
#      sie entspricht der Variable UNITE
flanschA = LIRE_MAILLAGE(UNITE=20,
                         FORMAT='MED',);
flanschB = LIRE_MAILLAGE(UNITE=21,
                         FORMAT='MED',);
dichtung = LIRE_MAILLAGE(UNITE=22,
                         FORMAT='MED',);

# Zusammenbau der Einzelkoerper
#      Die Voraussetzung ist, dass die Einzelkoerper richtig im globalen
#      Koordinatensystem angeordnet sind.
#      Die Bedeutung des KEYWORDS SUPERPOSE muss noch geklaert werden.
#      Bei mehr als zwei Bauteilen wird der Befehl in anderen Beispielen
#      mehrfach ausgefuert!?
tmp = ASSE_MAILLAGE(MAILLAGE_1=flanschA,
                    MAILLAGE_2=dichtung,
                    OPERATION='SUPERPOSE',);
BGruppe = ASSE_MAILLAGE(MAILLAGE_1=tmp,
                        MAILLAGE_2=flanschB,
                        OPERATION='SUPERPOSE',);

# Auswahl der physikalischen Problemstellung / Erstellen eines Modells
#      Entspricht ungefaer der Step-Definition in ABAQUS
#      Die Freiheitsgrade und der Modellierungsraum werden festgelegt
#      In diesem Beispiel mechanisch und dreidimensional
#      Evtl. ist dieser Zwischenschritt unnoetig
mod=AFFE_MODELE(MAILLAGE=BGruppe,
                AFFE=_F(TOUT='OUI',
                        PHENOMENE='MECANIQUE',
                        MODELISATION='3D',),);

# Ausrichten der Normalenvektoren der einzelnen Flaechen
#      Betrifft die Flaechengruppen fuer Randbedingungen und Kontakt
BGruppe=MODI_MAILLAGE(reuse =BGruppe,
                    MAILLAGE=BGruppe,
                    ORIE_PEAU_3D=_F
                    (GROUP_MA=('schrA','symm0A','kontA','innendA','symmFA','kontB','innendB','symmFB',
                               'symm0B','schrB','DkontA','DkontB','Dsymm0','DsymmF','Dinnend','LagerZ',),),);

# Zuweisen des Materialgesetzes zum Netz
MATE=AFFE_MATERIAU(MAILLAGE=BGruppe,
                   AFFE=_F(TOUT='OUI',
                           MATER=MA,),);


# Festlegen der Randbedingungen 

#   Definition einer linearen Interpolationsfunktion für das kontinuierliche
#   Hochfahren der Last
LoadRamp=DEFI_FONCTION(NOM_PARA='INST', VALE=(0,0,2,2,),
                       PROL_DROITE='LINEAIRE',
                       PROL_GAUCHE='LINEAIRE',);

#   Festlegen der konstanten Randbedingungen am Boden des unteren Blockes
#   DDD_IMPO entspricht Verschiebungsrandbedingung
CHAR=AFFE_CHAR_MECA(MODELE=mod,
                    DDL_IMPO=(_F(GROUP_MA='symm0A',
                                 DX=0.0,),
                              _F(GROUP_MA='symm0B',
                                 DX=0.0,),
                              _F(GROUP_MA='Dsymm0',
                                 DX=0.0,),
                              _F(GROUP_MA='innendA',
                                 DY=0.0,),
                              _F(GROUP_MA='innendB',
                                 DY=0.0,),
                              _F(GROUP_MA='Dinnend',
                                 DY=0.0,
                                 DZ=0.0,),
                              _F(GROUP_MA='schrB',
                                 DZ=0.0,),
                              _F(GROUP_MA='schrA',
                                 DZ=-3e-5,),
),);

#   Festlegen der von der Interpolationsfunktion abhaengigen Randbedingungen
#   am Deckel des oberen Blocks, PRES_REP ist Druckrandbedingung
CHAR2=AFFE_CHAR_MECA(MODELE=mod,
                     DDL_IMPO=(_F(GROUP_MA='symm0A',
                                  DX=0.0,),
                               _F(GROUP_MA='symm0B',
                                  DX=0.0,),
                               _F(GROUP_MA='Dsymm0',
                                  DX=0.0,),
                               _F(GROUP_MA='innendA',
                                  DY=0.0,),
                               _F(GROUP_MA='innendB',
                                  DY=0.0,),
                               _F(GROUP_MA='Dinnend',
                                  DY=0.0,
                                  #DZ=0.0,
                                  ),
                               _F(GROUP_MA='schrB',
                                  DZ=0.0,),),
                      PRES_REP=_F(GROUP_MA='schrA',
                                  PRES=1e5,),
);

#   Kontaktdefinition
contact=DEFI_CONTACT(MODELE=mod,
                          FORMULATION='CONTINUE',
                          #ALGO_RESO_CONT='POINT_FIXE',
                          #ALGO_RESO_GEOM='POINT_FIXE',
                          ALGO_RESO_CONT='NEWTON',
                          ALGO_RESO_GEOM='NEWTON',
                          #ITER_GEOM_MAXI=4,
                          #ITER_CONT_MAXI=30,
                          LISSAGE='NON',
                          INFO=2,
                          ZONE=(_F(GROUP_MA_ESCL='DkontA2',
       		                   GROUP_MA_MAIT='kontA',
                                   #ALGO_CONT='PENALISATION',
                                   #COEF_PENA_CONT=100.,
                                   GLISSIERE='OUI',
                                   CONTACT_INIT='INTERPENETRE',
                                   INTEGRATION='AUTO',
),
                                _F(GROUP_MA_ESCL='DkontB',
       		                   GROUP_MA_MAIT='kontB',
                                   #ALGO_CONT='PENALISATION',
                                   #COEF_PENA_CONT=100.,
                                   GLISSIERE='OUI',
                                   CONTACT_INIT='INTERPENETRE',
                                   INTEGRATION='AUTO',
),
),);



# Festlegen der Simulationsdauer (JUSQU_A) regulaeren Zeitschritte (PAS)
ListReel=DEFI_LIST_REEL(DEBUT=0,
                        INTERVALLE=_F(JUSQU_A=2,
                                      NOMBRE=20,),);

# Modifikationsschema der Zeitschritte fuer den Fall, dass die Rechnung nicht konvergiert
#ListInst=DEFI_LIST_INST(DEFI_LIST=_F(METHODE='MANUEL',
#                                     LIST_INST=ListReel,),
#                        ECHEC=_F(EVENEMENT='ERREUR',
#                                 SUBD_PAS=5,
#                                 SUBD_NIVEAU=4,
#                                 SUBD_METHODE='UNIFORME',),);


# Definition der Parameter fuer den nichtlinearen Solver
#RESU=STAT_NON_LINE(MODELE=mod,
#                   CHAM_MATER=MATE,
#                   EXCIT=_F(CHARGE=CHAR, FONC_MULT=LoadRamp),
#                   CONTACT=contact,
#                   COMP_INCR=_F(RELATION='ELAS',),
#                   INCREMENT=_F(LIST_INST=ListReel,
#                                INST_FIN=1.0),
#                   NEWTON=_F(MATRICE='ELASTIQUE',
#                             REAC_ITER=1,),
#                   CONVERGENCE=_F(RESI_GLOB_MAXI=1e-4,
#                                  ITER_GLOB_MAXI=30,),);

RESU=STAT_NON_LINE(#reuse=RESU,
                   #ETAT_INIT=_F(EVOL_NOLI=RESU,
                   #             INST=1.0,),
                   MODELE=mod,
                   CHAM_MATER=MATE,
                   EXCIT=_F(CHARGE=CHAR2, FONC_MULT=LoadRamp),
                   CONTACT=contact,
                   COMP_INCR=_F(RELATION='ELAS',),
                   INCREMENT=_F(LIST_INST=ListReel,
                                #INST_INIT=1.0,
                                #INST_FIN=2.0
                                ),
                   NEWTON=_F(MATRICE='TANGENTE',
                             REAC_ITER=1,),
                   CONVERGENCE=_F(RESI_GLOB_MAXI=1e-6,
                                  ITER_GLOB_MAXI=30,),);

# Berechnen der Spannungen in den Elementen
RESU=CALC_CHAMP(reuse =RESU,
               MODELE=mod,
               CHAM_MATER=MATE,
               RESULTAT=RESU,
               CRITERES=('SIEQ_ELNO'),
               );

# Berechnen der Spannungen in den Knoten
#RESU=CALC_NO(reuse =RESU,
#             RESULTAT=RESU,
#             OPTION=('SIEF_NOEU', 'SIEQ_NOEU',),);

# Ausgabe des Ergebnisse in Mesh-File (*.resu.med)
# Pro Einzelkoerper eine Datei
# Zuordnung zu ASTK über UNITE, wie beim Einlesen der Netze
IMPR_RESU(FORMAT='MED',
          UNITE=80,
          RESTREINT=_F(GROUP_MA='volA',),
          RESU=_F(MAILLAGE=flanschA,
                  RESULTAT=RESU,
                  NOM_CHAM=('SIEF_NOEU','SIEQ_NOEU','DEPL',),),);

IMPR_RESU(FORMAT='MED',
          UNITE=81,
          RESTREINT=_F(GROUP_MA='volB',),
          RESU=_F(MAILLAGE=flanschB,
                  RESULTAT=RESU,
                  NOM_CHAM=('SIEF_NOEU','SIEQ_NOEU','DEPL',),),);

IMPR_RESU(FORMAT='MED',
          UNITE=82,
          RESTREINT=_F(GROUP_MA='volD',),
          RESU=_F(MAILLAGE=dichtung,
                  RESULTAT=RESU,
                  NOM_CHAM=('SIEF_NOEU','SIEQ_NOEU','DEPL',),),);




FIN();

SimScale - Engineering Simulation in your browser!
Last edit: 8 years 8 months ago by RichardS.
The following user(s) said Thank You: Tobias Vonstein

Please Log in or Create an account to join the conversation.

  • Tobias Vonstein
  • Tobias Vonstein's Avatar Topic Author
  • Offline
  • New Member
  • New Member
More
8 years 7 months ago #6953 by Tobias Vonstein
Replied by Tobias Vonstein on topic Re: Mehrere Teilkörper, Kontakt und Kraftrandbedingung
Hallo Richard,

na da bin ich doch erstmal super dankbar!!! :laugh:
Ich schaffe es wahrscheinlich erst in den nächsten Tagen das Beispiel zu testen. Aber ich gehe davon aus, dass es dann ja bei mir auch laufen wird.

Das DZ=0 bei Dinnend hatte ich auch nur gesetzt, weil ich dachte dann konvergiert der Kontakt erstmal besser. Ich wollte ausgrenzen ob es an der Dichtung oder am Flansch liegt. Physikalisch ist diese Randbedingung natürlich unsinn.

Was das Ablösen der Kontaktflächen angeht, ist das für den konkreten Fall richtig. In zukünftigen Berechnungen möchte ich aber auch noch einen Innendruck aufbringen. Das kann in der Realität dazu führen, dass ein Spalt zwischen Dichtung und Flansch entsteht. Deshalb muss ich in Zukunft das Ablösen des Kontaktes zulassen. Ich hoffe di Berechnung läuft dann trotzdem!

Ich werd das erstmal testen! Vielen Dank für deine Hilfe

Tobi

Salome Meca 2013.1, Code Aster 11.3, Ubuntu 12.04

Please Log in or Create an account to join the conversation.

Moderators: catux
Time to create page: 0.116 seconds
Powered by Kunena Forum