Salta el contingut

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

AI-assisted translation May contain errors Official docs Status