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 સક્રિય થવા સાથે નીચેની 3 સબરૂટિન સંબંધિત છે.

  • ureadload: વિશ્લેષણ શરૂ થતાં, નિયંત્રણ ફાઇલમાં નિર્દિષ્ટ બાહ્ય ફાઇલમાંથી યૂઝર-નિર્ધારિત લોડ વાંચે છે. યૂઝર અમલીકરણ ફાઇલ ખોલે છે અને જરૂરી ડેટા મોડ્યુલ ચલોમાં સંગ્રહે છે.
  • uloading: દરેક સ્ટેપ માટે બાહ્ય લોડ વેક્ટર એસેમ્બલ કરતી વખતે બોલાવવામાં આવે છે અને વૈશ્વિક લોડ વેક્ટરમાં યૂઝર લોડ ઉમેરે છે. વર્તમાન સ્ટેપ સંખ્યા અને ભાર ગુણક આર્ગ્યુમેન્ટો તરીકે પાઠવવામાં આવે છે.
  • uResidual: દરેક પુનરાવર્તનમાં અવશેષ સદિશ એસેમ્બલ કરતી વખતે બોલાવવામાં આવે છે અને વૈશ્વિક અવશેષ સદિશમાં યૂઝર લોડનો ફાળો ઉમેરે છે. તે અરેખીય પુનરાવર્તન અને સંતુલન ગણતરી બંનેમાંથી બોલાવવામાં આવે છે.

યૂઝર સીમા શરત (નિર્દિષ્ટ વિસ્થાપન અથવા સંપર્ક શરતનું યૂઝર વિસ્તરણ) માટે કોઈ વિસ્તરણ બિંદુ આપવામાં આવેલ નથી. બાહ્ય બળ સિવાયનો યૂઝર વિસ્તરણ જરૂરી હોય, તો સંબંધિત અંતર્નિર્મિત કીવર્ડ અથવા યૂઝર સામગ્રી-પ્રતિભાવ નિયમનો માર્ગ વાપરો.

યૂઝર સબરૂટિન અમલીકરણ પ્રક્રિયા

યૂઝર સબરૂટિન વાપરવા માટે FrontISTR સોર્સ વિતરણમાં સમાવાયેલ ટેમ્પ્લેટ ફાઇલ સંપાદિત કર્યા પછી FrontISTR મુખ્ય પ્રોગ્રામને ફરી બિલ્ડ કરો. વિતરિત બાઇનરીમાં યૂઝર સબરૂટિન બદલી શકાતી નથી, તેથી યૂઝર વિસ્તરણ વાપરવા માટે સોર્સમાંથી FrontISTR બિલ્ડ કરી શકાય એવું પર્યાવરણ તૈયાર કરવું જરૂરી છે.

યૂઝર સબરૂટિન ટેમ્પ્લેટ fistr1/src/lib/user/ હેઠળ છે અને દરેક વિસ્તરણ શ્રેણી માટે સંપાદિત કરવાની ફાઇલ નક્કી છે (ફાઇલ નામ માટે કાર્યક્ષમતાનો સારાંશ ની કોષ્ટક જુઓ). દરેક ફાઇલની પ્રારંભિક સ્થિતિમાં સબરૂટિન દેહ ખાલી હોય છે અથવા રેખીય સ્થિતિસ્થાપકતાનું નમૂના અમલીકરણ હોય છે; યૂઝર તેમાં પોતાનો સામગ્રી-પ્રતિભાવ નિયમ અથવા લોડ વ્યાખ્યા ઉમેરે છે. ટેમ્પ્લેટ સંપાદિત કર્યા પછી FrontISTR ને સામાન્ય રીતે CMake વડે ફરી બિલ્ડ કરો અને મળેલા fistr1 ચલાવનક્ષમ વડે વિશ્લેષણ ચલાવો.

સબરૂટિન આર્ગ્યુમેન્ટોનો અર્થ, સ્થિતિ-ચલ એરેનું સંચાલન અને ફરી બિલ્ડ કરતી વખતે ધ્યાનમાં રાખવાના મુદ્દાઓ જેવી વિગતો કોડિંગ ગાઇડના દરેક સંબંધિત પૃષ્ઠમાં આપવામાં આવી છે.

સંબંધિત વિષયો

  • સામગ્રી ડેટા — સામગ્રી-પ્રતિભાવ નિયમના વિકલ્પો અને અંતર્નિર્મિત મોડેલોની યાદી
  • સીમા શરતો અને લોડ — અંતર્નિર્મિત સીમા શરતો અને લોડ
  • યૂઝર સબરૂટિન (કોડિંગ ગાઇડ) — સબરૂટિન આર્ગ્યુમેન્ટની વિશિષ્ટતા અને અમલીકરણ નિયમો
  • !USER_MATERIAL — સામાન્ય-હેતુના યૂઝર સામગ્રી-પ્રતિભાવ નિયમ માટેનો કીવર્ડ ફોર્મેટ
  • !ELASTICTYPE=USER સમાવતો રેખીય સ્થિતિસ્થાપકતા કીવર્ડ
  • !HYPERELASTICTYPE=USER સમાવતો અતિસ્થિતિસ્થાપકતા કીવર્ડ
  • !PLASTICYIELD=USER સમાવતો સ્થિતિસ્થાપક-પ્લાસ્ટિકતા કીવર્ડ