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 दिले जाते. बोलावल्या जाणाऱ्या उपक्रमिका वापरकर्ता रेषीय लवचिकतेप्रमाणेच 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 सक्रिय झाल्यावर पुढील तीन उपक्रमिका वापरले जातात.

  • ureadload: विश्लेषण सुरू होताना नियंत्रण फाइलने निर्दिष्ट केलेल्या बाह्य फाइलमधून वापरकर्ता भार वाचते. वापरकर्ता अंमलबजावणी फाइल उघडून आवश्यक डेटा मॉड्यूल चलांमध्ये साठवते.
  • uloading: प्रत्येक पायरीचा बाह्य भार सदिश असेंबल करताना बोलावले जाते आणि जागतिक भार सदिशात वापरकर्ता भार जोडते. वर्तमान पायरी क्रमांक आणि भार गुणक प्राचले म्हणून दिले जातात.
  • uResidual: प्रत्येक पुनरावृत्तीत अवशेष सदिश असेंबल करताना बोलावले जाते आणि जागतिक अवशेष सदिशात वापरकर्ता भाराचा वाटा जोडते. अरेषीय पुनरावृत्ती तसेच संतुलन गणना दोन्हीतून ते बोलावले जाते.

निर्धारित विस्थापन किंवा संपर्क अटींसाठी वापरकर्ता सीमा-अट विस्तार बिंदू उपलब्ध नाही. बाह्य भाराव्यतिरिक्त विस्तार आवश्यक असल्यास संबंधित अंगभूत कीवर्ड किंवा वापरकर्ता संघटक नियमाचा मार्ग वापरावा.

वापरकर्ता उपक्रमिका अंमलबजावणी प्रक्रिया

वापरकर्ता उपक्रमिका वापरण्यासाठी FrontISTR स्रोत वितरणातील नमुना फाइल संपादित करून FrontISTR पुन्हा बिल्ड करावे लागते. वितरित बायनरीमध्ये वापरकर्ता उपक्रमिका बदलता येत नसल्याने वापरकर्ता विस्तारासाठी स्रोत-बिल्ड वातावरण आवश्यक आहे.

वापरकर्ता उपक्रमिकांचे नमुने fistr1/src/lib/user/ खाली आहेत आणि विस्तार प्रकारानुसार संपादित करावयाची फाइल निश्चित आहे (फाइल नावांसाठी कार्यांचा आढावा मधील सारणी पहा). प्रारंभिक अवस्थेत उपक्रमिकेचा मुख्य भाग रिकामी किंवा रेषीय लवचिकतेची उदाहरण अंमलबजावणी असते; वापरकर्त्याने येथे स्वतःचा संघटक नियम किंवा भार परिभाषा लिहावी. नमुना संपादित केल्यानंतर FrontISTR नेहमीप्रमाणे CMake ने पुन्हा बिल्ड करा आणि तयार fistr1 कार्यवाही फाइलने विश्लेषण चालवा.

उपक्रमिकेच्या प्राचलांचा अर्थ, अवस्था-चल अॅरेची हाताळणी आणि पुन्हा बिल्ड करताना घ्यावयाची काळजी यांचे तपशील कोडिंग मार्गदर्शकातील स्वतंत्र पृष्ठांवर दिले आहेत.

संबंधित विषय