!SOLVER¶
Έλεγχος επιλυτή
Απαιτούμενα δεδομένα ελέγχου.
Παράμετροι¶
METHOD = Μέθοδος επίλυσης (CG, BiCGSTAB, GMRES, GPBiCG, CR, DIRECT, DIRECTmkl, MUMPS)
DIRECT : Άμεση μέθοδος εκτός ανάλυσης επαφής (μόνο σειριακή επεξεργασία) (προς το παρόν μη διαθέσιμη)
DIRECTmkl : Άμεση μέθοδος με χρήση Intel MKL
MUMPS : Άμεση μέθοδος με χρήση MUMPS
Όταν επιλέγεται άμεση μέθοδος, οι γραμμές δεδομένων αγνοούνται.
Οι επαναληπτικές μέθοδοι για προβλήματα 3 βαθμών ελευθερίας υποστηρίζουν παράλληλη εκτέλεση νημάτων με OpenMP
PRECOND = Μέθοδος προρρύθμισης για επαναληπτικούς επιλυτές (1, 2, 3, 5, 10, 11, 12, 22)
1, 2 : (Block) SSOR (με πολυχρωματική διάταξη μόνο για προβλήματα 3 βαθμών ελευθερίας)
3 : (Block) Διαγώνια κλιμάκωση
5 : AMG με χρήση του πακέτου πολυπλέγματος προρρύθμισης ML
10 : Block ILU(0)
11 : Block ILU(1)
12 : Block ILU(2)
22 : AMG με το ενσωματωμένο στο HEC-MW SA-AMG (Smoothed Aggregation AMG)
Τα 10, 11 και 12 είναι διαθέσιμα μόνο για προβλήματα 3 βαθμών ελευθερίας
Το 22 είναι διαθέσιμο μόνο σε μεταγλωττίσεις με ενεργοποιημένο το LAPACK
Για παράλληλη εκτέλεση νημάτων OpenMP συνιστώνται SSOR, διαγώνια κλιμάκωση, ML ή SA-AMG
ITERLOG = Αν θα εξάγεται το ιστορικό σύγκλισης του επαναληπτικού επιλυτή (YES/NO)(Προεπιλογή: NO)
TIMELOG = Αν θα εξάγεται ο χρόνος υπολογισμού του επιλυτή (YES/NO/VERBOSE)(Προεπιλογή: NO)
LOGLEVEL = Επίπεδο εξόδου διαγνωστικών πληροφοριών προρρύθμισης (ακέραιος)(Προεπιλογή: χωρίς έξοδο)
Καθορίζεται ανεξάρτητα από τα ITERLOG και TIMELOG
Για τιμή 1 ή μεγαλύτερη εξάγονται, μεταξύ άλλων, η δομή ιεραρχίας των προρρυθμίσεων AMG (PRECOND=5, 22)
Για τιμή 2 ή μεγαλύτερη εξάγονται επιπλέον λεπτομερείς πληροφορίες (όπως η χρήση μνήμης)
USEJAD = Αν θα χρησιμοποιείται διάταξη για διανυσματικούς επεξεργαστές (YES/NO)(Προεπιλογή: NO)
Ισχύει μόνο όταν χρησιμοποιείται επαναληπτική μέθοδος για πρόβλημα 3 βαθμών ελευθερίας
SCALING = Αν θα κλιμακώνεται ο πίνακας ώστε τα διαγώνια στοιχεία να είναι 1 (YES/NO)(Προεπιλογή: NO)
Ισχύει μόνο όταν χρησιμοποιείται επαναληπτική μέθοδος για πρόβλημα 3 βαθμών ελευθερίας
DUMPTYPE = Μορφή dump πίνακα (NONE, MM, CSR, BSR) (κυρίως για αποσφαλμάτωση)
NONE : Χωρίς dump (Προεπιλογή)
MM : Μορφή Matrix Market
CSR : Μορφή Compressed Sparse Row (CSR)
BSR : Μορφή Blocked CSR
DUMPEXIT = Τερματισμός του προγράμματος αμέσως μετά το dump του πίνακα (YES/NO)(Προεπιλογή: NO)
MPCMETHOD = Μέθοδος χειρισμού πολυσημειακών περιορισμών (1, 3)
1: Μέθοδος ποινής (Προεπιλογή όταν χρησιμοποιείται άμεση μέθοδος)
3: Ρητή απαλοιφή βαθμών ελευθερίας (Προεπιλογή όταν χρησιμοποιείται επαναληπτική μέθοδος)
Η μέθοδος MPC-CG (2) έχει αφαιρεθεί. Αν οριστεί 2, εμφανίζεται προειδοποίηση και χρησιμοποιείται η προεπιλεγμένη μέθοδος.
ESTCOND = Συχνότητα εκτίμησης αριθμού κατάστασης (πειραματικό)
Εκτίμηση του αριθμού κατάστασης σε κάθε καθορισμένο διάστημα επαναλήψεων και στο τέλος των επαναλήψεων
Δεν πραγματοποιείται εκτίμηση όταν καθορίζεται 0
RECOMPUTE_RESIDUAL = Συχνότητα επανυπολογισμού του διανύσματος υπολοίπου
Ισχύει μόνο όταν για METHOD έχει καθοριστεί CG, BiCGSTAB, GPBiCG ή PipeCG
Οι επαναληπτικές μέθοδοι ενημερώνουν το διάνυσμα υπολοίπου με αναδρομική σχέση, οπότε συσσωρεύονται σφάλματα στρογγυλοποίησης
Σε κάθε καθορισμένο διάστημα επαναλήψεων, το διάνυσμα υπολοίπου επανυπολογίζεται από {b}-[A]{x}
Αν καθοριστεί 0, χρησιμοποιείται η προεπιλεγμένη τιμή της κάθε μεθόδου (CG: 50, BiCGSTAB: 100, GPBiCG: 20, PipeCG: 50)
Αν καθοριστεί αρνητική τιμή, δεν γίνεται περιοδικός επανυπολογισμός
Ο επανυπολογισμός για επιβεβαίωση όταν ικανοποιείται το κριτήριο σύγκλισης εκτελείται πάντοτε, ανεξάρτητα από αυτή τη ρύθμιση
Αν η περίοδος γίνει υπερβολικά μικρή, όχι μόνο αυξάνονται οι πολλαπλασιασμοί πίνακα-διανύσματος
αλλά μπορεί να επιδεινωθεί η ίδια η σύγκλιση ή να χαθεί η σύγκλιση
Αν αλλάξετε την προεπιλεγμένη τιμή, ελέγξτε το ιστορικό σύγκλισης και το τελικό σχετικό υπόλοιπο
METHOD2 = Μέθοδος επίλυσης 2 (BiCGSTAB, GMRES, GPBiCG) (πειραματικό)
Ισχύει μόνο όταν καθορίζεται CG για METHOD
Εάν το CG αποκλίνει, γίνεται αυτόματη μετάβαση στη δευτερεύουσα μέθοδο και συνεχίζεται η επίλυση
Για τις άλλες παραμέτρους και γραμμές δεδομένων χρησιμοποιούνται οι ίδιες τιμές
CONTACT_ELIM = Καθορίζει αν εκτελείται απαλοιφή βαθμών ελευθερίας στην ανάλυση επαφής (0,1)
0: Εκτέλεση απαλοιφής βαθμών ελευθερίας μόνο όταν χρησιμοποιείται επαναληπτική μέθοδος (Προεπιλογή)
1: Πάντα εκτέλεση απαλοιφής βαθμών ελευθερίας (και όταν χρησιμοποιείται άμεση μέθοδος)
** 2η και επόμενες γραμμές **
| Όνομα μεταβλητής | Ιδιότητα | Περιγραφή |
|---|---|---|
| NITER | I | Αριθμός επαναλήψεων (Προεπιλογή: 100) |
| iterPREmax | I | Αριθμός επαναλήψεων προρρύθμισης Additive Schwarz (Προεπιλογή: 1) (Συνιστώμενη τιμή: 1· το 2 μπορεί να είναι αποτελεσματικό σε ορισμένους παράλληλους υπολογισμούς) |
| NREST | I | Μέγεθος υποχώρου Krylov (Προεπιλογή: 10) (Ισχύει μόνο όταν το GMRES επιλέγεται ως μέθοδος επίλυσης) |
| NCOLOR_IN | I | Στόχος αριθμού χρωμάτων για πολυχρωματική διάταξη (Προεπιλογή: 10) (Ισχύει μόνο όταν ο αριθμός νημάτων OpenMP είναι 2 ή μεγαλύτερος) |
| RECYCLEPRE | I | Αριθμός επαναχρησιμοποιήσεων των πληροφοριών ρύθμισης του προρρυθμιστή (Προεπιλογή: 3) (Ισχύει μόνο σε μη γραμμική ανάλυση) |
| Όνομα μεταβλητής | Ιδιότητα | Περιγραφή |
|---|---|---|
| RESID | R | Ανοχή σύγκλισης (Προεπιλογή: 1.0e-8) |
| SIGMA_DIAG | R | Συντελεστής κλιμάκωσης που εφαρμόζεται στα διαγώνια στοιχεία κατά τον υπολογισμό του πίνακα προρρύθμισης (Προεπιλογή: 1.0) (Εάν προκύψει διαίρεση με το μηδέν ή απόκλιση με προρρύθμιση ILU, το πρόβλημα μπορεί να συγκλίνει όταν καθοριστεί τιμή μεγαλύτερη από 1.0) |
| SIGMA | R | Δεν χρησιμοποιείται (Προεπιλογή: 0.0) |
Όταν PRECOND=5 (προαιρετικό)¶
Εάν το PRECOND οριστεί σε τιμή διαφορετική από 5 ή 22, η 4η γραμμή αγνοείται.
(4η γραμμή) ML_CoarseSolver, ML_Smoother, ML_MGCycle, ML_MaxLevels, ML_CoarseningScheme, ML_NumSweep
| Όνομα μεταβλητής | Ιδιότητα | Περιγραφή |
|---|---|---|
| ML_CoarseSolver | I | Επιλυτής χονδρού πλέγματος για ML (1: χρήση εξομαλυντή, 2: KLU (σειριακή άμεση μέθοδος), 3: MUMPS (παράλληλη άμεση μέθοδος)) (Προεπιλογή: 1) (Συνιστάται: 3 ή 2 για δύσκολα προβλήματα, 1 για συνήθη προβλήματα) |
| ML_Smoother | I | Εξομαλυντής ML (1: Τσεμπίσεφ, 2: συμμετρικός μπλοκ Gauss-Seidel, 3: Γιακόμπι) (Προεπιλογή: 1) (Συνιστάται: 1) |
| ML_MGCycle | I | Κύκλος πολυπλέγματος ML (1: κύκλος V, 2: κύκλος W, 3: πλήρης κύκλος V) (Προεπιλογή: 1) (Συνιστάται: 2 για δύσκολα προβλήματα, 1 για συνήθη προβλήματα) |
| ML_MaxLevels | I | Μέγιστος αριθμός επιπέδων ML (Προεπιλογή: 10) (Για ιδιαίτερα δύσκολα προβλήματα, χρησιμοποιήστε άμεσο επιλυτή χονδρού πλέγματος και 2 επίπεδα (ή 3 αν η μνήμη είναι ανεπαρκής)· για συνήθη προβλήματα συνιστάται 10) |
| ML_CoarseningScheme | I | Σχήμα αδροποίησης ML (1: UncoupledMIS, 2: METIS, 4: Zoltan, 5: DD) (Προεπιλογή: 1) (Συνιστάται: 1 ή 5) |
| ML_NumSweep | I | Αριθμός σαρώσεων του εξομαλυντή ML (πολυωνυμικός βαθμός για Τσεμπίσεφ) (Προεπιλογή: 2) (Συνιστάται: 2 για Τσεμπίσεφ, 1 για συμμετρικός μπλοκ Gauss-Seidel) |
Όταν PRECOND=22 (προαιρετικό)¶
Εάν το PRECOND οριστεί σε τιμή διαφορετική από 22, η 5η γραμμή αγνοείται. Η 4η και η 5η γραμμή μπορούν να παραλειφθούν εξ ολοκλήρου, ενώ μπορούν επίσης να παραλειφθούν τα τελευταία στοιχεία κάθε γραμμής. Για κάθε στοιχείο που καθορίζεται ως 0 χρησιμοποιείται η προεπιλεγμένη τιμή.
Τα στοιχεία 1 έως 7 της 4ης γραμμής έχουν την ίδια σειρά με τη γραμμή επιλογών του PRECOND=5 (ML), επομένως η γραμμή επιλογών ML μπορεί να επαναχρησιμοποιηθεί χωρίς αλλαγές. Τα στοιχεία 8 έως 10 αφορούν ειδικά το SA-AMG.
(4η γραμμή) SA_CoarseSolver, SA_Smoother, SA_MGCycle, SA_MaxLevels, (δεν χρησιμοποιείται), SA_ChebyDegree, SA_CoarseSize, SA_MaxAggSize, SA_GalerkinLowMem, (δεν χρησιμοποιείται)
| Όνομα μεταβλητής | Ιδιότητα | Περιγραφή |
|---|---|---|
| SA_CoarseSolver | I | Επιλυτής χονδρού πλέγματος (0: αυτόματα, 1: χρήση του εξομαλυντή, 2: άμεση μέθοδος πυκνού πίνακα, 3: MUMPS (παράλληλη άμεση μέθοδος)) (Προεπιλογή: 0) (Στην αυτόματη λειτουργία χρησιμοποιείται MUMPS σε μεταγλωττίσεις με ενεργοποιημένο MUMPS· διαφορετικά χρησιμοποιείται η άμεση μέθοδος πυκνού πίνακα) |
| SA_Smoother | I | Εξομαλυντής (0 ή 1: Τσεμπίσεφ) (Προεπιλογή: 0) (Υποστηρίζεται μόνο ο Τσεμπίσεφ. Εάν καθοριστεί άλλη τιμή, εξάγεται προειδοποίηση και χρησιμοποιείται ο Τσεμπίσεφ) |
| SA_MGCycle | I | Κύκλος πολυπλέγματος (0: προεπιλογή (κύκλος W), 1: κύκλος V, 2: κύκλος W) (Προεπιλογή: 0) (Ο πλήρης κύκλος V δεν υποστηρίζεται) |
| SA_MaxLevels | I | Μέγιστος αριθμός επιπέδων (Προεπιλογή: 20) |
| (δεν χρησιμοποιείται) | I | Θέση που αντιστοιχεί στο σχήμα αδροποίησης του ML. Επειδή το SA-AMG χρησιμοποιεί πάντα ασύνδετη συσσωμάτωση, μια μη μηδενική τιμή προκαλεί προειδοποίηση και αγνοείται |
| SA_ChebyDegree | I | Βαθμός του πολυωνύμου του εξομαλυντή Τσεμπίσεφ (Προεπιλογή: 2) |
| SA_CoarseSize | I | Μέγεθος αποκοπής χονδρού πλέγματος (Προεπιλογή: 50000 όταν χρησιμοποιείται το MUMPS ως επιλυτής χονδρού πλέγματος· διαφορετικά 100) |
| SA_MaxAggSize | I | Μέγιστο μέγεθος συσσωματώματος (Προεπιλογή: 96) |
| SA_GalerkinLowMem | I | Μέθοδος υπολογισμού του πίνακα χονδρού πλέγματος (0: κανονική (προτεραιότητα στην ταχύτητα), θετική τιμή: εξοικονόμηση μνήμης) (Προεπιλογή: 0) (Καθορίστε θετική τιμή εάν η μνήμη δεν επαρκεί κατά την αρχικοποίηση) |
| (δεν χρησιμοποιείται) | I | Δεσμευμένο για μελλοντικές επεκτάσεις |
Η 5η γραμμή αφορά αποκλειστικά το SA-AMG και δεν διαβάζεται από το ML.
(5η γραμμή) SA_Theta, SA_ChebyAlpha, SA_Safety, SA_TaperK, SA_AggOrder, SA_MinAggSize, SA_Verify, SA_DumpVTK
| Όνομα μεταβλητής | Ιδιότητα | Περιγραφή |
|---|---|---|
| SA_Theta | R | Κατώφλι προσδιορισμού ισχυρών συνδέσεων (Προεπιλογή: 0.0) (Για 0.0, η μη μηδενική δομή του πίνακα χρησιμοποιείται απευθείας ως γράφος) |
| SA_ChebyAlpha | R | Λόγος που καθορίζει το κάτω όριο του διαστήματος ιδιοτιμών στο οποίο στοχεύει ο εξομαλυντής Τσεμπίσεφ (Προεπιλογή: 20.0) |
| SA_Safety | R | Συντελεστής ασφαλείας που εφαρμόζεται στην εκτιμώμενη μέγιστη ιδιοτιμή (Προεπιλογή: 1.1) |
| SA_TaperK | R | Συντελεστής K της βαθμιαίας αδροποίησης (Προεπιλογή: 100) (Από το επίπεδο 2 και μετά, η αδροποίηση γίνεται πιο σταδιακή ώστε να παραμένουν τουλάχιστον περίπου K συσσωματώματα. Αρνητική τιμή απενεργοποιεί τη βαθμιαία μεταβολή) |
| SA_AggOrder | R | Σειρά σάρωσης της συσσωμάτωσης (0: προεπιλογή (σειρά BFS), 1: σειρά BFS, 2: σειρά κατακερματισμού αριθμών κόμβων (πειραματικό), 3: αύξουσα σειρά βαθμού (πειραματικό), 4: φθίνουσα σειρά βαθμού (πειραματικό), αρνητική τιμή: σειρά αριθμών κόμβων) (Προεπιλογή: 0) |
| SA_MinAggSize | R | Ελάχιστο μέγεθος συσσωματώματος (Προεπιλογή: 3) |
| SA_Verify | R | Εάν θα εκτελείται αυτοέλεγχος κατά την αρχικοποίηση (0: όχι, θετική τιμή: ναι) (Προεπιλογή: 0) (κυρίως για αποσφαλμάτωση) |
| SA_DumpVTK | R | Εάν θα εξάγεται σε μορφή VTK η συσσωμάτωση του ανώτατου επιπέδου (0: χωρίς έξοδο, θετική τιμή: έξοδος) (Προεπιλογή: 0) (κυρίως για αποσφαλμάτωση) |
Παράδειγμα¶
Χρησιμοποιήστε CG με προρρύθμιση SSOR και θέστε τον μέγιστο αριθμό επαναλήψεων σε 10000 και την ανοχή σύγκλισης σε 1.0e-8
Χρησιμοποιήστε GMRES με προρρύθμιση SSOR και θέστε το μέγεθος υποχώρου Krylov σε 40 και τον στόχο αριθμού χρωμάτων για πολυχρωματική διάταξη σε 100
Χρησιμοποιήστε CG με προρρύθμιση ILU(0) και θέστε τον συντελεστή κλιμάκωσης που εφαρμόζεται στα διαγώνια στοιχεία κατά τον υπολογισμό του πίνακα προρρύθμισης σε 1.1
Χρησιμοποιήστε AMG μέσω ML ως προρρυθμιστή για CG
Χρησιμοποιήστε AMG μέσω ML ως προρρυθμιστή για CG και MUMPS ως επιλυτή χονδρού πλέγματος (για δύσκολα προβλήματα)
Χρησιμοποιήστε AMG μέσω ML ως προρρυθμιστή για CG και κύκλο W ως κύκλο πολυπλέγματος (για δύσκολα προβλήματα)
Χρησιμοποιήστε AMG μέσω ML ως προρρυθμιστή για CG, MUMPS ως επιλυτή χονδρού πλέγματος και θέστε τον μέγιστο αριθμό επιπέδων σε 2 (για πολύ δύσκολα προβλήματα)
Χρησιμοποιήστε το ενσωματωμένο στο HEC-MW SA-AMG ως προρρύθμιση για το CG
Χρησιμοποιήστε SA-AMG ως προρρύθμιση για το CG και MUMPS ως επιλυτή χονδρού πλέγματος
Σε ανάλυση επαφής με τριβή, χρησιμοποιήστε BiCGSTAB με προρρύθμιση SA-AMG και εξαγάγετε τη δομή ιεραρχίας της προρρύθμισης AMG