Solucionador i precondicionament¶
Els solucionadors lineals de FrontISTR es configuren escollint un mètode directe o iteratiu; els mètodes iteratius es combinen amb un precondicionador per resoldre les equacions lineals. El mètode de tractament d'MPC i l'eliminació dels graus de llibertat de contacte són opcions auxiliars que determinen com es tracta un sistema lineal que conté restriccions multipunt o de contacte.
Visió general de les funcions¶
La configuració del solucionador i del precondicionament consta de les opcions següents. Primer seleccioneu un mètode iteratiu o directe com a solucionador lineal. El precondicionador només es combina amb un mètode iteratiu.
| Categoria | Opcions principals | Funció |
|---|---|---|
| Mètodes iteratius | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN | Resolen matrius disperses grans amb un ús de memòria relativament eficient. |
| Precondicionadors per a mètodes iteratius | SSOR, escalat diagonal, BILU, AMG, SAINV, RIF | Milloren la convergència dels mètodes iteratius. No s'utilitzen amb mètodes directes. |
| Mètodes directes | MUMPS, MKL | Resolen les equacions lineals de manera robusta mitjançant factorització de la matriu. |
| Mètodes de tractament d'MPC | Mètode de penalització, eliminació explícita de graus de llibertat | Incorporen restriccions multipunt al sistema lineal. |
| Eliminació de graus de llibertat de contacte | Automàtica, sempre habilitada | Controla el tractament dels graus de llibertat de contacte afegits pel contacte SLAGRANGE. |
| Funcions auxiliars | Estimació del nombre de condició, bolcat de matrius, registres | Faciliten la depuració, l'avaluació de la convergència i l'anàlisi del rendiment. |
Per a l'execució en paral·lel, el paral·lelisme MPI basat en descomposició del domini es pot combinar amb el paral·lelisme de fils OpenMP. Els mètodes iteratius són l'opció habitual per a anàlisis paral·leles a gran escala, mentre que els mètodes directes s'utilitzen quan s'han enllaçat les biblioteques necessàries i es requereix una resolució més robusta.
Selecció del solucionador i del precondicionador¶
Primer decidiu si utilitzareu un mètode iteratiu o directe. Si seleccioneu un mètode iteratiu, trieu també un precondicionador.
| Factor de decisió | Enfocament recomanat |
|---|---|
| Mida del problema | Els mètodes directes són estables i fàcils d'utilitzar per a problemes petits o mitjans. Els mètodes iteratius són més eficients en memòria per a problemes grans. |
| Simetria de la matriu | Considereu CG per a problemes simètrics definits positius. Per a problemes no simètrics, considereu BiCGSTAB, GMRES, GPBiCG o mètodes similars. |
| Entorn paral·lel | Amb paral·lelisme MPI, combineu un mètode iteratiu amb descomposició del domini. Per al precondicionament amb paral·lelisme OpenMP, considereu una implementació SSOR multicolor. |
| Precondicionador (quan s'utilitza un mètode iteratiu) | Proveu primer l'SSOR per defecte i després considereu AMG. SSOR té un cost computacional baix quan la convergència és bona; AMG és adequat per a problemes complexos i de gran escala. AMG està disponible com a implementació Trilinos-ML i com a SA-AMG integrat a HEC-MW; trieu segons la configuració de compilació. |
| Contacte i MPC | En anàlisis amb contacte o restriccions multipunt, l'elecció del mètode de tractament d'MPC i de l'eliminació dels graus de llibertat de contacte afecta la convergència i la robustesa. |
| Biblioteques externes | MUMPS, MKL i AMG (Trilinos-ML) estan disponibles en compilacions enllaçades amb les biblioteques corresponents. AMG (SA-AMG) està disponible en compilacions amb LAPACK habilitat. |
Per a anàlisis estàndard, la tolerància de convergència, el nombre màxim d'iteracions i el coeficient de correcció diagonal del precondicionador per defecte solen ser suficients. Només quan la convergència sigui lenta o la solució divergeixi convé revisar, per aquest ordre, el mètode iteratiu, el precondicionador, el mètode de tractament d'MPC i l'eliminació dels graus de llibertat de contacte. Consulteu la referència de la paraula clau !SOLVER per als valors i la sintaxi dels paràmetres.
Mètodes iteratius¶
Els mètodes iteratius resolen sistemes dispersos grans actualitzant repetidament la solució mitjançant productes matriu-vector i precondicionament. FrontISTR proporciona els mètodes iteratius següents.
| Mètode iteratiu | Aplicació típica | Notes |
|---|---|---|
CG | Problemes simètrics definits positius | Candidat estàndard per a anàlisis estructurals i de conducció tèrmica. |
BiCGSTAB | Problemes no simètrics | Candidat quan el contacte o els efectes acoblats produeixen una no-simetria marcada. |
GMRES | Problemes no simètrics | S'utilitza amb una mida especificada de subespai de Krylov. |
GPBiCG | Problemes no simètrics | S'utilitza com a mètode millorat de la família BiCGSTAB. |
GMRESR | Problemes no simètrics, aplicacions avançades | Opció que utilitza GMRES de manera imbricada. |
GMRESREN | Problemes no simètrics, aplicacions avançades | Variant recursiva de la família GMRESR. |
CG pressuposa que la matriu és simètrica definida positiva. Si el contacte amb fricció, el tractament no simètric de restriccions, els efectes d'acoblament o factors similars introdueixen una no-simetria marcada, considereu BiCGSTAB, GMRES, GPBiCG o un altre solucionador no simètric. Amb GMRES, augmentar la mida del subespai de Krylov pot millorar la convergència, però també incrementa l'ús de memòria.
Quan s'especifica METHOD2, FrontISTR pot canviar a un mètode iteratiu alternatiu si CG divergeix o falla. Aquesta funció és un mecanisme de reserva per als casos en què CG és el solucionador principal; el mètode alternatiu utilitza la resta de configuració i línies de dades del solucionador principal.
CG, BiCGSTAB, GPBiCG i PipeCG actualitzen el vector residual mitjançant una fórmula de recurrència. A mesura que avancen les iteracions, s'acumulen errors d'arrodoniment i el residu actualitzat recursivament pot desviar-se del residu real. Per evitar-ho, el vector residual es recalcula a intervals regulars d'iteracions a partir del membre dret i del producte matriu-vector. Aquest interval es pot especificar amb RECOMPUTE_RESIDUAL. Un interval més llarg redueix el nombre de productes matriu-vector, però augmenta el risc que el residu actualitzat recursivament s'allunyi del residu real i que una solució que encara no ha convergit es consideri convergida. En canvi, un interval massa curt no només augmenta el nombre de productes matriu-vector, sinó que també pot alterar la relació entre el residu i els vectors auxiliars que manté la recurrència i empitjorar la convergència mateixa. El valor per defecte de cada mètode equilibra aquests efectes; si es modifica, comproveu l'historial de convergència i el residu relatiu final.
Precondicionament¶
El precondicionament transforma la matriu de coeficients per millorar la convergència d'un mètode iteratiu i només s'aplica quan se selecciona un mètode iteratiu. Els mètodes directes no utilitzen precondicionament. Fins i tot amb el mateix mètode iteratiu, l'elecció del precondicionador pot canviar substancialment el nombre d'iteracions i el temps de càlcul necessaris per convergir.
| Precondicionador | Característiques | Aplicació típica |
|---|---|---|
| SSOR | Precondicionador estàndard; admet ordenació multicolor. | Primer candidat a provar; àmpliament utilitzat en anàlisi estructural. |
| Escalat diagonal | Precondicionador lleuger basat en les entrades diagonals. | Quan es prioritza un cost computacional baix. |
| BILU | Factorització LU incompleta per blocs. | Candidat per a problemes difícils de fer convergir amb SSOR. |
| AMG (Trilinos-ML) | Multimalla algebraica mitjançant la biblioteca externa Trilinos-ML. | Candidat per a problemes a gran escala o dominats per components d'error jeràrquics. |
| AMG (SA-AMG) | Multimalla algebraica de tipus Smoothed Aggregation integrada a HEC-MW. | Mateix àmbit d'aplicació que l'anterior; candidat quan cal utilitzar AMG sense afegir una biblioteca externa. |
| SAINV | Inversa aproximada dispersa. | Opció de precondicionament especialitzada per a problemes de contacte o entorns de memòria distribuïda. |
| RIF | Factorització incompleta robusta. | Una altra opció de factorització incompleta. |
SSOR és l'opció estàndard, i amb paral·lelisme OpenMP s'utilitza una versió amb ordenació multicolor. L'escalat diagonal és lleuger, tot i que la millora de convergència depèn del problema. BILU s'implementa com una factorització LU incompleta per blocs i també admet matrius amb un nombre general de graus de llibertat. Per a la família BILU, hi ha una via que augmenta automàticament el coeficient de correcció diagonal SIGMA_DIAG i ho torna a intentar quan un mètode iteratiu divergeix; consulteu la referència de paraules clau per saber com especificar-ne el valor.
AMG (multimalla algebraica) té dues implementacions: una que utilitza la biblioteca externa Trilinos-ML i el SA-AMG integrat a HEC-MW. Són implementacions independents amb requisits de compilació i opcions disponibles diferents.
AMG amb Trilinos-ML requereix que ML estigui habilitat durant la compilació. Es poden especificar l'allisador, el cicle multigrid, el mètode d'engruiximent i altres opcions; consulteu la referència de paraules clau per als valors detallats.
SA-AMG és un precondicionador de multimalla algebraica de tipus Smoothed Aggregation i no requereix Trilinos-ML. Tanmateix, utilitza LAPACK internament, de manera que cal una compilació amb LAPACK habilitat; si se selecciona en una compilació sense LAPACK, el programa finalitza sense iniciar l'anàlisi. Per resoldre a la malla gruixuda es pot utilitzar MUMPS en compilacions amb MUMPS habilitat; en cas contrari s'utilitza el mètode directe integrat per a matrius denses.
SA-AMG està destinat principalment a sistemes simètrics definits positius (CG), però també admet sistemes reduïts no simètrics originats pel contacte amb fricció (BiCGSTAB, GMRES i altres). Admet 1 (conducció de calor), 2 (problema pla), 3 (sòlid) i 6 (closca) graus de llibertat per node, però no matrius en què el nombre de graus de llibertat varia entre nodes. Es poden especificar el solucionador de malla gruixuda, el cicle multigrid, el grau de l'allisador i altres opcions, però els valors per defecte es poden utilitzar en anàlisis habituals. Consulteu la referència de paraules clau per als valors i la sintaxi. En compilacions amb GPU (OpenACC) habilitada, la fase d'aplicació del precondicionador s'executa a la GPU.
Quan s'utilitza SAINV en una anàlisi paral·lela amb contacte o restriccions MPC, la profunditat de solapament emprada en la descomposició del domini pot afectar la convergència.
Mètodes directes¶
Els mètodes directes resolen les equacions lineals factoritzant la matriu de coeficients. Com que no depenen d'un nombre d'iteracions, són robustos i poden ser una opció estable per a anàlisis amb condicions de contacte o restriccions. Tanmateix, el consum de memòria augmenta amb la mida del problema.
| Mètode directe | Entorn paral·lel | Aplicació |
|---|---|---|
MUMPS | Paral·lel MPI | Resol matrius disperses amb un mètode directe en entorns de memòria distribuïda. |
MKL | Intel MKL / OpenMP | Solucionador directe basat en Intel MKL. Internament s'utilitza Intel PARDISO. Amb diversos processos MPI, s'utilitza la via Cluster MKL. DIRECTmkl és un àlies de MKL. |
Els mètodes directes es poden utilitzar tant amb matrius simètriques com no simètriques. MUMPS i MKL requereixen que les biblioteques corresponents estiguin enllaçades en compilar. No es poden utilitzar en entorns sense aquestes biblioteques; consulteu la guia de compilació per a les dependències i opcions de CMake necessàries.
FrontISTR també conté una via de solucionador directe incorporada que no utilitza cap biblioteca externa, però per a anàlisis ordinàries que requereixen un mètode directe, normalment convé considerar primer MUMPS o MKL.
El precondicionament no s'aplica als mètodes directes. Encara que s'especifiqui un precondicionador a !SOLVER, no es consulta a la via del solucionador directe.
Mètodes de tractament d'MPC¶
El mètode de tractament d'MPC determina com s'incorporen a les equacions lineals els graus de llibertat connectats per restriccions multipunt. Fins i tot amb les mateixes equacions de restricció a les dades d'entrada, el mètode de tractament modifica les propietats i el comportament de convergència de la matriu de coeficients.
| Mètode de tractament d'MPC | Funció | Ús per defecte |
|---|---|---|
| Mètode de penalització | Satisfà aproximadament les restriccions afegint termes de rigidesa grans a les equacions de restricció. | Per defecte per als mètodes directes. |
| Eliminació explícita de graus de llibertat | Elimina els graus de llibertat restringits i resol el sistema lineal reduït. | Per defecte per als mètodes iteratius. |
El mètode de penalització és el valor per defecte per als mètodes directes, mentre que l'eliminació explícita de graus de llibertat és el valor per defecte per als mètodes iteratius. El mètode MPC-CG, que abans es podia seleccionar, s'ha eliminat; les entrades que especifiquen MPCMETHOD=2 generen un avís i es processen segons aquests valors per defecte.
En l'eliminació explícita de graus de llibertat, les masses concentrades utilitzades en l'anàlisi modal i en l'anàlisi dinàmica explícita també es redueixen amb la mateixa transformació que la matriu de rigidesa. Com que la matriu de massa reduïda generalment no és diagonal, les sumes de les seves files s'utilitzen com a masses concentrades. En les restriccions d'unió o d'interpolació en què la suma dels coeficients de l'equació de restricció és 1, la massa del grau de llibertat esclau es distribueix entre els graus de llibertat mestres proporcionalment als coeficients.
El mètode de tractament d'MPC es pot especificar explícitament a !SOLVER mitjançant MPCMETHOD. Consulteu la referència de paraules clau per al significat i la sintaxi de cada valor.
Eliminació dels graus de llibertat de contacte¶
L'eliminació dels graus de llibertat de contacte redueix els graus de llibertat de contacte addicionals introduïts pel contacte SLAGRANGE abans de passar el sistema al solucionador lineal. Eliminar aquests graus de llibertat pot millorar les propietats del sistema lineal tractat per un mètode iteratiu.
En el mode automàtic per defecte, l'eliminació dels graus de llibertat de contacte està habilitada per als mètodes iteratius i deshabilitada per als mètodes directes. Per als mètodes directes, hi ha una via que resol directament el sistema ampliat que conté els graus de llibertat de contacte.
Quan CONTACT_ELIM s'especifica explícitament, l'eliminació dels graus de llibertat de contacte també es pot efectuar amb un mètode directe. Per a les opcions de tipus de contacte, parella de contacte i algoritme de contacte a l'entrada, consulteu la pàgina Contacte i incrustació.
Funcions auxiliars¶
L'estimació del nombre de condició, els bolcats de matriu i els registres es poden utilitzar per investigar la convergència i el rendiment del solucionador. Aquestes funcions no són necessàries en anàlisis normals i s'habiliten principalment per a depuració o avaluació del rendiment.
| Funció | Finalitat | Notes |
|---|---|---|
| Estimació del nombre de condició | Escriu un indicador del nombre de condició per a CG i GMRES. | Disponible en compilacions amb LAPACK habilitat. |
| Bolcat de matriu | Desa la matriu i el segon membre que es passen al solucionador. | Admet els formats Matrix Market, CSR i BSR. |
DUMPEXIT | Finalitza l'anàlisi després de bolcar la matriu. | S'utilitza quan només es necessita la matriu per a verificació externa. |
ITERLOG | Escriu l'historial de convergència d'un mètode iteratiu. | S'utilitza per inspeccionar l'evolució del residu. |
TIMELOG | Escriu el temps de càlcul del solucionador. | VERBOSE proporciona un desglossament més detallat. |
STEPLOG | Escriu informació dels passos. | S'utilitza per inspeccionar el procediment d'anàlisi. |
LOGLEVEL | Escriu informació de diagnòstic, com ara la construcció de la jerarquia del precondicionament AMG. | S'especifica independentment d'ITERLOG i TIMELOG. Un valor més alt augmenta la quantitat de sortida. |
El bolcat de matriu permet inspeccionar amb eines externes la matriu de coeficients assemblada per l'anàlisi. Quan DUMPEXIT està habilitat, l'anàlisi finalitza després de desar la matriu i el segon membre. L'estimació del nombre de condició és una funció experimental disponible amb CG i GMRES i es pot utilitzar per diagnosticar el comportament de la convergència.
Temes relacionats¶
- Solucionador lineal (teoria) — Principis matemàtics dels mètodes iteratius i del precondicionament.
- Iteració no lineal i integració temporal — Marc per a les iteracions de Newton, les iteracions de contacte i la integració temporal que invoca el solucionador lineal.
- Particionament de domini — Anàlisi paral·lela MPI i configuració de la profunditat de solapament.
- Contacte i incrustació — Selecció de tipus i algoritmes de contacte.
- !SOLVER — Valors i sintaxi dels paràmetres del solucionador i del precondicionador.
- Biblioteques de dependències obligatòries i opcionals — Dependències com
MUMPS,MKL(Intel PARDISO), Trilinos-ML i LAPACK.