Utdata och omstart¶
Analysresultaten finns som sådana i minnet och måste därför skrivas till lämpliga filer för efterbearbetning, visualisering, återställning och omstart. Eftersom filformat, utdataobjekt och utdatafrekvens skiljer sig beroende på syftet tillhandahåller FrontISTR flera utdatakanaler för olika användningsområden.
FrontISTR:s utdata består av tre system: resultatfiler som sparar analysvärden (!WRITE,RESULT), visualiseringsfiler som används för visualisering (!WRITE,VISUAL) och omstartsfiler som sparar analystillståndet (!RESTART). De fysikaliska storheter som ingår i resultatfiler respektive visualiseringsfiler väljs med !OUTPUT_RES och !OUTPUT_VIS.
Funktionsöversikt¶
Utdatainställningarna blir enklare att organisera om följande tre axlar betraktas separat.
| Axel | Huvudsaklig indata | Roll |
|---|---|---|
| Utdatamål | !WRITE,RESULT, !WRITE,VISUAL, !RESTART |
Bestämmer vilken filtyp resultaten sparas i för det avsedda användningsområdet. |
| Utdatavariabler | !OUTPUT_RES, !OUTPUT_VIS |
Bestämmer vilka fysikaliska storheter som tas med i resultatfiler eller visualiseringsfiler. |
| Utdatafrekvens | FREQUENCY |
Bestämmer hur många steg som går mellan skrivningarna till en fil. |
!WRITE,RESULT aktiverar resultatfiler och !OUTPUT_RES anger utdatavariablerna. !WRITE,VISUAL aktiverar visualiseringsfiler och !OUTPUT_VIS anger de variabler som förs till visualiseringen. I båda fallen kan utdataintervallet styras med FREQUENCY. !WRITE är ett enda kort, och RESULT / VISUAL / FEMAP kan förekomma tillsammans som parametrar som väljer utdatamål.
Dataraderna för !OUTPUT_RES och !OUTPUT_VIS listar namn på utdatavariabler och ON / OFF. Genom att ange GROUP kan utdatamålet begränsas per grupp. Se nyckelordsreferensen för den konkreta indatasyntaxen och tillgängliga datarader.
!RESTART sparar själva analystillståndet separat från resultatfiler och visualiseringsfiler. Omstartsfiler används för att återuppta en analys från samma tillstånd efter ett avbrott.
Val av utdata¶
Välj först utdata utifrån vad som ska kontrolleras. Använd en resultatfil när numeriska värden ska användas för efterbearbetning eller en annan analys, och en visualiseringsfil när former eller fördelningar ska granskas med ett visualiseringsverktyg. Om analysen behöver återupptas efter ett avbrott aktiveras en omstartsfil separat från den normala resultatutmatningen.
| Syfte | Utdata att välja | Huvudsaklig specifikation |
|---|---|---|
| Spara analysvärden för efterbearbetning, jämförelse eller en annan analys | Resultatfil | !WRITE,RESULT och !OUTPUT_RES |
| Kontrollera fördelningar och deformerade former i ParaView eller liknande verktyg | Visualiseringsfil | !WRITE,VISUAL, !OUTPUT_VIS, !VISUAL |
| Återuppta en långvarig analys efter ett avbrott | Omstartsfil | !RESTART |
| Minska utdatastorleken | Skriv endast nödvändiga variabler | ON / OFF och FREQUENCY i !OUTPUT_RES / !OUTPUT_VIS |
I storskaliga analyser kan resultat- och visualiseringsfiler bli stora om varje steg sparas med standardinställningarna. Sätt endast nödvändiga fysikaliska storheter till ON och storheter som inte behövs för kontroll till OFF. Om en finfördelad tidshistorik inte behövs kan FREQUENCY ökas för att göra utdataintervallet grövre.
En användbar ordning när utdatavariabler ska bestämmas är ”fysikalisk storhet att kontrollera”, ”utdatamål” och ”frekvens”. För att exempelvis kontrollera en spänningsfördelning i ParaView aktiveras visualiseringsfiler och NSTRESS eller NMISES väljs med !OUTPUT_VIS. För numerisk efterbearbetning av kontaktkraft aktiveras resultatfiler och CONTACT_NFORCE eller liknande väljs med !OUTPUT_RES.
Tillgängliga fysikaliska storheter¶
Utdatavariablerna delas in i strukturanalys, dynamisk analys, värmeanalys, kontaktanalys, elementspecifika resultat och identifierande metadata. Tabellen nedan sammanfattar de huvudsakliga variabelnamnen, typerna och de analystyper där de används. En fullständig lista över variabelnamn och syntax för datarader finns i !OUTPUT_RES och !OUTPUT_VIS.
| Kategori | Variabelnamn | Typ | Huvudsaklig analystyp | Beskrivning |
|---|---|---|---|---|
| Grundläggande strukturella storheter | DISP, ROT, REACTION |
Vektor | Statisk analys, dynamisk analys | Förskjutning, rotation och nodreaktionskraft. ROT är giltig för element med rotationsfrihetsgrader. |
| Spänning | NSTRESS, ESTRESS, ISTRESS |
Symmetrisk tensor | Strukturanalys | Nodmedelvärdesbildad spänning, elementspänning och spänning i integrationspunkter. |
| von Mises-spänning / huvudspänning | NMISES, EMISES, PRINC_NSTRESS, PRINC_ESTRESS, PRINCV_NSTRESS, PRINCV_ESTRESS |
Skalär, vektor | Strukturanalys | von Mises-spänning, huvudspänningsvärden och huvudspänningsriktningar. |
| Töjning | NSTRAIN, ESTRAIN, ISTRAIN |
Symmetrisk tensor | Strukturanalys | Nodtöjning, elementtöjning och töjning i integrationspunkter. |
| Plastisk / termisk töjning | PL_ISTRAIN, PL_ESTRAIN, TH_NSTRAIN, TH_ESTRAIN, TH_ISTRAIN |
Skalär, symmetrisk tensor | Icke-linjär strukturanalys, termisk-spänningsanalys | Ekvivalent plastisk töjning och termisk töjning. |
| Huvudtöjning | PRINC_NSTRAIN, PRINC_ESTRAIN, PRINCV_NSTRAIN, PRINCV_ESTRAIN |
Skalär, vektor | Strukturanalys | Huvudtöjningsvärden och huvudtöjningsriktningar. |
| Dynamisk analys | VEL, ACC |
Vektor | Dynamisk analys | Nodhastighet och nodacceleration. |
| Värmeanalys | TEMP |
Skalär | Värmeledningsanalys | Nodtemperatur. I resultat- och visualiseringsfiler för värmeanalys skrivs den ut som temperaturfältet. |
| Kontakt | CONTACT_NFORCE, CONTACT_FRICTION, CONTACT_RELVEL, CONTACT_STATE, CONTACT_NTRACTION, CONTACT_FTRACTION |
Vektor, skalär | Kontaktanalys | Kontaktens normalkraft, friktionskraft, relativa glidhastighet, kontakttillstånd och kontaktkraft per ytenhet. |
| Balkelement | BEAM_NQM |
12-komponentsvärde | Strukturanalys som omfattar balkelement | Snittkrafter i balkelement. |
| Identifiering / tillstånd | NODE_ID, ELEM_ID, SECTION_ID, MATERIAL_ID, ELEMACT, YIELD_RATIO |
Skalär | Strukturanalys, visualisering | Identifieringsinformation för noder, element, sektioner och material; elementaktiveringstillstånd; samt flytkvot. ELEMACT skriver 1 för aktiva element och 0 för inaktiva (deaktiverade) element. |
| Extra skalinformation | SHELL_LAYER, SHELL_SURFACE |
Skalär | Strukturanalys som omfattar skalelement | Hjälpinformation som identifierar utskrift per skallager och skalyta. |
Som standard är DISP, ROT, NSTRESS och NMISES ON. Huruvida meningsfulla värden faktiskt skrivs ut beror dock på analystyp, elementtyp, materialmodell och kontaktinställningar. Exempelvis används VEL och ACC i dynamisk analys, och CONTACT_* används när kontaktinformation genereras i kontaktanalys.
Utdata per skallager¶
Skalelement har flera integrationspunkter eller lager genom tjockleken, så spännings- och töjningsvärden kan skilja sig mellan lager eller ytor även inom samma element. Med enbart vanliga nodmedelvärden eller elementvärden är det svårt att avgöra vilket lager eller vilken yta ett värde hör till.
När SHELL_LAYER sätts till ON skrivs resultaten för + och - sidan av varje lager i ett laminerat skal ut separat. De utmatade spännings- och töjningskomponenterna innehåller identifierare för lagernummer och ytsida, vilket gör det möjligt att utvärdera spänningsfördelningar genom tjockleken och skador per lager.
SHELL_SURFACE är hjälpinformation för identifiering av skalytor såsom över- och undersida. Vid visualisering av resultat per skallager aktiveras SHELL_LAYER och de erforderliga spännings-/töjningsvariablerna, varefter den resultatkomponent som motsvarar önskat lager eller önskad yta väljs i visualiseringsverktyget.
Eftersom utdata per skallager ökar antalet utdatakomponenter ökar filstorleken för modeller med många lager. Det är lämpligt att begränsa utdata till de spännings- och töjningsvariabler som behövs.
Utdatamål¶
Resultatfiler och visualiseringsfiler skiljer sig åt i syfte och lagringsformat. Båda kan skrivas ut i samma analys, eller så kan endast den ena typen skrivas ut.
Resultatfiler¶
Resultatfiler aktiveras med !WRITE,RESULT. Analysresultaten sparas som FrontISTR-/HEC-MW-resultatdata och används för numerisk efterbearbetning eller som indata till en annan analys. Utdatavariabler väljs med !OUTPUT_RES.
!WRITE,RESULT är också implementerat som parametern RESULT på !WRITE-kortet och är ett alternativ för utdatamål vid sidan av visualiserings- och FEMAP-utdata.
Resultatfiler kan lagra förskjutning, spänning, töjning, reaktionskrafter, kontaktinformation och andra storheter för strukturanalys samt temperaturfält för värmeanalys. Utdataintervallet per steg anges med FREQUENCY. Se exekveringsguiden för konkreta filnamn, platser och hur de kontrolleras efter körning.
Resultatfiler (filändelse .res) är textdata med följande struktur. Först kommer formatversion och kommentar, därefter globala variabler och sist utdatavariabler för varje nod och element.
*fstrresult 2.0
*comment
<kommentarrad>
*global
<antal globala variabler>
<frihetsgrader för globala variabler>
<namn på globala variabler>
<värden för globala variabler>
...
*data
<antal noder> <antal element>
<antal noddataobjekt> <antal elementdataobjekt>
<frihetsgrader för noddata> ...
<namn på noddata>
...
<värden för noddata>
...
<frihetsgrader för elementdata> ...
<namn på elementdata>
...
<värden för elementdata>
...
Loggfiler¶
Loggfiler (filändelse .log) är sammanfattningsfiler som alltid skrivs ut efter analysen. Utöver fysikaliska storheter för varje nod och element skrivs maximi-/minimivärden för komponenter av förskjutning, töjning och spänning ut. I modalanalys skrivs egenvärden och egenvektorvärden ut. Parametern LOG i !WRITE styr utdatainnehållet. Se exekveringsguiden för filnamn och platser.
Visualiseringsfiler¶
Visualiseringsfiler aktiveras med !WRITE,VISUAL. De konverterar nät- och resultatdata till ett format för visualiseringsverktyg och skriver ut detta. Utdatavariabler väljs med !OUTPUT_VIS, och format och visualiseringsvillkor anges med !VISUAL.
!WRITE,VISUAL är inte ett självständigt nyckelord; det är implementerat som parametern VISUAL på !WRITE-kortet och växlar utdatamål på samma nivå som !WRITE,RESULT / !WRITE,FEMAP (fstr_ctrl_get_WRITE i fistr1/src/common/fstr_ctrl_common.f90).
För att aktivera visualisering måste åtminstone visualiseringsytan och utdataformatet anges på !VISUAL-kortet. Följande är den minsta datamängden.
Specifikationerna surface_num och !surface kan inte utelämnas. Se !VISUAL för detaljerad syntax och tillgängliga alternativ.
De huvudsakliga visualiseringsformaten är följande.
| Format | Syfte |
|---|---|
| VTK | Används för visualisering i ParaView och liknande verktyg. |
| AVS (UCD) | Används för visualisering och datautbyte i AVS-/UCD-format. |
| BMP | Skriver ut visualiseringsresultat som bilder. |
| NEU | Används för datautbyte i FEMAP:s neutralformat. |
Visualiseringsfiler är enklare för visualiseringsverktyg att hantera direkt än resultatfiler, men deras storlek ökar beroende på valt format och antal variabler. För storskaliga modeller bör endast de variabler som behövs för visning aktiveras med !OUTPUT_VIS.
Omstart¶
Omstart är en funktion för att spara det interna tillståndet vid den punkt där en analys avbryts och återuppta beräkningen från samma tillstånd vid nästa körning. Vanliga resultatfiler skrivs ut för efterbearbetning, medan omstartsfiler lagrar tillstånd så att lösaren kan fortsätta beräkningen.
När n i !RESTART, FREQUENCY=n är positivt skrivs en omstartsfil med angivet stegintervall. När n är negativt läses en befintlig omstartsfil vid körningens start, och därefter skrivs omstartsfiler med absolutvärdet |n| som utdataintervall.
Vid omstart av strukturanalys sparas aktuellt steg, delsteg, kumulativt steg, tid, tidsinkrement, lasthistorik, förskjutning, extern kraft, spänning och töjning i varje Gauss-punkt, interna materialtillståndsvariabler, kontakttillstånd och andra data. Dynamisk analys sparar dessutom det dynamiska tillstånd som behövs för att återuppta tidsintegrationen, inklusive hastighet och acceleration, töjningsenergi, aktuell tid och tidsinkrement. Värmeanalys sparar stegnummer, tid och temperaturfält och återställer temperaturfältet som initialtillstånd vid läsning.
Skrivtidpunkt och återupptagningsbeteende för omstart av statisk analys¶
För omstart i statisk analys (fstr_solve_NLGEOM) finns två skrivvägar, och deras beteende vid återupptagning skiljer sig åt.
- Skrivning under ett delsteg: En fil skrivs inne i delstegsloopen när
step_countblir en multipel avFREQUENCY. Den registrerade tidsinformationen sparas som ”starttid för aktuellt steg”, och lastlistan för föregående steg följer med. - Skrivning vid slutet av ett steg: En fil skrivs alltid omedelbart efter att delstegsloopen för varje laststeg har slutförts, oavsett om steget är en multipel av
FREQUENCY. Den registrerade tidsinformationen sparas som ”stegets sluttid”, och lastlistan för det steget följer med.
Vid läsning avgör FrontISTR om steget är slutfört genom att kontrollera om registrerad ”aktuell tid” och ”referenstid” sammanfaller (fstr_read_restart i fstr_Restart.f90).
| Tillstånd vid skrivning | Beteende vid återupptagning |
|---|---|
| Under ett delsteg | Fortsätter från nästa delsteg i samma steg. Positionen i delsteget vid skrivtidpunkten ärvs och återstående delstegsloop körs. |
| Stegets slut | Startar från det första delsteget i nästa steg. cstep ökas med 1, substep=1 återställs och analysen fortsätter därefter. |
Även med samma inställning för FREQUENCY skiljer sig därför stegnumret och tidsreferensen efter återupptagning beroende på när skrivningen skedde (under ett delsteg / vid stegets slut). I synnerhet utförs en skrivning vid stegets slut alltid i slutet av varje steg oberoende av inställningen för FREQUENCY.
Skrivtidpunkt och återupptagningsbeteende för omstart av dynamisk analys¶
Vid omstart av dynamisk tidshistorieanalys skiljs också mellan skrivning under ett delsteg och skrivning vid slutet av ett steg. Under ett delsteg skrivs en fil när det kumulativa delstegsantalet step_count blir en multipel av FREQUENCY; vid slutet av ett steg skrivs en fil i slutet av steget oberoende av FREQUENCY.
Vid läsning återställs återupptagningspositionen från sparat stegnummer, delstegsnummer och kumulativt delstegsantal. Det aktuella formatet (restart_version >= 5) använder ett huvud som är gemensamt med statisk analys och sparar aktuell tid, tidsinkrement, statistik över Newton-iterationer och tillstånd för automatisk inkrementering. Detta gör att dynamisk analys som använder flera !STEP-kort och automatisk inkrementering/cutback kan föra vidare tidsreferensen och tidsinkrementet efter omstart. Äldre omstartsfiler för dynamisk analys har delvis bibehållen läskompatibilitet, men nya analyser bör använda det aktuella formatet.
Utformning av !STEP-kort vid omstart¶
Vid återupptagning från en omstart läser FrontISTR !STEP-korten i cnt-filen som ”sekvensen av steg som ska köras efter återupptagningen” och behandlar dem alltid i ordning från det första (tot_step=1). Stegnumret i den inlästa omstartsinformationen används för att justera det kumulativa stegnummer som visas på skärmen och påverkar inte själva !STEP-indexet i cnt-filen. I det aktuella formatet läggs dessutom referenstiden kollektivt till starttime för varje !STEP i cnt-filen när omstarten läses, så att tidslinjen anpassas med omstartstiden som origo.
Förbered därför cnt-filen för omstart enligt följande princip.
| Hur körningen avbröts | Intervall av !STEP-kort som ska behållas i cnt |
|---|---|
| Skrivet under ett delsteg (steget ofullständigt) | Behåll det avbrutna steget först. Låt därefter de efterföljande ännu ej körda stegen följa. |
| Skrivet vid slutet av ett steg (steget slutfört) | Ta bort slutförda steg och placera nästa steg som ska köras först. |
I båda fallen är grundregeln att ta bort steg som redan har slutförts från cnt-filen. Eftersom omstartstiden automatiskt läggs till starttime kan cnt-filen använda noll som origo (eller relativa starttider för steg). Referenser såsom randvillkor och laster bör behållas i cnt-filen endast för de !STEP-kort som återstår. Samma princip gäller omstart av dynamisk analys med flera !STEP-kort.
Ett typiskt omstartsflöde är följande.
- Ange
!RESTART, FREQUENCY=nvid den första körningen och skriv en omstartsfil. - Ange
!RESTART, FREQUENCY=-nvid körningen som återupptar analysen. - FrontISTR läser omstartsfilen vid start och skriver därefter ett nytt tillstånd var
n:e steg.
Se exekveringsguiden för namngivning och placering av omstartsfiler samt specifikation vid körning. Det finns även delvis läskompatibilitet med filer i äldre format, men nya analyser bör använda det aktuella formatet.
Relaterade ämnen¶
- Seriell körning — Grunderna för filplacering och kontroll av utdata under analyskörning.
- !OUTPUT_RES, !OUTPUT_VIS — Specifikation av variabler som ska skrivas till resultatfiler och visualiseringsfiler.
- !WRITE — Aktivering av resultatfils-, visualiseringsfils- och loggutdata samt angivelse av utdatafrekvens (
RESULT/VISUAL/LOG/FEMAP-parametrar). - !VISUAL — Specifikation av visualiseringsytor och utdataformat (inklusive ett exempel på minsta datamängd).
- !RESTART — Specifikation för läsning och skrivning av omstartsfiler.
- Analystyper — Huvudsakliga resultatobjekt för respektive analystyp.
- Kontakt och inbäddning — Betydelsen av kontaktutdata och hantering av kontakttillstånd.
- Stegstyrning — Samband med utdatasteg och tidpunkter.