!****************************************************Praeambel !/RMDIR,'X:\FEM\coupled_field_seperate_databases_multiframe' finish /clear /UNITS,si !m, kg, s, K /MKDIR,'X:\FEM\coupled_field_seperate_databases_multiframe' /CWD,'X:\FEM\coupled_field_seperate_databases_multiframe\' /FILNAME,coupled_field_multiframe,1 /prep7 !****************************************************global domain i=0 j=0 k,1,-0.01,-0.01 k,2,-0.01,+0.01 k,3,0,+0.01 k,4,0,-0.01 l,1,2 l,2,3 l,3,4 l,4,1 AL,1,2,3,4 AATT,1,1,1,0 alls !****************************************************thermal envirnoment ET,1,PLANE13 !(PA) KEYOPT,1,1,2 !DOFs (temp) KEYOPT,1,3,0 !plane strain (z=0) mp,kxx,1,2.5e-1 !0.31 W/m*K Waermeleitzahl: 0.31 = N*s^-1*K^-1 mp,c,1,1.7e+3 !1.7 kJ/kg*K spez. Waermekapazitaet: 1.7 = 1*10^-9 mm^2 / s^2 * K mp,dens,1,1.14e3 TYPE,1 MAT,1 REAL,1 esize,1/1000 AMESH,1,1,1 alls physics,write,thermal !****************************************************structural envirnoment PHYSICS,clear et,1,PLANE13 !(PA) KEYOPT,1,1,3 !DOFs (ux,uy) KEYOPT,1,3,0 !plane strain (z=0) mp,ex,1,2.3e9 mp,prxy,1,2.5e-1 mp,dens,1,1.14e3 LSEL,s,line, ,1,1,1 !allgemeine Randbedingungen NSLL,s,1 D,all,ux D,all,uy alls FINISH physics,write,struct PHYSICS,clear *DO,par,1,2,1 i=i+1 !****************************************************second and further structural envirnoment /SOLU PHYSICS,read,struct !/ASSIGN,emat,struct,emat !/ASSIGN,esav,struct,esav parsav,scalar,coupled_field_seperate_databases,sav *IF,i,eq,1,then ANTYPE,trans SOLCONTROL,on,on rescontrol,define,last,last,1 !schreibe jeden LoadStep genau ein rnn-file zum restart NROPT,full NLGEOM,on *ELSE ANTYPE,trans,rest !UPCOORD,-1 *ENDIF parres, ,coupled_field_seperate_databases,sav time,i NSUBST,7,7,7 AUTOTS,on TIMINT,on outres,all,all alls D,22,uy,-1e-4*i *IF,i,gt,1,then alls ldread,temp,last,,,,coupled_field_multiframe,rth !Dateiname basiert auf dem Parameter /FILNAME *ELSE *ENDIF KBC,0 alls SOLVE !schreibt restart file! FINISH /POST1 SET,last !letztes resultset aufrufen *if,i,eq,1,then /RMDIR,'X:\FEM\coupled_field_seperate_databases_multiframe\strains' !löschen alter arrays /MKDIR,'X:\FEM\coupled_field_seperate_databases_multiframe\strains' !erstelle neuen Ordner *else *endif node_sum=231 !Knotenanzahl der Packstoffkomponente (inkl. Mittelknoten) zaehler=0 pi=acos(-1) frequenz=30000 elasticity=3.5e7 *DIM,eqv1,array,node_sum,2 !Tabelle mit node_sum Zeilen und 2 Spalten *do,parm,1,node_sum zaehler=zaehler+1 *GET,bb,node,zaehler,epel,eqv !erhalte eqv-Dehnung von Knoten nn !Verlustmodul in N/mm^2 nach Bach et al. 2010 *if,bb,eq,7.888609052E-31,then bb = 0 *CFOPEN,'X:\FEM\coupled_field_seperate_databases_multiframe\strains\coupled_analysis_eqv-table','sav%i%', ,append !speichern der Tabelle zur Ueberpruefung *VWRITE,zaehler,bb (F5.0,F30.5) !F: Zahlentyp, 4: Zeichenzahl gesamt, 0: Anzahl Nachkommastellen *CFCLOS *ELSE square_epel_eqv=bb*bb heat_gen_rate=pi*frequenz*square_epel_eqv*elasticity eqv1(zaehler,1) = zaehler !schreibe in Tabelle "eqv1" Zeile "zaehler" Spalte "1" Knotennummer "nn" eqv1(zaehler,2) = heat_gen_rate !schreibe in Tabelle "eqv1" Zeile "zaehler" Spalte "2" temp. Rate "hgen" *CFOPEN,'X:\FEM\coupled_field_seperate_databases_multiframe\strains\coupled_analysis_eqv-table','sav%i%', ,append !speichern der Tabelle zur Ueberpruefung *VWRITE,zaehler,heat_gen_rate (F5.0,F30.15) !F: Zahlentyp, 4: Zeichenzahl gesamt, 0: Anzahl Nachkommastellen *CFCLOS *ENDIF bb= heat_gen_rate= *enddo FINISH !/ASSIGN,emat !speichere neue Elementverschiebung !/ASSIGN,esav *if,i,gt,0,then /RENAME,'coupled_field_multiframe','r00%i%', ,'coupled_field_multiframe','r00%i%_str' /RENAME,'coupled_field_multiframe','ldhi', ,'coupled_field_multiframe','ldhi_str' /RENAME,'coupled_field_multiframe','rdb', ,'coupled_field_multiframe','rdb_str' /RENAME,'coupled_field_multiframe','BCS', ,'coupled_field_multiframe','BCS_str' /RENAME,'coupled_field_multiframe','full', ,'coupled_field_multiframe','full_str' /RENAME,'coupled_field_multiframe','stat', ,'coupled_field_multiframe','stat_str' /RENAME,'coupled_field_multiframe','esav', ,'coupled_field_multiframe','esav_str' /RENAME,'coupled_field_multiframe','osav', ,'coupled_field_multiframe','osav_str' *if,i,gt,1,then g = i - 1 /DELETE,'coupled_field_multiframe','r00%g%' !altes struct restart löschen /RENAME,'coupled_field_multiframe','r00%g%_the', ,'coupled_field_multiframe','r00%g%' /RENAME,'coupled_field_multiframe','ldhi_the', ,'coupled_field_multiframe','ldhi' /RENAME,'coupled_field_multiframe','rdb_the', ,'coupled_field_multiframe','rdb' /RENAME,'coupled_field_multiframe','BCS_the', ,'coupled_field_multiframe','BCS' /RENAME,'coupled_field_multiframe','full_the', ,'coupled_field_multiframe','full' /RENAME,'coupled_field_multiframe','stat_the', ,'coupled_field_multiframe','stat' /RENAME,'coupled_field_multiframe','esav_the', ,'coupled_field_multiframe','esav' /RENAME,'coupled_field_multiframe','osav_the', ,'coupled_field_multiframe','osav' *else *endif *else *endif !****************************************************thermal envirnoment /PREP7 PHYSICS,read,thermal UPGEOM,1,i,7,'X:\FEM\coupled_field_seperate_databases_multiframe\coupled_field_multiframe','rst' !aktuallisiere Verschiebungen (geht nur im ersten Durchgang) !UPCOORD,1 !aktualisiert ebenfalls Verschiebungen nur im erstem loop FINISH /SOLU parsav,scalar,'coupled_field_seperate_databases','sav' *IF,i,eq,1,then ANTYPE,trans SOLCONTROL,on,on rescontrol,define,last,last,1 !schreibe jeden LoadStep genau ein rnn-file zum restart und lasse max. 1 rnn-file übrig NROPT,full *ELSE ANTYPE,trans,rest *ENDIF parres, ,'coupled_field_seperate_databases','sav' time,i NSUBST,7,7,7 TIMINT,on AUTOTS,on outres,all,all alls *IF,i,gt,1,then *DIM,eqv2,array,node_sum,2 !Tabelle zum fuellen ueber *VREAD erzeugen *VREAD,eqv2,'X:\FEM\coupled_field_seperate_databases_multiframe\strains\coupled_analysis_eqv-table','sav%i%', ,jik,2,node_sum (F5.0,F30.5) zaehler=0 *do,parn,1,node_sum zaehler=zaehler+1 heat_gen_rate=eqv2(zaehler,2) BF,zaehler,HGEN,heat_gen_rate *enddo *ELSE !Starttemperatur in Kelvin (=23 Grad Celsius) TUNIF,273.15+23 *ENDIF KBC,0 alls SOLVE !löscht bzw. überschreibt restart file (wenn es nicht umbenannt wurde) von struct umgebung FINISH *if,i,gt,1,then /DELETE,'coupled_field_multiframe','r00%g%' !altes thermal restart löschen *else *endif /RENAME,'coupled_field_multiframe','r00%i%', ,'coupled_field_multiframe','r00%i%_the' /RENAME,'coupled_field_multiframe','ldhi', ,'coupled_field_multiframe','ldhi_the' /RENAME,'coupled_field_multiframe','rdb', ,'coupled_field_multiframe','rdb_the' /RENAME,'coupled_field_multiframe','BCS', ,'coupled_field_multiframe','BCS_the' /RENAME,'coupled_field_multiframe','full', ,'coupled_field_multiframe','full_the' /RENAME,'coupled_field_multiframe','stat', ,'coupled_field_multiframe','stat_the' /RENAME,'coupled_field_multiframe','esav', ,'coupled_field_multiframe','esav_the' /RENAME,'coupled_field_multiframe','osav', ,'coupled_field_multiframe','osav_the' /RENAME,'coupled_field_multiframe','r00%i%_str', ,'coupled_field_multiframe','r00%i%' /RENAME,'coupled_field_multiframe','ldhi_str', ,'coupled_field_multiframe','ldhi' /RENAME,'coupled_field_multiframe','rdb_str', ,'coupled_field_multiframe','rdb' /RENAME,'coupled_field_multiframe','BCS_str', ,'coupled_field_multiframe','BCS' /RENAME,'coupled_field_multiframe','full_str', ,'coupled_field_multiframe','full' /RENAME,'coupled_field_multiframe','stat_str', ,'coupled_field_multiframe','stat' /RENAME,'coupled_field_multiframe','esav_str', ,'coupled_field_multiframe','esav' /RENAME,'coupled_field_multiframe','osav_str', ,'coupled_field_multiframe','osav' /OUTPUT,parameter,sav, ,append !Zur Ueberpruefung Parameter in Datei schreiben /COM,Laufvariable i im %par%. Durchlauf (Ende Schleife): %i% /OUTPUT *ENDDO SAVE !schreibe alles in Jobname.db