Metoda Newton-Raphson¶
Liniarizare și relația recurentă iterativă¶
Ecuația neliniară pentru deplasarea nodală \(\boldsymbol{u}_{n+1}\) la timpul \(t_{n+1}\), obținută în Lucrul virtual al forțelor externe și asamblarea ecuației globale, se rezolvă prin metoda Newton-Raphson. Se consideră cunoscută deplasarea nodală \(\boldsymbol{u}_n\) până la timpul \(t_n\), iar incrementul de deplasare \(\Delta\boldsymbol{u}\) este necunoscuta, astfel încât se determină
. În continuare se neglijează dependența vectorului forțelor externe de deplasarea nodală și se presupune \(\boldsymbol{F}(\boldsymbol{u}_{n+1}) = \boldsymbol{F}_{n+1}\), rezolvând
.
Rigiditatea tangentă la soluția curentă \(\Delta\boldsymbol{u}\) este
Folosind-o pentru liniarizarea ecuației neliniare se obține
. Dacă corecția la iterația \(i\) este \(d\boldsymbol{u}_i\), iar vectorul rezidual la începutul iterației este
atunci relația recurentă iterativă este
. Reziduul \(\boldsymbol{R}_i\) reprezintă dezechilibrul de forțe față de starea de echilibru.
Construirea matricei de rigiditate tangentă¶
Rigiditatea tangentă \(\boldsymbol{K} = \partial\boldsymbol{Q}/\partial\boldsymbol{u}\) se construiește prin derivarea parțială, în raport cu deplasările nodale, a vectorului forțelor interne elementare obținut în Discretizarea lucrului virtual al forțelor interne, integrarea termenului integrand pentru fiecare element pe domeniul elementului și asamblarea rezultatelor. Notând integrandul la nivel de element cu \(\boldsymbol{K}^e_X\) (în configurația de referință, metoda TL) sau \(\boldsymbol{K}^e_x\) (în configurația curentă, metoda UL), rigiditatea tangentă a elementului este
. Mai jos sunt prezentate formele finale ale integranzilor TL/UL. Ambele se descompun în suma unui termen de rigiditate materială (termen de deplasare inițială) și a unui termen de rigiditate geometrică (termen de tensiune inițială).
Metoda Total Lagrange¶
În metoda Total Lagrange se presupune relația liniară \(\dot{\boldsymbol{S}} = \boldsymbol{\mathsf{C}}:\dot{\boldsymbol{E}}\) dintre rata tensiunii a 2-a Piola-Kirchhoff \(\dot{\boldsymbol{S}}\) și rata deformației Green-Lagrange \(\dot{\boldsymbol{E}}\). Aceasta corespunde legilor constitutive pentru materiale liniar elastice (St.Venant-Kirchhoff) și hiperelastice, iar în FrontISTR metoda Total Lagrange este utilizată pentru aceste materiale. Integrandul rigidității tangente elementare se scrie atunci, în formă tensorială, ca
. Termenul 1 din membrul drept este termenul de rigiditate materială (termenul de deplasare inițială), iar termenul 2 este termenul de rigiditate geometrică (termenul de tensiune inițială).
În implementarea FrontISTR, acest integrand este calculat în forma matricială cu notație Voigt
. Matricele sunt definite astfel. \(\boldsymbol{B}_L, \boldsymbol{B}_{NL}\) sunt matricile B introduse în Discretizarea lucrului virtual al forțelor interne, iar \(\tilde{\boldsymbol{C}}\) este matricea de rigiditate materială \(6\times 6\) a legii constitutive \(\boldsymbol{\mathsf{C}}\) în notație Voigt (Notație tensorială și baze matematice). \(\boldsymbol{S}_9, \boldsymbol{F}_9\) sunt matricele de reordonare de mai jos, utilizate pentru a exprima termenul de rigiditate geometrică drept produs matricial. Mai întâi se definește simbolul \([\,\cdot\,]\), care rearanjează tensorul de ordin 2 \(\boldsymbol{A}\) de dimensiune \(3\times 3\) într-un vector cu 9 componente, prin
. Atunci \(\boldsymbol{F}_9\) este o matrice \(9\times d n_e\) care exprimă variația gradientului de deformare în forma \([\delta\boldsymbol{F}] = \boldsymbol{F}_9\, \delta\boldsymbol{u}^e\) și este alcătuită din blocurile \(9\times d\) corespunzătoare nodurilor elementului \(\alpha = 1, \ldots, n_e\):
dispuse orizontal în ordinea nodurilor elementului, astfel încât \(\boldsymbol{F}_9 = [[\boldsymbol{F}_9]_1, \ldots, [\boldsymbol{F}_9]_{n_e}]\). \(\boldsymbol{S}_9\) este matricea \(9\times 9\) aleasă astfel încât, împreună cu aceasta, termenul de rigiditate geometrică să poată fi exprimat ca \(\delta\boldsymbol{u}^{eT}\, \boldsymbol{F}_9^T \boldsymbol{S}_9 \boldsymbol{F}_9\, \dot{\boldsymbol{u}}^e\):
.
Metoda Updated Lagrange¶
În metoda Updated Lagrange se presupune relația liniară \(\hat{\boldsymbol{\sigma}}^{\nabla J} = \boldsymbol{\mathsf{C}}:\boldsymbol{D}\) dintre rata Jaumann a tensorului relativ al tensiunii Kirchhoff \(\hat{\boldsymbol{\sigma}}^{\nabla J}\) și tensorul ratei de deformare \(\boldsymbol{D}\). Aceasta este forma unei legi constitutive hipoelastice comune materialelor liniar elastice, elastoplastice și cu fluaj, iar în FrontISTR metoda Updated Lagrange este utilizată pentru aceste materiale. Integrandul rigidității tangente elementare exprimat în configurația curentă se scrie, în formă tensorială, ca
. Aici \(\boldsymbol{\sigma}^{\nabla T}\) este rata Truesdell, \(\boldsymbol{A}_{(L)}\) este partea liniară a deformației Almansi, \(\boldsymbol{F}_t = \partial\boldsymbol{u}/\partial\boldsymbol{x}\) este gradientul deplasării raportat la configurația curentă, iar \(\boldsymbol{L}\) este tensorul gradientului vitezei. Termenul 1 din membrul drept este termenul de rigiditate materială, iar termenul 2 este termenul de rigiditate geometrică.
În implementarea FrontISTR, acest integrand este calculat în forma matricială cu notație Voigt
. \(\boldsymbol{b}\) este matricea B construită în configurația curentă (Discretizarea lucrului virtual al forțelor interne). \(\boldsymbol{\sigma}_9, \boldsymbol{f}_9\) se obțin din \(\boldsymbol{S}_9, \boldsymbol{F}_9\) definite pentru metoda TL, înlocuind tensiunea a 2-a PK \(\boldsymbol{S}\) cu tensiunea Cauchy \(\boldsymbol{\sigma}\) și gradientul în configurația de referință \(\partial N_\alpha^e/\partial X_i\) cu gradientul în configurația curentă \(\partial N_\alpha^e/\partial x_i\).
\(\boldsymbol{G}\) este matricea de corecție dependentă de tensiunea Cauchy necesară pentru a face legea constitutivă hipoelastică \(\hat{\boldsymbol{\sigma}}^{\nabla J} = \boldsymbol{\mathsf{C}}:\boldsymbol{D}\) compatibilă cu cadrul rigidității tangente ca lege constitutivă bazată pe rata Truesdell; ea reprezintă componentele tensorului de ordin 4 \(G_{ijkl} = \delta_{il}\sigma_{kj} + \delta_{jl}\sigma_{ik}\) în notație Voigt \(6\times 6\):
.
Asamblarea matricei globale de rigiditate¶
Rigiditatea tangentă globală \(\boldsymbol{K}\) se obține împărțind rigiditatea elementară \(\boldsymbol{K}^e\) în blocuri \(d\times d\) pe noduri, \(\boldsymbol{K}^e_{\alpha\beta}\), și folosind mulțimea de asamblare pentru tensori de ordin 2 \(\mathcal{E}^2(i_g, i_h)\) introdusă în Asamblarea mărimilor fizice nodale ale elementelor:
plasând rezultatul pe linia \(i_g\) și coloana \(i_h\). În implementare, mulțimea \(\mathcal{E}^2\) nu este construită explicit; blocurile corespunzătoare sunt adunate direct în bucla pe elemente. Matricea este pătratică, de ordinul număr de grade de libertate pe nod \(\times\) numărul total de noduri \(n_g\), dar componentele dintre noduri care nu sunt conectate prin elemente sunt \(0\), astfel încât matricea este păstrată în format rar.
Rigiditățile elementare pentru metodele TL și UL au aceeași formă, cu excepția schimbării configurației de referință (coordonatele nodale și sursa pentru construirea matricei B) și a prezenței sau absenței matricei \(\boldsymbol{G}\); de aceea, în FrontISTR ambele sunt implementate într-o subrutină comună.
Algoritmul iterativ¶
Rezumând cele de mai sus, la începutul iterației se ia \(\Delta\boldsymbol{u} = \boldsymbol{0}\) și se calculează reziduul inițial \(\boldsymbol{R}_0 = \boldsymbol{F}_{n+1} - \boldsymbol{Q}(\boldsymbol{u}_n)\), iar la iterația \(i\) se execută pașii următori.
- Se calculează rigiditatea tangentă \(\boldsymbol{K}_i = \partial\boldsymbol{Q}/\partial\boldsymbol{u}|_{\boldsymbol{u}_n + \Delta\boldsymbol{u}}\) la deplasarea curentă \(\boldsymbol{u}_n + \Delta\boldsymbol{u}\), folosind procedura din Construirea matricei de rigiditate tangentă.
- Pentru a aplica condițiile la limită geometrice, matricea de rigiditate tangentă și vectorul rezidual sunt modificați pentru gradele de libertate cu deplasări constrânse, obținând \(\tilde{\boldsymbol{K}}_i, \tilde{\boldsymbol{R}}_{i-1}\) (Tratarea condițiilor la limită geometrice).
- Se rezolvă ecuația liniară \(\tilde{\boldsymbol{K}}_i\, d\boldsymbol{u}_i = \tilde{\boldsymbol{R}}_{i-1}\) pentru a determina corecția \(d\boldsymbol{u}_i\). Această operație reprezintă adesea cea mai mare parte a costului de calcul din procesul iterativ.
- Se actualizează incrementul de deplasare prin \(\Delta\boldsymbol{u} \leftarrow \Delta\boldsymbol{u} + d\boldsymbol{u}_i\), apoi se calculează corespunzător vectorul forțelor interne \(\boldsymbol{Q}(\boldsymbol{u}_n + \Delta\boldsymbol{u})\) și reziduul \(\boldsymbol{R}_i = \boldsymbol{F}_{n+1} - \boldsymbol{Q}(\boldsymbol{u}_n + \Delta\boldsymbol{u})\).
- Se verifică convergența și, dacă este satisfăcută, iterația se încheie. În reziduul \(\boldsymbol{R}_i\), gradele de libertate supuse condițiilor la limită geometrice conțin componente corespunzătoare reacțiunilor de constrângere; de aceea indicatorul de convergență se construiește din componentele \(\tilde{\boldsymbol{R}}_i\) după excluderea acestora. Indicatorii și pragurile concrete sunt descrise în Criteriul de convergență. Dacă nu se obține convergența și se atinge limita de iterații, iterația este considerată eșuată.
După convergență, \(\Delta\boldsymbol{u}\) este adăugat la \(\boldsymbol{u}_n\) pentru a obține deplasarea cumulată la timpul \(t_{n+1}\), \(\boldsymbol{u}_{n+1} = \boldsymbol{u}_n + \Delta\boldsymbol{u}\), apoi calculul trece la următorul pas de timp.
Subiecte conexe¶
- Lucrul virtual al forțelor externe și asamblarea ecuației globale — punctul de plecare al ecuației neliniare care trebuie rezolvată
- Discretizarea lucrului virtual al forțelor interne — construirea \(\boldsymbol{B}_L, \boldsymbol{B}_{NL}, \boldsymbol{b}\)
- Tratarea condițiilor la limită geometrice — modificarea matricei de rigiditate tangentă și a vectorului rezidual pentru a reflecta constrângerile de deplasare
- Criteriul de convergență — condiția de oprire bazată pe norma reziduului
- Notație tensorială și baze matematice — notația Voigt a matricei materialului \(\tilde{\boldsymbol{C}}\)
- Iterații neliniare și integrare în timp (funcție) — selecția utilizării în referința funcțională