Elementweise Druckbeaufschlagung in Code Aster
- alex
- Topic Author
- Offline
- Junior Member
- Posts: 24
- Thank you received: 0
gibt es in Code Aster die Möglichkeit auf die einzelnen 3D Elemente und dessen einzelnen Flächen einen Druck zu beaufschlagen?
So wie z.B. in Abaqus der Befehl:
*DLOAD
111, P1, 222
Wobei:
111 ==> Elementnummer
P1 ==> eine definierte Seite/Fläche des Elements (abhängig von den beteiligten Knoten)
222 ==> Druck
Ziel ist es über eine Liste jedem Element getrennt einen eigenen Druck zu vergeben.
Viele Grüße,
Alex
- RichardS
- Offline
- Elite Member
randbedingungen auf einzelne elemente oder knoten aufzubringen ist immer möglich, dazu anstatt GROUP_MA oder GROUP_NO einfach MAILLE bzw. NOEUD verwenden.
Also in dem beispiel eines drucks:
PRESSURE=AFFE_CHAR_MECA(
PRES_REP=_F (MAILLE='M123',
PRES=222,),
)
In Code-Aster müssen jedoch direkt die Flächenelemente angegeben werden (also TRIAs oder QUADs in einer 3D analyse), die Volumenelemente sind völlig unabhängig.
Gruß,
Richard
SimScale - Engineering Simulation in your browser!
- alex
- Topic Author
- Offline
- Junior Member
- Posts: 24
- Thank you received: 0
vielen Dank dir für deine Antwort, sie war mir sehr hilfreich. Denn wie ich sehe, lässt sich auch mit den Flächenelementen (TIRAs…) einiges anfangen.
Ich bin nur etwas irritiert, weil Code Aster die Nummerierung der Knoten und Elemente verändert. Das ist für die Berechnung zunächst kein Problem weil die Lasten richtig übernommen werden. Jedoch ist es für meine Auswertung nicht ganz so schön mit zwei Netzen zu hantieren
Dient die neue Nummerierung dazu die Matrix klein zu halten? Gibt es eine Möglichkeit die es auszuschalten?
Gruß,
Alex
- alex
- Topic Author
- Offline
- Junior Member
- Posts: 24
- Thank you received: 0
ich würde gerne noch ein Frage dranhängen, dann müsste ich alles zusammen haben
Nach der Hilfe von Richard habe ich nun folgende Bestandteile:
…
# Lastdefinition auf die einzelnen Oberflächenelemente
LOAD_13=AFFE_CHAR_MECA(MODELE=MODE,PRES_REP=_F(MAILLE='M13',PRES=1.0,),);
LOAD_14=AFFE_CHAR_MECA(MODELE=MODE,PRES_REP=_F(MAILLE='M14',PRES=1.0,),);
LOAD_22=AFFE_CHAR_MECA(MODELE=MODE,PRES_REP=_F(MAILLE='M22',PRES=1.0,),);
# Definition der zugehörigen Amplituden für die Drücke
F_13=DEFI_FONCTION(NOM_PARA='INST', VALE=(0.0 ,0.0 , 0.5 ,10.0 , 1.0 ,100.0 ,), INTERPOL='LIN', PROL_DROITE='EXCLU',);
F_14=DEFI_FONCTION(NOM_PARA='INST', VALE=(0.0 ,0.0 , 0.5 ,50 , 1.0 ,500.0 ,), INTERPOL='LIN', PROL_DROITE='EXCLU',);
F_22=DEFI_FONCTION(NOM_PARA='INST', VALE=(0.0 ,0.0 , 0.5 ,100 , 1.0 ,800.0 ,), INTERPOL='LIN', PROL_DROITE='EXCLU',);
# Definition Step
RESU=STAT_NON_LINE(….
EXCIT=( _F(CHARGE=LOAD_13,FONC_MULT=F_13,),
_F(CHARGE=LOAD_14,FONC_MULT=F_14,),
_F(CHARGE=LOAD_22,FONC_MULT=F_22,),
_F(CHARGE=BC_fest,),),
…
Nun möchte ich nicht nur mit drei Elementen arbeiten und suche nach einer eleganten Lösung. Die ersten beiden Teile (Laste und Amplituden) lassen sich gut über INCLUDE als ein separates File anbinden. Wie es aussieht kann ich aber INCLUDE nicht innerhalb von STAT_NON_LINE für meine EXCITs verwenden?!
Gibt es eine andere Lösung als, den gesamten STAT_NON_LINE mit in das File zu packen?
Wäre eine runde Sache wenn ich STAT_NON_LINE weiterhin ohne Umwege in EFICAS editieren könnte. Werde diesen Arbeitsgang öfters bauchen.
Gruß,
Alex
- kwou
- Offline
- Moderator
Meine Meinung nach gibt es nur eine Offset von eins (1) (warscheinlich weill CA mit Fortran mit index 0 anfaengt und Python mit index 1, oder umgekehrt).Ich bin nur etwas irritiert, weil Code Aster die Nummerierung der Knoten und Elemente verändert. Das ist für die Berechnung zunächst kein Problem weil die Lasten richtig
Nun möchte ich nicht nur mit drei Elementen arbeiten und suche nach einer eleganten Lösung. Die ersten beiden Teile (Laste und Amplituden) lassen sich gut über INCLUDE als ein separates File anbinden. Wie es aussieht kann ich aber INCLUDE nicht innerhalb von STAT_NON_LINE für meine EXCITs verwenden?!
Gibt es eine andere Lösung als, den gesamten STAT_NON_LINE mit in das File zu packen?
Wäre eine runde Sache wenn ich STAT_NON_LINE weiterhin ohne Umwege in EFICAS editieren könnte. Werde diesen Arbeitsgang öfters bauchen.
Sehe zb:
www.caelinux.org/wiki/index.php/Contrib:...te/variable_pressure
Dann kannst Du zB aber die werte PRES varieren und die scalefactor gleich halten:
LOAD_13=AFFE_CHAR_MECA(MODELE=MODE,PRES_REP=_F(MAILLE='M13',PRES=1.0,),);
LOAD_14=AFFE_CHAR_MECA(MODELE=MODE,PRES_REP=_F(MAILLE='M14',PRES=5.0,),);
LOAD_22=AFFE_CHAR_MECA(MODELE=MODE,PRES_REP=_F(MAILLE='M22',PRES=8.0,),);
...
F_scale=DEFI_FONCTION(NOM_PARA='INST', VALE=(0.0 ,0.0 , 0.5 ,10.0 , 1.0 ,100.0 ,), INTERPOL='LIN', PROL_DROITE='EXCLU',);
===>>>>
pseudo Python code:
pressvalue = {MAILLE='M13',PRES=1.0,MAILLE='M14',PRES=5.0,MAILLE='M22',PRES=8.0,}
LOAD_13=AFFE_CHAR_MECA(MODELE=MODE,PRES_REP=pressvalue,);
...
F_scale=DEFI_FONCTION(NOM_PARA='INST', VALE=(0.0 ,0.0 , 0.5 ,10.0 , 1.0 ,100.0 ,), INTERPOL='LIN', PROL_DROITE='EXCLU',);
Interest: structural mechanics, solar energy (picture at 'my location' shows too little pv panels)
--
kind regards - kees