İstifadəçi altproqramı genişləndirmələri¶
FrontISTR əsas mənbə kodunu dəyişdirmədən funksionallığı genişləndirmək üçün bir sıra istifadəçi altproqramları təqdim edir. Bunlar konstitutiv qanunların istifadəçi reallaşdırmalarını və istifadəçinin müəyyən etdiyi xarici yüklərin inteqrasiyasını əhatə edir. Bu fəsildə mövcud genişləndirmə nöqtələri və onların hər birini çağırmaq üçün analiz idarəetmə faylında istifadə olunan açar sözlər sadalanır. Altproqram arqumentlərinin və yenidən qurma prosedurlarının təfərrüatları üçün İstifadəçi altproqramları (Kodlaşdırma təlimatı) bölməsinə baxın.
Funksiyalara ümumi baxış¶
İstifadəçi altproqramı genişləndirmə nöqtələri iki kateqoriyaya bölünür: materialın konstitutiv qanunları və xarici yüklər. Konstitutiv qanun tərəfində xətti elastiklik, hiperelastiklik, elastoplastiklik və ümumi təyinatlı konstitutiv qanun olmaqla dörd çağırış yolu var və hər biri ayrıca açar sözlə aktivləşdirilir. Xarici yük tərəfində isə istifadəçinin hazırladığı xarici fayldan yük məlumatlarını oxuyan və onları qlobal yük vektoruna və qalıq vektoruna əlavə edən yol təqdim olunur. Hər genişləndirmə FrontISTR paylanmasına daxil olan şablon faylı redaktə etdikdən və əsas proqramı yenidən qurduqdan sonra istifadə oluna bilər.
| Genişləndirmə kateqoriyası | Analiz idarəetmə açar sözü | Əsas istifadəçi altproqramları | Redaktə ediləcək şablon |
|---|---|---|---|
| İstifadəçi xətti elastikliyi | !ELASTIC, TYPE=USER | uElasticMatrix, uElasticUpdate | fistr1/src/lib/user/uelastic.f90 |
| İstifadəçi hiperelastikliyi | !HYPERELASTIC, TYPE=USER | uElasticMatrix, uElasticUpdate | fistr1/src/lib/user/uelastic.f90 |
| İstifadəçi elastoplastikliyi (axma funksiyası və qaytarma xəritələnməsi) | !PLASTIC, YIELD=USER | uElastoPlasticMatrix, uBackwardEuler, uElastoPlasticNumStatus | fistr1/src/lib/user/uyield.f90 |
| Ümumi təyinatlı istifadəçi konstitutiv qanunu | !USER_MATERIAL | uMatlMatrix, uUpdate | fistr1/src/lib/user/umat.f90 |
| İstifadəçinin müəyyən etdiyi xarici yük | !ULOAD, FILE=<fname> | ureadload, uloading, uResidual | fistr1/src/lib/user/uload.f90 |
İstifadəçinin müəyyən etdiyi sərtləşmə qanunları (daxili axma funksiyasını saxlayaraq yalnız sərtləşmə əyrisini istifadəçi reallaşdırması ilə əvəz edən yol) dəstəklənmir. İstifadəçi tərəfindən müəyyən edilmiş sərtləşmə əyrisi tələb olunursa, !PLASTIC, YIELD=USER seçin və bütün elastoplastik konstitutiv qanunu istifadəçi reallaşdırması ilə əvəz edin. İstifadəçi sərhəd şərtləri və restart zamanı istifadəçi emalı üçün genişləndirmə nöqtələri dəstəklənmir.
!CREEP daxilində TYPE=USER dəstəklənmir. Zamandan asılı konstitutiv qanunu istifadəçi genişləndirməsi kimi reallaşdırmaq üçün !USER_MATERIAL istifadə edin.
İstifadəçi konstitutiv qanunları¶
İstifadəçi konstitutiv qanunları daxili material modelləri ilə ifadə edilə bilməyən gərginlik-deformasiya münasibətlərini xarici altproqramda reallaşdırmaq üçün giriş nöqtəsi təmin edir. Müvafiq daxili konstitutiv qanunun çərçivəsinə görə dörd yol mövcuddur: istifadəçi xətti elastikliyi, istifadəçi hiperelastikliyi, istifadəçi elastoplastikliyi və ümumi təyinatlı istifadəçi konstitutiv qanunu. Hər bir yolda analiz idarəetmə məlumatlarındakı !MATERIAL blokunda müvafiq açar söz üçün TYPE=USER və ya YIELD=USER göstərin. 100-ə qədər istifadəçi sabiti göstərilə bilər və onlar altproqrama ötürülür.
İstifadəçi xətti elastikliyi¶
İstifadəçi xətti elastikliyi istifadəçinin sonsuz kiçik deformasiya çərçivəsində elastiklik matrisini hesabladığı yoldur. Analiz idarəetmə məlumatlarında !ELASTIC, TYPE=USER göstərildikdə FrontISTR bunu sonsuz kiçik deformasiya konstitutiv qanunu kimi qəbul edir və element sərtliyi hesablanarkən uElasticMatrix-i (elastiklik matrisi \(D\)-ni qaytarır), gərginlik yenilənərkən isə uElasticUpdate-i (gərginliyi qaytarır) çağırır. Onu mövcud hiperelastik və ya elastoplastik modellə birlikdə istifadə etməyin.
İstifadəçi hiperelastikliyi¶
İstifadəçi hiperelastikliyi böyük deformasiya (Total Lagrange) çərçivəsində deformasiya enerjisi funksiyasının törəmələrindən gərginlik və toxunan sərtliyin hesablanması yoludur. Analiz idarəetmə məlumatlarında !HYPERELASTIC, TYPE=USER göstərin. Çağırılan altproqramlar istifadəçi xətti elastikliyində olduğu kimi eyni uElasticMatrix və uElasticUpdate-dir və eyni fistr1/src/lib/user/uelastic.f90 şablonu paylaşılır. Açar sözün seçimi FrontISTR-in reallaşdırmanı sonsuz kiçik deformasiya və ya Total Lagrange kimi qəbul etməsini dəyişdirdiyi üçün eyni şablon həm sonsuz kiçik, həm də böyük deformasiya reallaşdırmaları üçün eyni vaxtda istifadə edilə bilməz. Onu bu iki konstitutiv qanundan biri kimi reallaşdırın.
İstifadəçi elastoplastikliyi¶
İstifadəçi elastoplastikliyi istifadəçinin axma funksiyasını və qaytarma xəritələnməsi prosedurunu reallaşdırdığı yoldur. Analiz idarəetmə məlumatlarında !PLASTIC, YIELD=USER göstərin. Bu, daxili Mises, Mohr-Coulomb və Drucker-Prager axma funksiyalarından müstəqil budağa daxil olur. Element sərtliyi hesablanarkən uElastoPlasticMatrix (elastoplastik toxunan sərtlik \(D\)-ni qaytarır), gərginlik yenilənərkən uBackwardEuler (sınaq gərginliyini həqiqi gərginliyə xəritələyir və vəziyyət dəyişənlərini yeniləyir), Qauss nöqtələrinin başlanğıc qurulması zamanı isə uElastoPlasticNumStatus (saxlanılacaq həqiqi qiymətli vəziyyət dəyişənlərinin sayını qaytarır) çağırılır. Yalnız sərtləşmə əyrisini istifadəçi reallaşdırması ilə əvəz edən yol dəstəklənmir. Hətta yalnız istifadəçinin müəyyən etdiyi sərtləşmə əyrisi tələb olunduqda belə, bütün elastoplastik konstitutiv qanunu istifadəçi reallaşdırması ilə əvəz etmək üçün bu yoldan istifadə edin.
Ümumi təyinatlı istifadəçi konstitutiv qanunu¶
Ümumi təyinatlı istifadəçi konstitutiv qanunu elastik, hiperelastik və ya elastoplastik çərçivələrə uyğun gəlməyən konstitutiv qanunları reallaşdırmaq üçün yoldur. Analiz idarəetmə məlumatlarında !USER_MATERIAL göstərin. Standart olaraq Updated Lagrange çərçivəsində emal edilir; KIRCHHOFF göstərildikdə isə Total Lagrange kimi emal edilir. Vəziyyət dəyişənlərinin sayı NSTATUS ilə göstərilir. Element sərtliyi hesablanarkən uMatlMatrix (toxunan sərtlik \(D\)-ni qaytarır), gərginlik yenilənərkən isə uUpdate (gərginliyi və vəziyyət dəyişənlərini yeniləyir) çağırılır.
İstifadəçi sabitlərinin və vəziyyət dəyişənlərinin ötürülməsi¶
!ELASTIC, TYPE=USER, !HYPERELASTIC, TYPE=USER və !USER_MATERIAL yollarının hər biri üçün analiz idarəetmə məlumatlarının məlumat sətirlərində yazılan istifadəçi sabitləri (100-ə qədər) matl arqumenti vasitəsilə birbaşa altproqrama ötürülür. !PLASTIC, YIELD=USER üçün !ELASTIC ilə göstərilən elastiklik sabitləri və !PLASTIC məlumat sətirləri ilə verilən istifadəçi sabitləri ötürülür.
Ümumi təyinatlı istifadəçi konstitutiv qanunu və !PLASTIC, YIELD=USER üçün əvvəlki addımın tarixçə məlumatları (məsələn, plastik deformasiya, əks gərginlik və zədələnmə) fstat vəziyyət dəyişəni vasitəsilə istifadəçi reallaşdırmasına ötürülə və addımın sonunda geri yazıla bilər. Vəziyyət dəyişənlərinin sayı ümumi təyinatlı istifadəçi konstitutiv qanunu üçün !USER_MATERIAL və onun NSTATUS parametrinə, !PLASTIC, YIELD=USER üçün isə uElastoPlasticNumStatus-un qaytardığı qiymətə əsasən müəyyən edilir.
İstifadəçinin müəyyən etdiyi xarici yüklər¶
İstifadəçinin müəyyən etdiyi xarici yüklər daxili cəmlənmiş yüklər, paylanmış yüklər və ya həcm qüvvələri ilə ifadə edilə bilməyən xarici qüvvələri müəyyən etmək üçün yol təqdim edir. Analiz idarəetmə məlumatlarında !ULOAD, FILE=<fname> yazıldıqda FrontISTR göstərilən fayl adını ureadload-a ötürür və istifadəçi reallaşdırmasının oxuduğu məlumatlar modul məlumatı kimi saxlanılır.
Aşağıdakı üç altproqram !ULOAD çağırışına uyğundur.
ureadload: Analizin başlanğıcında idarəetmə faylında göstərilən xarici fayldan istifadəçinin müəyyən etdiyi yükləri oxuyur. İstifadəçi reallaşdırması faylı açır və tələb olunan məlumatları modul dəyişənlərində saxlayır.uloading: Hər addım üçün xarici yük vektoru yığılarkən çağırılır və istifadəçi yükünü qlobal yük vektoruna əlavə edir. Cari addım nömrəsi və yük əmsalı arqument kimi ötürülür.uResidual: Hər iterasiyada qalıq vektoru yığılarkən çağırılır və istifadəçi yükünün töhfəsini qlobal qalıq vektoruna əlavə edir. O, həm qeyri-xətti iterasiyalardan, həm də tarazlıq hesablamalarından çağırılır.
İstifadəçi sərhəd şərtləri (təyin olunmuş yerdəyişmə və ya kontakt şərtlərinin istifadəçi genişləndirmələri) üçün genişləndirmə nöqtəsi təqdim edilmir. Xarici qüvvədən başqa istifadəçi genişləndirməsi tələb olunursa, müvafiq daxili açar sözdən və ya istifadəçi konstitutiv qanunu yolundan istifadə edin.
İstifadəçi altproqramlarının reallaşdırılması proseduru¶
İstifadəçi altproqramından istifadə etmək üçün FrontISTR mənbə paylanmasına daxil olan şablon faylı redaktə edin və sonra FrontISTR-i yenidən qurun. Paylanmış binar fayllarda istifadəçi altproqramlarını əvəz etmək mümkün deyil; buna görə istifadəçi genişləndirməsi FrontISTR-in mənbədən qurula bildiyi mühit tələb edir.
İstifadəçi altproqramı şablonları fistr1/src/lib/user/ altında yerləşir və hər genişləndirmə kateqoriyası üçün ayrıca redaktə ediləcək fayl var (fayl adları üçün Funksiyalara ümumi baxış bölməsindəki cədvələ baxın). İlkin vəziyyətdə fayllarda ya boş altproqram gövdələri, ya da nümunə xətti-elastik reallaşdırma olur; istifadəçilər öz konstitutiv qanunlarını və ya yük təriflərini burada əlavə edirlər. Şablonu redaktə etdikdən sonra FrontISTR-i CMake ilə adi qaydada yenidən qurun və əldə edilən fistr1 icra faylı ilə analizi başladın.
Altproqram arqumentlərinin mənası, vəziyyət dəyişəni massivlərinin idarə edilməsi və yenidən qurma zamanı ehtiyat tədbirləri kimi təfərrüatlar kodlaşdırma təlimatının müvafiq səhifələrində verilir.
- İstifadəçi altproqramları (ümumi baxış)
- Ümumi təyinatlı istifadəçi konstitutiv qanunu
umat.f - İstifadəçi elastoplastikliyi
uyield.f - İstifadəçinin müəyyən etdiyi xarici yük
uload.f - İstifadəçi xətti elastikliyi və istifadəçi hiperelastikliyi
uelastic.f
Həmçinin baxın¶
- Material məlumatları — konstitutiv qanun seçimləri və daxili modellərin siyahısı
- Sərhəd şərtləri və yüklər — daxili sərhəd şərtləri və yüklər
- İstifadəçi altproqramları (Kodlaşdırma təlimatı) — altproqram arqumentlərinin spesifikasiyaları və reallaşdırma qaydaları
- !USER_MATERIAL — ümumi təyinatlı istifadəçi konstitutiv qanunu üçün açar söz sintaksisi
- !ELASTIC —
TYPE=USERdaxil olmaqla xətti-elastik açar söz - !HYPERELASTIC —
TYPE=USERdaxil olmaqla hiperelastik açar söz - !PLASTIC —
YIELD=USERdaxil olmaqla elastoplastik açar söz