Хэрэглэгчийн дэд программын өргөтгөл¶
FrontISTR нь үндсэн эх кодыг өөрчлөхгүйгээр функцийг өргөтгөх хэрэглэгчийн дэд программуудын багцыг хангана. Үүнд материалын хамаарлын хуулийн хэрэглэгчийн хэрэгжүүлэлт болон хэрэглэгчийн тодорхойлсон гадаад ачааллыг нэгтгэх боломж багтана. Энэ бүлэгт боломжтой өргөтгөлийн цэгүүд болон тус бүрийг дуудах шинжилгээний удирдлагын файлын түлхүүр үгсийг жагсаана. Дэд программын аргументууд болон дахин бүтээх процедурын дэлгэрэнгүйг Хэрэглэгчийн дэд программ (Кодчиллын гарын авлага)-аас үзнэ үү.
Функцийн ерөнхий тойм¶
Хэрэглэгчийн дэд программын өргөтгөлийн цэгүүдийг материалын хамаарлын хууль ба гадаад ачаалал гэсэн 2 ангилалд хуваана. Материалын хамаарлын хууль талд шугаман уян харимхай, хэт уян харимхай, уян-хуванцар, ерөнхий зориулалтын материалын хамаарлын хууль гэсэн 4 дуудах зам байх бөгөөд тус бүрийг бие даасан түлхүүр үгээр идэвхжүүлнэ. Гадаад ачааллын талд хэрэглэгчийн бэлтгэсэн гадаад файлаас ачааллын мэдээллийг уншиж, глобал ачааллын вектор ба үлдэгдлийн векторт нэмэх зам бий. Өргөтгөл бүр 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-ийг сонгож, уян-хуванцар материалын хамаарлын хуулийг бүхэлд нь хэрэглэгчийн хэрэгжүүлэлтээр солино. Хэрэглэгчийн хилийн нөхцөл болон дахин эхлүүлэх үеийн хэрэглэгчийн боловсруулалтын өргөтгөлийн цэгүүд дэмжигдэхгүй.
!CREEP-ийн TYPE=USER дэмжигдэхгүй. Хугацаанаас хамаарах материалын хамаарлын хуулийг хэрэглэгчийн өргөтгөлөөр хэрэгжүүлэхдээ !USER_MATERIAL-ийг ашиглана.
Хэрэглэгчийн материалын хамаарлын хуулиуд¶
Хэрэглэгчийн материалын хамаарлын хууль нь суурилуулсан материалын загвараар илэрхийлж болохгүй хүчдэл-харьцангуй деформацийн хамаарлыг гадаад дэд программд хэрэгжүүлэх оролтын цэгийг өгнө. Харгалзах суурилуулсан материалын хамаарлын хуулийн хүрээнээс хамааран хэрэглэгчийн шугаман уян харимхай, хэрэглэгчийн хэт уян харимхай, хэрэглэгчийн уян-хуванцар, ерөнхий зориулалтын хэрэглэгчийн материалын хамаарлын хууль гэсэн 4 зам бий. Зам бүрт шинжилгээний удирдлагын өгөгдлийн !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 (туршилтын хүчдэлийг жинхэнэ хүчдэлд зураглаж төлөвийн хувьсагчдыг шинэчилнэ), Gauss цэгийн эхлүүлэлтэд 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 дуудагдахад дараах 3 дэд программ харгалзана.
ureadload: Шинжилгээ эхлэх үед удирдлагын файлд заасан гадаад файлаас хэрэглэгчийн тодорхойлсон ачааллыг уншина. Хэрэглэгчийн хэрэгжүүлэлт файлыг нээж, шаардлагатай өгөгдлийг модулийн хувьсагчдад хадгална.uloading: Алхам бүрийн гадаад ачааллын векторыг угсрах үед дуудагдаж, хэрэглэгчийн ачааллыг глобал ачааллын векторт нэмнэ. Одоогийн алхмын дугаар ба ачааллын коэффициентийг аргумент болгон дамжуулна.uResidual: Итераци бүрт үлдэгдлийн векторыг угсрах үед дуудагдаж, хэрэглэгчийн ачааллын хувь нэмрийг глобал үлдэгдлийн векторт нэмнэ. Шугаман бус итераци болон тэнцвэрийн тооцооллын аль алинаас дуудагдана.
Хэрэглэгчийн хилийн нөхцөлд (өгөгдсөн шилжилт эсвэл контакт нөхцөлийн хэрэглэгчийн өргөтгөл) өргөтгөлийн цэг байхгүй. Гадаад хүчнээс өөр хэрэглэгчийн өргөтгөл шаардлагатай бол харгалзах суурилуулсан түлхүүр үг эсвэл хэрэглэгчийн материалын хамаарлын хуулийн замыг ашиглана.
Хэрэглэгчийн дэд программ хэрэгжүүлэх дараалал¶
Хэрэглэгчийн дэд программ ашиглахын тулд FrontISTR-ийн эх кодын түгээлтэд багтсан загвар файлыг засварлаж, дараа нь FrontISTR-ийг дахин бүтээнэ. Түгээгдсэн бинар файл дахь хэрэглэгчийн дэд программыг сольж болохгүй тул хэрэглэгчийн өргөтгөл ашиглахад FrontISTR-ийг эх кодоос бүтээх боломжтой орчин шаардлагатай.
Хэрэглэгчийн дэд программын загварууд fistr1/src/lib/user/ доор байрлах бөгөөд өргөтгөлийн ангилал бүрт засварлах тусгай файл бий (файлын нэрийг Функцийн ерөнхий тойм дахь хүснэгтээс үзнэ үү). Анхны төлөвт файлууд нь хоосон дэд программын биет эсвэл шугаман уян харимхайн жишээ хэрэгжүүлэлт агуулна; хэрэглэгч өөрийн материалын хамаарлын хууль эсвэл ачааллын тодорхойлолтыг тэнд нэмнэ. Загварыг засварласны дараа FrontISTR-ийг CMake-аар ердийнхөөр дахин бүтээж, үүссэн fistr1 гүйцэтгэх файлаар шинжилгээг ажиллуулна.
Дэд программын аргументуудын утга, төлөвийн хувьсагчийн массивын боловсруулалт, дахин бүтээх үеийн анхаарах зүйлс зэрэг дэлгэрэнгүйг кодчиллын гарын авлагын харгалзах хуудсуудаас өгсөн.
- Хэрэглэгчийн дэд программ (Тойм)
- Ерөнхий зориулалтын хэрэглэгчийн материалын хамаарлын хууль
umat.f - Хэрэглэгчийн уян-хуванцар
uyield.f - Хэрэглэгчийн тодорхойлсон гадаад ачаалал
uload.f - Хэрэглэгчийн шугаман уян харимхай ба хэрэглэгчийн хэт уян харимхай
uelastic.f
Холбогдох сэдвүүд¶
- Материалын өгөгдөл — материалын хамаарлын хуулийн сонголтууд ба суурилуулсан загваруудын жагсаалт
- Хилийн нөхцөл ба ачаалал — суурилуулсан хилийн нөхцөл ба ачаалал
- Хэрэглэгчийн дэд программ (Кодчиллын гарын авлага) — дэд программын аргументын тодорхойлолт ба хэрэгжүүлэлтийн дүрэм
- !USER_MATERIAL — ерөнхий зориулалтын хэрэглэгчийн материалын хамаарлын хуулийн түлхүүр үгийн синтакс
- !ELASTIC —
TYPE=USERагуулсан шугаман уян харимхайн түлхүүр үг - !HYPERELASTIC —
TYPE=USERагуулсан хэт уян харимхайн түлхүүр үг - !PLASTIC —
YIELD=USERагуулсан уян-хуванцарын түлхүүр үг