Solver i precondicionament¶
Els solvers 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 solver i del precondicionament consta de les opcions següents. Primer seleccioneu un mètode iteratiu o directe com a solver 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ó, mètode MPC-CG, 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 particionament de 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 solver 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 particionament de 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. |
| 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 estan disponibles en compilacions enllaçades amb les biblioteques corresponents. |
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 solver 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 solver principal; el mètode alternatiu utilitza la resta de configuració i línies de dades del solver principal.
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 | Multimalla algebraica mitjançant Trilinos-ML. | Candidat per a problemes a gran escala o dominats per components d'error jeràrquics. |
| 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 utilitza Trilinos-ML, de manera que ML ha d'estar habilitat en compilar. Es poden especificar suavitzadors, cicles multinivell, mètodes d'agregació i altres opcions, però consulteu la referència de paraules clau per als valors detallats. Quan s'utilitza SAINV en una anàlisi paral·lela que conté restriccions de contacte o MPC, la profunditat de solapament emprada en el particionament de 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 | Solver 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 solver 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 solver 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 | Posicionament | Ú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. |
| Mètode MPC-CG | Mètode heretat que gestiona els productes matriu-vector amb restriccions dins del solver iteratiu. | Desaconsellat. |
| 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 és una opció heretada de compatibilitat i no es recomana per a anàlisis noves; normalment utilitzeu l'eliminació explícita de graus de llibertat o el tractament per defecte del mètode directe seleccionat.
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 solver 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 encastament.
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 solver. 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 solver. | 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 solver. | VERBOSE proporciona un desglossament més detallat. |
STEPLOG | Escriu informació dels passos. | S'utilitza per inspeccionar el procediment d'anàlisi. |
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¶
- Solver 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 solver lineal.
- Particionament de domini — Anàlisi paral·lela MPI i configuració de la profunditat de solapament.
- Contacte i encastament — Selecció de tipus i algoritmes de contacte.
- !SOLVER — Valors i sintaxi dels paràmetres del solver i del precondicionador.
- Biblioteques de dependències obligatòries i opcionals — Dependències com
MUMPS,MKL(Intel PARDISO), Trilinos-ML i LAPACK.