Joan zuzenean edukira

Erabiltzaile-azpierrutinen bidezko hedapenak

FrontISTR-k erabiltzaile-azpierrutina multzo bat eskaintzen du funtzionalitatea hedatzeko, programa nagusiaren iturburu-kodea aldatu gabe. Hedapen horien bidez, erabiltzaileak lege konstitutiboak inplementa ditzake eta erabiltzaileak definitutako kanpoko kargak txerta ditzake. Kapitulu honetan erabilgarri dauden hedapen-puntuak eta horietako bakoitza deitzeko analisi-kontroleko fitxategian erabiltzen diren gako-hitzak zerrendatzen dira. Azpierrutinen argumentuen zehaztapen xehatuetarako eta berreraikitze-prozeduretarako, ikus Erabiltzaile-azpierrutinak (kodeketa-gida).

Funtzioen ikuspegi orokorra

Erabiltzaile-azpierrutinen bidezko hedapen-puntuak bi multzotan banatzen dira: materialen lege konstitutiboak eta kanpoko kargak. Lege konstitutiboen aldetik lau bide daude: elastikotasun lineala, hiperelastikotasuna, elastoplastikotasuna eta helburu orokorreko lege konstitutiboa; bakoitza gako-hitz independente baten bidez aktibatzen da. Kanpoko kargen aldetik, erabiltzaileak prestatutako kanpo-fitxategi batetik karga-informazioa irakurri eta karga-bektore globalari zein hondar-bektoreari gehitzeko bide bat dago. Hedapen bakoitza FrontISTR banaketarekin batera ematen den txantiloi-fitxategia editatu eta programa nagusia berreraiki ondoren erabil daiteke.

Hedapen-kategoria Analisi-kontroleko gako-hitza Erabiltzaile-azpierrutina nagusiak Editatu beharreko txantiloia
Erabiltzailearen elastikotasun lineala !ELASTIC, TYPE=USER uElasticMatrix, uElasticUpdate fistr1/src/lib/user/uelastic.f90
Erabiltzailearen hiperelastikotasuna !HYPERELASTIC, TYPE=USER uElasticMatrix, uElasticUpdate fistr1/src/lib/user/uelastic.f90
Erabiltzailearen elastoplastikotasuna (plastifikazio-funtzioa eta itzulera-mapaketa) !PLASTIC, YIELD=USER uElastoPlasticMatrix, uBackwardEuler, uElastoPlasticNumStatus fistr1/src/lib/user/uyield.f90
Helburu orokorreko erabiltzailearen lege konstitutiboa !USER_MATERIAL uMatlMatrix, uUpdate fistr1/src/lib/user/umat.f90
Erabiltzaileak definitutako kanpoko karga !ULOAD, FILE=<fname> ureadload, uloading, uResidual fistr1/src/lib/user/uload.f90

Erabiltzaileak definitutako gogortze-legeak ez dira onartzen; hau da, ezin da integratutako plastifikazio-funtzioa mantendu eta gogortze-kurba bakarrik erabiltzailearen inplementazio batekin ordeztu. Erabiltzaileak definitutako gogortze-kurba behar bada, !PLASTIC, YIELD=USER hautatu eta lege konstitutibo elastoplastiko osoa erabiltzailearen inplementazioarekin ordeztu behar da. Erabiltzaileak definitutako muga-baldintzak eta berrabiaraztean erabiltzaile-prozesamendua egiteko hedapen-puntuak ere ez dira onartzen.

!CREEP gako-hitzean TYPE=USER ez da onartzen. Denboraren mendeko lege konstitutibo bat erabiltzaileak inplementatzeko, erabili !USER_MATERIAL.

Erabiltzailearen lege konstitutiboak

Erabiltzailearen lege konstitutiboek kanpoko azpierrutina batean inplementatzeko aukera ematen dute integratutako material-ereduekin adierazi ezin diren tentsioaren eta deformazio unitarioaren arteko erlazioak. Dagokion integratutako lege konstitutiboaren esparruaren arabera lau bide daude: erabiltzailearen elastikotasun lineala, erabiltzailearen hiperelastikotasuna, erabiltzailearen elastoplastikotasuna eta helburu orokorreko erabiltzailearen lege konstitutiboa. Bide guztietan, analisi-kontroleko datuen !MATERIAL blokearen barruan dagokion gako-hitzean TYPE=USER edo YIELD=USER zehazten da. Gehienez 100 erabiltzaile-konstante zehaztu daitezke, eta azpierrutinari pasatzen zaizkio.

Erabiltzailearen elastikotasun lineala

Erabiltzailearen elastikotasun lineala deformazio infinitesimalaren esparruan erabiltzaileak matrize elastikoa kalkulatzeko bidea da. Analisi-kontroleko datuetan !ELASTIC, TYPE=USER zehazten denean, FrontISTR-k deformazio infinitesimaleko lege konstitutibo gisa tratatzen du. Elementuaren zurruntasuna kalkulatzean uElasticMatrix deitzen da, zeinak \(D\) matrize elastikoa itzultzen duen; tentsioa eguneratzean, berriz, uElasticUpdate deitzen da, zeinak tentsioa itzultzen duen. Ez da integratutako eredu hiperelastiko edo elastoplastiko batekin batera erabili behar.

Erabiltzailearen hiperelastikotasuna

Erabiltzailearen hiperelastikotasuna deformazio handien (Total Lagrange) esparruan deformazio unitarioaren energia-funtzioaren deribatuetatik tentsioa eta zurruntasun tangentziala kalkulatzeko bidea da. Analisi-kontroleko datuetan !HYPERELASTIC, TYPE=USER zehazten da. Deitzen diren azpierrutinak erabiltzailearen elastikotasun linealeko berberak dira, uElasticMatrix eta uElasticUpdate, eta fistr1/src/lib/user/uelastic.f90 txantiloia ere partekatzen da. Gako-hitzaren zehaztapenaren arabera FrontISTR-k inplementazioa deformazio infinitesimal gisa edo Total Lagrange gisa tratatzen duenez, txantiloi bera ezin da aldi berean erabili deformazio infinitesimaleko eta deformazio handiko inplementazioetarako. Bi lege konstitutiboetako baterako inplementatu behar da.

Erabiltzailearen elastoplastikotasuna

Erabiltzailearen elastoplastikotasuna plastifikazio-funtzioa eta itzulera-mapaketaren prozedura erabiltzaileak inplementatzeko bidea da. Analisi-kontroleko datuetan !PLASTIC, YIELD=USER zehazten da. Horrek Mises, Mohr-Coulomb eta Drucker-Prager integratutako plastifikazio-funtzioetatik independentea den adar bat aktibatzen du. Elementuaren zurruntasuna kalkulatzean uElastoPlasticMatrix deitzen da, zeinak \(D\) zurruntasun tangentzial elastoplastikoa itzultzen duen; tentsioa eguneratzean uBackwardEuler deitzen da, zeinak probako tentsioa tentsio errealera mapatu eta egoera-aldagaiak eguneratzen dituen; eta Gauss puntuak hasieratzean uElastoPlasticNumStatus deitzen da, mantendu beharreko balio errealeko egoera-aldagaien kopurua itzultzeko. Gogortze-kurba bakarrik erabiltzailearen inplementazio batekin ordezteko biderik ez dago. Gogortze-kurba bakarrik pertsonalizatu nahi bada ere, bide hau erabili behar da lege konstitutibo elastoplastiko osoa erabiltzailearen inplementazioarekin ordezteko.

Helburu orokorreko erabiltzailearen lege konstitutiboa

Helburu orokorreko erabiltzailearen lege konstitutiboa elastikotasunaren, hiperelastikotasunaren edo elastoplastikotasunaren esparruetan sartzen ez diren lege konstitutiboak inplementatzeko bidea da. Analisi-kontroleko datuetan !USER_MATERIAL zehazten da. Lehenespenez Updated Lagrange esparruan tratatzen da; KIRCHHOFF zehazten denean, Total Lagrange gisa tratatzen da. Egoera-aldagaien kopurua NSTATUS bidez zehazten da. Elementuaren zurruntasuna kalkulatzean uMatlMatrix deitzen da, zeinak \(D\) zurruntasun tangentziala itzultzen duen; tentsioa eguneratzean uUpdate deitzen da, zeinak tentsioa eta egoera-aldagaiak eguneratzen dituen.

Erabiltzaile-konstanteak eta egoera-aldagaiak pasatzea

!ELASTIC, TYPE=USER, !HYPERELASTIC, TYPE=USER eta !USER_MATERIAL bideetan, analisi-kontroleko datu-lerroetan idatzitako erabiltzaile-konstanteak —gehienez 100— zuzenean pasatzen zaizkio azpierrutinari matl argumentuaren bidez. !PLASTIC, YIELD=USER bidean, !ELASTIC bidez zehaztutako konstante elastikoak eta !PLASTIC datu-lerroen bidez emandako erabiltzaile-konstanteak pasatzen dira.

Helburu orokorreko erabiltzailearen lege konstitutiboan eta !PLASTIC, YIELD=USER bidean, aurreko urratseko historia-informazioa —adibidez, deformazio unitario plastikoa, atzerako tentsioa eta kaltea— erabiltzailearen inplementazioari pasa dakioke fstat egoera-aldagaiaren bidez, eta urratsaren amaieran berriro idatz daiteke. Egoera-aldagaien kopurua helburu orokorreko erabiltzailearen lege konstitutiboan !USER_MATERIAL-eko NSTATUS bidez zehazten da; !PLASTIC, YIELD=USER bidean, berriz, uElastoPlasticNumStatus-en itzulera-balioak zehazten du.

Erabiltzaileak definitutako kanpoko kargak

Erabiltzaileak definitutako kanpoko kargek integratutako karga kontzentratu, karga banatu edo bolumen-indarren bidez adierazi ezin diren kanpoko indarrak erabiltzaile-azpierrutina batean definitzeko bidea eskaintzen dute. Analisi-kontroleko datuetan !ULOAD, FILE=<fname> idazten denean, FrontISTR-k zehaztutako fitxategi-izena ureadload azpierrutinari pasatzen dio, eta erabiltzailearen inplementazioak irakurritako informazioa moduluko datu gisa gordetzen da.

!ULOAD aktibatzean hiru azpierrutina hauek erabiltzen dira.

  • ureadload: analisia hastean, kontrol-fitxategian zehaztutako kanpo-fitxategitik erabiltzaileak definitutako kargak irakurtzen ditu. Erabiltzailearen inplementazioak fitxategia ireki eta beharrezko datuak moduluko aldagaietan gordetzen ditu.
  • uloading: urrats bakoitzeko kanpoko karga-bektorea muntatzean deitzen da, eta erabiltzailearen karga karga-bektore globalari gehitzen dio. Uneko urrats-zenbakia eta karga-faktorea argumentu gisa pasatzen dira.
  • uResidual: iterazio bakoitzeko hondar-bektorea muntatzean deitzen da, eta erabiltzailearen kargaren ekarpena hondar-bektore globalari gehitzen dio. Iterazio ez-linealetatik zein oreka-kalkuluetatik deitzen da.

Ez dago erabiltzaileak definitutako muga-baldintzetarako hedapen-punturik, hala nola agindutako desplazamenduaren edo kontaktu-baldintzen erabiltzaile-hedapenetarako. Kanpoko indarra ez den beste erabiltzaile-hedapen bat behar bada, erabili dagokion integratutako gako-hitza edo erabiltzailearen lege konstitutiboetako bide bat.

Erabiltzaile-azpierrutinak inplementatzeko prozedura

Erabiltzaile-azpierrutina bat erabiltzeko, FrontISTR-ren iturburu-banaketarekin batera ematen den txantiloi-fitxategia editatu eta ondoren FrontISTR berreraiki behar da. Banatutako bitarretan ezin dira erabiltzaile-azpierrutinak ordeztu; beraz, erabiltzaile-hedapen bat erabiltzeko FrontISTR iturburutik eraiki ahal izateko ingurunea prestatu behar da.

Erabiltzaile-azpierrutinen txantiloiak fistr1/src/lib/user/ direktorioaren azpian daude, eta hedapen-kategoria bakoitzerako editatu beharreko fitxategia zehaztuta dago; fitxategi-izenak Funtzioen ikuspegi orokorra ataleko taulan ageri dira. Hasierako egoeran, fitxategiek azpierrutinaren gorputza hutsik edo elastikotasun linealeko adibide-inplementazio bat dute; erabiltzaileak bere lege konstitutiboa edo karga-definizioa gehitzen du bertan. Txantiloia editatu ondoren, FrontISTR ohiko moduan berreraikitzen da CMake erabiliz, eta analisia lortutako fistr1 exekutagarriarekin egiten da.

Azpierrutinen argumentuen esanahia, egoera-aldagaien arrayen erabilera eta berreraikitzean kontuan hartu beharreko alderdiak kodeketa-gidako dagozkien orrietan azaltzen dira.

Lotutako gaiak