Viðbætur með notandaundirforritum¶
FrontISTR býður safn notandaundirforrita til að víkka út virkni án þess að breyta aðalkóðanum. Þau ná yfir notendaútfærslur á efnissamböndum og samþættingu ytri álags sem notandi skilgreinir. Í þessum kafla eru tiltækir viðbótarpunktar taldir upp ásamt lykilorðum í greiningarstýrigögnum sem notuð eru til að virkja hvern þeirra. Fyrir ítarleg viðföng undirforrita og leiðbeiningar um endurbyggingu, sjá Notandaundirforrit (forritunarhandbók).
Yfirlit yfir virkni¶
Viðbótarpunktum notandaundirforrita er skipt í tvo flokka: efnissambönd og ytri álag. Fyrir efnissambönd eru fjórar virkjunarleiðir—línuleg teygni, ofurteygni, teygjuplast og almennt notendaefnissamband—og hver þeirra er virkjuð með sjálfstæðu lykilorði. Fyrir ytri álag er leið sem les álagsupplýsingar úr ytri skrá sem notandi útbýr og bætir þeim við heildarálagsvigur og leifarvigur. Hver viðbót verður tiltæk eftir að sniðmátsskrá í dreifingu FrontISTR hefur verið breytt og aðalforritið endurbyggt.
| Flokkur viðbótar | Lykilorð í greiningarstýringu | Helstu notandaundirforrit | Sniðmát sem á að breyta |
|---|---|---|---|
| Línuleg teygni notanda | !ELASTIC, TYPE=USER | uElasticMatrix, uElasticUpdate | fistr1/src/lib/user/uelastic.f90 |
| Ofurteygni notanda | !HYPERELASTIC, TYPE=USER | uElasticMatrix, uElasticUpdate | fistr1/src/lib/user/uelastic.f90 |
| Teygjuplast notanda (flotfall og afturvörpun) | !PLASTIC, YIELD=USER | uElastoPlasticMatrix, uBackwardEuler, uElastoPlasticNumStatus | fistr1/src/lib/user/uyield.f90 |
| Almennt notendaefnissamband | !USER_MATERIAL | uMatlMatrix, uUpdate | fistr1/src/lib/user/umat.f90 |
| Ytra álag skilgreint af notanda | !ULOAD, FILE=<fname> | ureadload, uloading, uResidual | fistr1/src/lib/user/uload.f90 |
Notandaskilgreindar herðingarlögmál (leið sem heldur innbyggða flotfallinu en skiptir aðeins herðingarferlinum út fyrir notendaútfærslu) eru ekki studd. Ef þörf er á notandaskilgreindum herðingarferli skal velja !PLASTIC, YIELD=USER og skipta öllu teygjuplastiska efnissambandinu út fyrir notendaútfærslu. Notandajaðarskilyrði og viðbótarpunktar fyrir notandavinnslu við endurræsingu eru ekki studd.
!CREEP með TYPE=USER er ekki stutt. Notaðu !USER_MATERIAL til að útfæra tímaháð efnissamband sem notandaviðbót.
Efnissambönd notanda¶
Efnissambönd notanda veita inngangspunkt til að útfæra spennu-bjögunarsambönd sem ekki er hægt að lýsa með innbyggðum efnislíkönum í ytra undirforriti. Fjórar leiðir eru tiltækar eftir ramma samsvarandi innbyggðs efnissambands: línuleg teygni notanda, ofurteygni notanda, teygjuplast notanda og almennt notendaefnissamband. Í hverri leið skal innan !MATERIAL-blokkar greiningarstýrigagnanna tilgreina TYPE=USER eða YIELD=USER á samsvarandi lykilorði. Hægt er að tilgreina allt að 100 notandafasta og þeir eru sendir til undirforritsins.
Línuleg teygni notanda¶
Línuleg teygni notanda er leið þar sem notandinn reiknar teygjufylkið innan ramma smáaflögunar. Þegar !ELASTIC, TYPE=USER er tilgreint í greiningarstýrigögnunum meðhöndlar FrontISTR það sem efnissamband fyrir smáaflögun og kallar á uElasticMatrix (sem skilar teygjufylki \(D\)) við útreikning stífleika staks og uElasticUpdate (sem skilar spennu) við uppfærslu spennu. Ekki skal nota þetta ásamt innbyggðu ofurteygju- eða teygjuplastlíkani.
Ofurteygni notanda¶
Ofurteygni notanda er leið til að reikna spennu og snertistífleika út frá afleiðum bjögunarorkufalls innan ramma stórrar aflögunar (Total Lagrange). Tilgreindu !HYPERELASTIC, TYPE=USER í greiningarstýrigögnunum. Kölluðu undirforritin eru sömu uElasticMatrix og uElasticUpdate og fyrir línulega teygni notanda og sama sniðmátið fistr1/src/lib/user/uelastic.f90 er sameiginlegt. Þar sem lykilorðatilgreiningin skiptir um hvort FrontISTR meðhöndlar útfærsluna sem smáaflögun eða Total Lagrange er ekki hægt að nota sama sniðmát samtímis fyrir bæði smá- og stóraf-lögunarútfærslur. Útfærðu það sem annað hvorn efnissambandsrammann.
Teygjuplast notanda¶
Teygjuplast notanda er leið þar sem notandinn útfærir flotfallið og afturvörpunarferlið. Tilgreindu !PLASTIC, YIELD=USER í greiningarstýrigögnunum. Þetta fer inn í grein sem er óháð innbyggðu Mises-, Mohr-Coulomb- og Drucker-Prager-flotföllunum. uElastoPlasticMatrix (sem skilar teygjuplastisku snertistífleikafylki \(D\)) er kallað við útreikning stífleika staks, uBackwardEuler (sem varpar tilraunaspennu í raunspennu og uppfærir ástandsbreytur) við uppfærslu spennu og uElastoPlasticNumStatus (sem skilar fjölda raungildra ástandsbreyta sem halda á) við frumstillingu Gauss-punkts. Leið sem skiptir aðeins herðingarferlinum út fyrir notendaútfærslu er ekki studd. Jafnvel þegar aðeins er þörf á notandaskilgreindum herðingarferli skal nota þessa leið til að skipta öllu teygjuplastiska efnissambandinu út fyrir notendaútfærslu.
Almennt notendaefnissamband¶
Almenna notendaefnissambandið er leið til að útfæra efnissambönd sem falla ekki innan teygju-, ofurteygju- eða teygjuplastaramma. Tilgreindu !USER_MATERIAL í greiningarstýrigögnunum. Sjálfgefið er það meðhöndlað innan Updated Lagrange-rammans; þegar KIRCHHOFF er tilgreint er það meðhöndlað sem Total Lagrange. Fjöldi ástandsbreyta er tilgreindur með NSTATUS. uMatlMatrix (sem skilar snertistífleika \(D\)) er kallað við útreikning stífleika staks og uUpdate (sem uppfærir spennu og ástandsbreytur) við uppfærslu spennu.
Flutningur notandafasta og ástandsbreyta¶
Fyrir hverja leiðina !ELASTIC, TYPE=USER, !HYPERELASTIC, TYPE=USER og !USER_MATERIAL eru notandafastarnir sem skrifaðir eru á gagnalínur í greiningarstýrigögnunum (allt að 100) sendir beint til undirforritsins með viðfanginu matl. Fyrir !PLASTIC, YIELD=USER eru teygjufastarnir sem !ELASTIC tilgreinir og notandafastarnir sem gefnir eru með gagnalínum !PLASTIC sendir áfram.
Fyrir almenna notendaefnissambandið og !PLASTIC, YIELD=USER má senda söguupplýsingar frá fyrra skrefi (svo sem plastbjögun, bakspennu og skemmd) til notendaútfærslunnar með ástandsbreytunni fstat og skrifa þær aftur í lok skrefsins. Fjöldi ástandsbreyta ákvarðast fyrir almenna notendaefnissambandið af !USER_MATERIAL og NSTATUS þess og fyrir !PLASTIC, YIELD=USER af skilagildi uElastoPlasticNumStatus.
Ytri álag skilgreind af notanda¶
Ytri álag skilgreind af notanda veita leið til að skilgreina ytri krafta sem ekki er hægt að lýsa með innbyggðum punktálögum, dreifðum álagum eða rúmkraftum. Þegar !ULOAD, FILE=<fname> er skrifað í greiningarstýrigögnin sendir FrontISTR tilgreinda skráarheitið til ureadload, og upplýsingarnar sem notendaútfærslan les eru varðveittar sem einingargögn.
Eftirfarandi þrjú undirforrit samsvara virkjun !ULOAD.
ureadload: Les í upphafi greiningar notandaskilgreind álag úr ytri skránni sem tilgreind er í stýrigögnum. Notendaútfærslan opnar skrána og geymir nauðsynleg gögn í einingarbreytum.uloading: Kallað við samsetningu ytri álagsvigurs fyrir hvert skref og bætir notendaálaginu við heildarálagsvigurinn. Núverandi skrefsnúmer og álagsstuðull eru send sem viðföng.uResidual: Kallað við samsetningu leifarvigurs í hverri ítrun og bætir framlagi notendaálagsins við heildarleifarvigurinn. Það er kallað bæði úr ólínulegum ítrunum og jafnvægisútreikningum.
Enginn viðbótarpunktur er til fyrir notandajaðarskilyrði (notandaviðbætur fyrir fyrirskipaða færslu eða snertiskilyrði). Ef þörf er á notandaviðbót annarri en ytri krafti skal nota samsvarandi innbyggt lykilorð eða leið fyrir notendaefnissamband.
Ferli við útfærslu notandaundirforrita¶
Til að nota notandaundirforrit skal breyta sniðmátsskránni sem fylgir frumkóðadreifingu FrontISTR og endurbyggja síðan FrontISTR. Ekki er hægt að skipta út notandaundirforritum í dreifðum tvíundarpökkum, þannig að notkun notandaviðbótar krefst umhverfis þar sem hægt er að byggja FrontISTR úr frumkóða.
Sniðmát notandaundirforrita eru undir fistr1/src/lib/user/, með tiltekinni skrá sem á að breyta fyrir hvern viðbótarflokk (sjá skráarheiti í töflunni í Yfirlit yfir virkni). Í upphaflegu ástandi innihalda skrárnar annaðhvort tóma líkama undirforrita eða dæmi um línulega teygjuútfærslu; notendur bæta þar við eigin efnissambandi eða álagsskilgreiningu. Eftir breytingu sniðmátsins skal endurbyggja FrontISTR á venjulegan hátt með CMake og keyra greininguna með fistr1-keyrsluskránni sem verður til.
Nánari upplýsingar, svo sem merking viðfanga undirforrita, meðhöndlun fylkja ástandsbreyta og varúðarráðstafanir við endurbyggingu, eru á samsvarandi síðum forritunarhandbókarinnar.
- Notandaundirforrit (yfirlit)
- Almennt notendaefnissamband
umat.f - Teygjuplast notanda
uyield.f - Ytra álag skilgreint af notanda
uload.f - Línuleg teygni notanda og ofurteygni notanda
uelastic.f
Sjá einnig¶
- Efnisgögn — valkostir efnissambanda og listi yfir innbyggð líkön
- Jaðarskilyrði og álag — innbyggð jaðarskilyrði og álag
- Notandaundirforrit (forritunarhandbók) — viðfangaskilgreiningar undirforrita og útfærslureglur
- !USER_MATERIAL — lykilorðasnið fyrir almennt notendaefnissamband
- !ELASTIC — lykilorð línulegrar teygni, þar með talið
TYPE=USER - !HYPERELASTIC — lykilorð ofurteygni, þar með talið
TYPE=USER - !PLASTIC — lykilorð teygjuplasts, þar með talið
YIELD=USER