Skip to content

Пайдаланушы ішкі бағдарламалары арқылы кеңейту

FrontISTR негізгі бастапқы кодты өзгертпей-ақ функцияларды кеңейтуге арналған пайдаланушы ішкі бағдарламаларының жиынын ұсынады. Олар құрылымдық заңдарды пайдаланушының іске асыруын және пайдаланушы анықтаған сыртқы жүктемелерді біріктіруді қамтиды. Бұл тарауда қолжетімді кеңейту нүктелері және әрқайсысын шақыру үшін талдауды басқару файлында пайдаланылатын кілтсөздер тізімделеді. Ішкі бағдарлама аргументтері мен қайта құрастыру процедуралары туралы толық мәліметті Пайдаланушы ішкі бағдарламалары (кодтау нұсқаулығы) бөлімінен қараңыз.

Функцияларға жалпы шолу

Пайдаланушы ішкі бағдарламаларының кеңейту нүктелері екі санатқа бөлінеді: материалдың құрылымдық заңдары және сыртқы жүктемелер. Құрылымдық заңдар жағында сызықтық серпімділік, гиперсерпімділік, серпімді-пластикалылық және жалпы мақсаттағы құрылымдық заң үшін төрт шақыру жолы бар; әрқайсысы тәуелсіз кілтсөзбен белсендіріледі. Сыртқы жүктемелер жағында пайдаланушы дайындаған сыртқы файлдан жүктеме ақпаратын оқып, оны ғаламдық жүктеме векторына және қалдық векторына қосатын жол қарастырылған. Әр кеңейту FrontISTR таралымымен бірге берілген үлгі файлды өңдеп, негізгі бағдарламаны қайта құрастырғаннан кейін қолжетімді болады.

Кеңейту санаты Талдауды басқару кілтсөзі Негізгі пайдаланушы ішкі бағдарламалары Өңделетін үлгі
Пайдаланушының сызықтық серпімділігі !ELASTIC, TYPE=USER uElasticMatrix, uElasticUpdate fistr1/src/lib/user/uelastic.f90
Пайдаланушының гиперсерпімділігі !HYPERELASTIC, TYPE=USER uElasticMatrix, uElasticUpdate fistr1/src/lib/user/uelastic.f90
Пайдаланушының серпімді-пластикалылығы (аққыштық функциясы және кері проекциялау) !PLASTIC, YIELD=USER uElastoPlasticMatrix, uBackwardEuler, uElastoPlasticNumStatus fistr1/src/lib/user/uyield.f90
Жалпы мақсаттағы пайдаланушы құрылымдық заңы !USER_MATERIAL uMatlMatrix, uUpdate fistr1/src/lib/user/umat.f90
Пайдаланушы анықтаған сыртқы жүктеме !ULOAD, FILE=<fname> ureadload, uloading, uResidual fistr1/src/lib/user/uload.f90

Пайдаланушы анықтайтын қатаю заңдары (кіріктірілген аққыштық функциясын сақтап, тек қатаю қисығын пайдаланушы іске асыруымен ауыстыратын жол) қолдау таппайды. Егер пайдаланушы анықтайтын қатаю қисығы қажет болса, !PLASTIC, YIELD=USER таңдап, бүкіл серпімді-пластикалық құрылымдық заңды пайдаланушы іске асыруымен ауыстырыңыз. Пайдаланушы шекаралық шарттары және қайта іске қосу кезіндегі пайдаланушы өңдеуіне арналған кеңейту нүктелері қолдау таппайды.

TYPE=USER параметрі бар !CREEP қолдау таппайды. Уақытқа тәуелді құрылымдық заңды пайдаланушы кеңейтуі ретінде іске асыру үшін !USER_MATERIAL пайдаланыңыз.

Пайдаланушы құрылымдық заңдары

Пайдаланушы құрылымдық заңдары кіріктірілген материал модельдерімен өрнектеуге келмейтін кернеу–деформация тәуелділіктерін сыртқы ішкі бағдарламада іске асыруға арналған кіру нүктесін береді. Тиісті кіріктірілген құрылымдық заңның шеңберіне қарай төрт жол бар: пайдаланушының сызықтық серпімділігі, пайдаланушының гиперсерпімділігі, пайдаланушының серпімді-пластикалылығы және жалпы мақсаттағы пайдаланушы құрылымдық заңы. Әр жолда талдауды басқару деректерінің !MATERIAL блогында тиісті кілтсөз үшін TYPE=USER немесе YIELD=USER көрсетіңіз. 100-ге дейін пайдаланушы тұрақтысын көрсетуге болады және олар ішкі бағдарламаға беріледі.

Пайдаланушының сызықтық серпімділігі

Пайдаланушының сызықтық серпімділігі — шексіз кіші деформация шеңберінде серпімділік матрицасын пайдаланушы өзі есептейтін жол. Талдауды басқару деректерінде !ELASTIC, TYPE=USER көрсетілгенде, FrontISTR оны шексіз кіші деформация құрылымдық заңы ретінде өңдейді және элемент қатаңдығын есептеу кезінде uElasticMatrix (серпімділік матрицасы \(D\) қайтарады), ал кернеуді жаңарту кезінде uElasticUpdate (кернеуді қайтарады) шақырады. Оны бар гиперсерпімді немесе серпімді-пластикалық модельмен бірге пайдаланбаңыз.

Пайдаланушының гиперсерпімділігі

Пайдаланушының гиперсерпімділігі — үлкен деформация (Total Lagrange) шеңберінде деформация энергиясы функциясының туындыларынан кернеу мен жанама қатаңдықты есептеу жолы. Талдауды басқару деректерінде !HYPERELASTIC, TYPE=USER көрсетіңіз. Шақырылатын ішкі бағдарламалар пайдаланушының сызықтық серпімділігіндегідей uElasticMatrix және uElasticUpdate, сондай-ақ бір fistr1/src/lib/user/uelastic.f90 үлгісі ортақ пайдаланылады. Кілтсөз параметрі FrontISTR іске асыруды шексіз кіші деформация ретінде ме, әлде Total Lagrange ретінде ме өңдейтінін ауыстыратындықтан, бір үлгіні шексіз кіші және үлкен деформация іске асыруларына бір уақытта қолдануға болмайды. Оны осы екі құрылымдық заңның біреуі ретінде іске асырыңыз.

Пайдаланушының серпімді-пластикалылығы

Пайдаланушының серпімді-пластикалылығы — аққыштық функциясы мен кері проекциялау процедурасын пайдаланушы іске асыратын жол. Талдауды басқару деректерінде !PLASTIC, YIELD=USER көрсетіңіз. Бұл кіріктірілген Mises, Mohr-Coulomb және Drucker-Prager аққыштық функцияларынан тәуелсіз тармаққа өтеді. Элемент қатаңдығын есептеу кезінде uElastoPlasticMatrix (серпімді-пластикалық жанама қатаңдық \(D\) қайтарады), кернеуді жаңарту кезінде uBackwardEuler (сынақ кернеуін нақты кернеуге проекциялап, күй айнымалыларын жаңартады), ал Гаусс нүктелерін инициализациялау кезінде uElastoPlasticNumStatus (сақталатын нақты мәнді күй айнымалыларының санын қайтарады) шақырылады. Тек қатаю қисығын пайдаланушы іске асыруымен ауыстыратын жол қолдау таппайды. Пайдаланушы анықтайтын қатаю қисығы ғана қажет болғанның өзінде, бүкіл серпімді-пластикалық құрылымдық заңды пайдаланушы іске асыруымен ауыстыру үшін осы жолды пайдаланыңыз.

Жалпы мақсаттағы пайдаланушы құрылымдық заңы

Жалпы мақсаттағы пайдаланушы құрылымдық заңы серпімді, гиперсерпімді немесе серпімді-пластикалық шеңберлерге сыймайтын құрылымдық заңдарды іске асыруға арналған жол. Талдауды басқару деректерінде !USER_MATERIAL көрсетіңіз. Әдепкі бойынша ол Updated Lagrange шеңберінде өңделеді; KIRCHHOFF көрсетілгенде Total Lagrange ретінде өңделеді. Күй айнымалыларының саны NSTATUS арқылы көрсетіледі. Элемент қатаңдығын есептеу кезінде uMatlMatrix (жанама қатаңдық \(D\) қайтарады), ал кернеуді жаңарту кезінде uUpdate (кернеу мен күй айнымалыларын жаңартады) шақырылады.

Пайдаланушы тұрақтылары мен күй айнымалыларын беру

!ELASTIC, TYPE=USER, !HYPERELASTIC, TYPE=USER және !USER_MATERIAL жолдарының әрқайсысында талдауды басқару деректерінің деректер жолдарына жазылған пайдаланушы тұрақтылары (100-ге дейін) matl аргументі арқылы ішкі бағдарламаға тікелей беріледі. !PLASTIC, YIELD=USER үшін !ELASTIC арқылы көрсетілген серпімділік тұрақтылары және !PLASTIC деректер жолдары арқылы берілген пайдаланушы тұрақтылары өткізіледі.

Жалпы мақсаттағы пайдаланушы құрылымдық заңы және !PLASTIC, YIELD=USER үшін алдыңғы қадамның тарих ақпараты (пластикалық деформация, кері кернеу және зақым сияқты) fstat күй айнымалысы арқылы пайдаланушы іске асыруына берілуі және қадам соңында кері жазылуы мүмкін. Күй айнымалыларының саны жалпы мақсаттағы пайдаланушы құрылымдық заңы үшін !USER_MATERIAL және оның NSTATUS параметрімен, ал !PLASTIC, YIELD=USER үшін uElastoPlasticNumStatus қайтарған мәнмен анықталады.

Пайдаланушы анықтайтын сыртқы жүктемелер

Пайдаланушы анықтайтын сыртқы жүктемелер кіріктірілген шоғырланған жүктемелермен, таралған жүктемелермен немесе көлемдік күштермен өрнектеуге келмейтін сыртқы күштерді анықтауға жол береді. Талдауды басқару деректерінде !ULOAD, FILE=<fname> жазылғанда, FrontISTR көрсетілген файл атауын ureadload ішкі бағдарламасына береді, ал пайдаланушы іске асыруы оқыған ақпарат модуль деректері ретінде сақталады.

!ULOAD шақыруына келесі үш ішкі бағдарлама сәйкес келеді.

  • ureadload: Талдау басында басқару файлында көрсетілген сыртқы файлдан пайдаланушы анықтаған жүктемелерді оқиды. Пайдаланушы іске асыруы файлды ашып, қажетті деректерді модуль айнымалыларында сақтайды.
  • uloading: Әр қадам үшін сыртқы жүктеме векторын жинақтау кезінде шақырылады және пайдаланушы жүктемесін ғаламдық жүктеме векторына қосады. Ағымдағы қадам нөмірі мен жүктеме коэффициенті аргумент ретінде беріледі.
  • uResidual: Әр итерацияда қалдық векторын жинақтау кезінде шақырылады және пайдаланушы жүктемесінің үлесін ғаламдық қалдық векторына қосады. Ол сызықтық емес итерациялардан да, тепе-теңдік есептеулерінен де шақырылады.

Пайдаланушы шекаралық шарттарына (берілген орын ауыстыру немесе жанасу шарттарын пайдаланушы кеңейтуіне) арналған кеңейту нүктесі берілмейді. Сыртқы күштен басқа пайдаланушы кеңейтуі қажет болса, тиісті кіріктірілген кілтсөзді немесе пайдаланушы құрылымдық заңының жолын пайдаланыңыз.

Пайдаланушы ішкі бағдарламаларын іске асыру процедурасы

Пайдаланушы ішкі бағдарламасын пайдалану үшін FrontISTR бастапқы код таралымына кіретін үлгі файлды өңдеп, содан кейін FrontISTR-ді қайта құрастырыңыз. Таратылған бинарлық файлдарда пайдаланушы ішкі бағдарламаларын ауыстыру мүмкін емес, сондықтан пайдаланушы кеңейтуін пайдалану үшін FrontISTR-ді бастапқы кодтан құрастыруға болатын орта қажет.

Пайдаланушы ішкі бағдарламаларының үлгілері fistr1/src/lib/user/ ішінде орналасқан, әр кеңейту санаты үшін өңделетін нақты файл бар (файл атауларын Функцияларға жалпы шолу кестесінен қараңыз). Бастапқы күйінде файлдарда не бос ішкі бағдарлама денелері, не сызықтық серпімділіктің үлгі іске асыруы болады; пайдаланушылар сол жерге өз құрылымдық заңын немесе жүктеме анықтамасын қосады. Үлгіні өңдегеннен кейін FrontISTR-ді CMake арқылы қалыпты түрде қайта құрастырып, алынған fistr1 орындалатын файлымен талдауды іске қосыңыз.

Ішкі бағдарлама аргументтерінің мағынасы, күй айнымалылары массивтерін өңдеу және қайта құрастыру кезіндегі сақтық шаралары сияқты мәліметтер кодтау нұсқаулығының тиісті беттерінде берілген.

Сондай-ақ қараңыз

AI-assisted translation May contain errors Official docs Status