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 छानी पूरै प्रत्यास्थ-प्लास्टिक संघटक नियमलाई प्रयोगकर्ता कार्यान्वयनले प्रतिस्थापन गर्नुहोस्। प्रयोगकर्ता सीमा सर्त वा पुनःसुरु हुँदा चल्ने प्रयोगकर्ता प्रक्रियाका विस्तार-बिन्दु पनि समर्थित छैनन्।

!CREEP मा TYPE=USER समर्थित छैन। समय-निर्भर संघटक नियम प्रयोगकर्ताले कार्यान्वयन गर्न !USER_MATERIAL प्रयोग गर्नुहोस्।

प्रयोगकर्ता संघटक नियम

प्रयोगकर्ता संघटक नियम अन्तर्निर्मित सामग्री मोडेलले व्यक्त गर्न नसक्ने प्रतिबल–विकृति सम्बन्धलाई बाह्य सबरुटिनबाट कार्यान्वयन गर्ने प्रवेशबिन्दु हो। सम्बन्धित अन्तर्निर्मित संघटक रूपरेखाअनुसार प्रयोगकर्ता रैखिक प्रत्यास्थता, प्रयोगकर्ता अतिप्रत्यास्थता, प्रयोगकर्ता प्रत्यास्थ-प्लास्टिकता र सामान्य प्रयोगकर्ता संघटक नियम गरी चार मार्ग छन्। सबै मार्गमा विश्लेषण नियन्त्रण डेटाको !MATERIAL ब्लकभित्र सम्बन्धित कुञ्जीशब्दमा TYPE=USER वा YIELD=USER थपिन्छ। अधिकतम 100 प्रयोगकर्ता स्थिराङ्क निर्दिष्ट गर्न सकिन्छ र ती सबरुटिनमा पठाइन्छन्।

प्रयोगकर्ता रैखिक प्रत्यास्थता

प्रयोगकर्ता रैखिक प्रत्यास्थता सानो विरूपणको रूपरेखामा प्रत्यास्थ म्याट्रिक्स प्रयोगकर्ताले गणना गर्ने मार्ग हो। विश्लेषण नियन्त्रण डेटामा !ELASTIC, TYPE=USER निर्दिष्ट गर्दा FrontISTR ले यसलाई सूक्ष्म-विरूपण संघटक नियमका रूपमा लिन्छ र तत्त्व कठोरता तथा प्रतिबल अद्यावधिकका समयमा uElasticMatrix (प्रत्यास्थ म्याट्रिक्स \(D\) फर्काउँछ) र uElasticUpdate (प्रतिबल फर्काउँछ) बोलाउँछ। यसलाई विद्यमान अतिप्रत्यास्थ वा प्रत्यास्थ-प्लास्टिक मोडेलसँग संयुक्त रूपमा प्रयोग गरिँदैन।

प्रयोगकर्ता अतिप्रत्यास्थता

प्रयोगकर्ता अतिप्रत्यास्थता ठूलो विरूपण (Total Lagrange) को रूपरेखामा विकृति-ऊर्जा फलनको अवकलजबाट प्रतिबल र स्पर्शरेखीय कठोरता गणना गर्ने मार्ग हो। विश्लेषण नियन्त्रण डेटामा !HYPERELASTIC, TYPE=USER निर्दिष्ट गरिन्छ। बोलाइने सबरुटिन प्रयोगकर्ता रैखिक प्रत्यास्थताकै uElasticMatrixuElasticUpdate हुन् र टेम्प्लेट पनि 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 सक्रिय हुँदा निम्न तीन सबरुटिन सम्बन्धित समयमा बोलाइन्छन्।

  • ureadload: विश्लेषण सुरु हुँदा नियन्त्रण फाइलमा निर्दिष्ट बाह्य फाइलबाट प्रयोगकर्ता-परिभाषित भार पढ्छ। प्रयोगकर्ता कार्यान्वयनले फाइल खोली आवश्यक डेटा मोड्युल चरमा राख्छ।
  • uloading: प्रत्येक चरणको बाह्य भार सदिश संयोजन गर्दा बोलाइन्छ र विश्वव्यापी भार सदिशमा प्रयोगकर्ता भार थप्छ। हालको चरण सङ्ख्या र भार गुणक आर्गुमेन्टका रूपमा दिइन्छन्।
  • uResidual: प्रत्येक पुनरावृत्तिमा अवशेष सदिश संयोजन गर्दा बोलाइन्छ र विश्वव्यापी अवशेष सदिशमा प्रयोगकर्ता भारको योगदान थप्छ। यो अरैखिक पुनरावृत्ति र सन्तुलन गणना दुवैबाट बोलाइन्छ।

प्रयोगकर्ता सीमा सर्त (निर्धारित विस्थापन वा सम्पर्क सर्तका प्रयोगकर्ता विस्तार) का लागि विस्तार-बिन्दु छैन। बाह्य बलबाहेक अरू प्रयोगकर्ता विस्तार आवश्यक भए सम्बन्धित अन्तर्निर्मित कुञ्जीशब्द वा प्रयोगकर्ता संघटक-नियम मार्ग प्रयोग गर्नुहोस्।

प्रयोगकर्ता सबरुटिन कार्यान्वयन प्रक्रिया

प्रयोगकर्ता सबरुटिन प्रयोग गर्न FrontISTR स्रोत वितरणमा भएको टेम्प्लेट फाइल सम्पादन गरी FrontISTR मुख्य कार्यक्रम पुनःनिर्माण गर्नुपर्छ। वितरण गरिएको बाइनरीमा प्रयोगकर्ता सबरुटिन प्रतिस्थापन गर्न नसकिने भएकाले प्रयोगकर्ता विस्तार प्रयोग गर्दा स्रोतबाट निर्माण गर्न मिल्ने वातावरण आवश्यक हुन्छ।

प्रयोगकर्ता-सबरुटिन टेम्प्लेटहरू fistr1/src/lib/user/ अन्तर्गत छन् र विस्तार वर्गअनुसार सम्पादन गर्ने फाइल निश्चित हुन्छ (फाइलनामका लागि कार्यक्षमताको समग्र चित्र को तालिका हेर्नुहोस्)। प्रारम्भिक अवस्थामा सबरुटिनको मुख्य भाग खाली वा रैखिक-प्रत्यास्थ नमुना कार्यान्वयन हुन्छ; प्रयोगकर्ताले यहीँ आफ्नो संघटक नियम वा भार परिभाषा थप्छ। टेम्प्लेट सम्पादन गरेपछि FrontISTR लाई सामान्य रूपमा CMake बाट पुनःनिर्माण गरी प्राप्त fistr1 कार्यान्वयनयोग्य फाइलले विश्लेषण चलाउनुहोस्।

सबरुटिन आर्गुमेन्टको अर्थ, अवस्था-चर एरेको व्यवस्थापन र पुनःनिर्माणका सावधानीहरूको विस्तृत जानकारी कोडिङ गाइडका निम्न पृष्ठमा छ।

सम्बन्धित विषयहरू

  • सामग्री डेटा — संघटक-नियम विकल्प र अन्तर्निर्मित मोडेलको सूची
  • सीमा सर्त र भार — अन्तर्निर्मित सीमा सर्त र भार
  • प्रयोगकर्ता सबरुटिन (कोडिङ गाइड) — सबरुटिन आर्गुमेन्ट विनिर्देश र कार्यान्वयन परिपाटी
  • !USER_MATERIAL — सामान्य प्रयोगकर्ता संघटक नियमको कुञ्जीशब्द वाक्यरचना
  • !ELASTICTYPE=USER सहित रैखिक-प्रत्यास्थ कुञ्जीशब्द
  • !HYPERELASTICTYPE=USER सहित अतिप्रत्यास्थता कुञ्जीशब्द
  • !PLASTICYIELD=USER सहित प्रत्यास्थ-प्लास्टिकता कुञ्जीशब्द