వినియోగదారు సబ్రూటీన్ విస్తరణ¶
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 ఎగ్జిక్యూటబుల్తో విశ్లేషణ నడపండి.
సబ్రూటీన్ ఆర్గ్యుమెంట్ల అర్థం, స్థితి చరరాశి అరేల నిర్వహణ, పునర్నిర్మాణ జాగ్రత్తలు మొదలైన వివరాలు కోడింగ్ గైడ్ పేజీల్లో ఉన్నాయి.
- వినియోగదారు సబ్రూటీన్ (అవలోకనం)
- సాధారణ వినియోగదారు నిర్మాణ సమీకరణ
umat.f - వినియోగదారు ఎలాస్టోప్లాస్టిసిటీ
uyield.f - వినియోగదారు నిర్వచిత బాహ్య లోడ్
uload.f - వినియోగదారు రేఖీయ/హైపర్ఎలాస్టిసిటీ
uelastic.f
సంబంధిత అంశాలు¶
- పదార్థ డేటా — నిర్మాణ సమీకరణ ఎంపికలు మరియు అంతర్నిర్మిత మోడళ్ల జాబితా
- సరిహద్దు షరతులు మరియు లోడ్లు — అంతర్నిర్మిత సరిహద్దు షరతులు మరియు లోడ్లు
- వినియోగదారు సబ్రూటీన్ (కోడింగ్ గైడ్) — సబ్రూటీన్ ఆర్గ్యుమెంట్ నిర్దేశాలు మరియు అమలు నియమాలు
- !USER_MATERIAL — సాధారణ వినియోగదారు నిర్మాణ సమీకరణ కీవర్డ్ ఫార్మాట్
- !ELASTIC —
TYPE=USERకలిగిన రేఖీయ స్థితిస్థాపక కీవర్డ్ - !HYPERELASTIC —
TYPE=USERకలిగిన హైపర్ఎలాస్టిసిటీ కీవర్డ్ - !PLASTIC —
YIELD=USERకలిగిన స్థితిస్థాపక-ప్లాస్టిక్ కీవర్డ్