Μετάβαση στο περιεχόμενο

!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η και επόμενες γραμμές **

(2η γραμμή) NITER, iterPREmax, NREST, NCOLOR_IN, RECYCLEPRE
Όνομα μεταβλητής Ιδιότητα Περιγραφή
NITER I Αριθμός επαναλήψεων (Προεπιλογή: 100)
iterPREmax I Αριθμός επαναλήψεων προρρύθμισης Additive Schwarz (Προεπιλογή: 1)
(Συνιστώμενη τιμή: 1· το 2 μπορεί να είναι αποτελεσματικό σε ορισμένους παράλληλους υπολογισμούς)
NREST I Μέγεθος υποχώρου Krylov (Προεπιλογή: 10)
(Ισχύει μόνο όταν το GMRES επιλέγεται ως μέθοδος επίλυσης)
NCOLOR_IN I Στόχος αριθμού χρωμάτων για πολυχρωματική διάταξη (Προεπιλογή: 10)
(Ισχύει μόνο όταν ο αριθμός νημάτων OpenMP είναι 2 ή μεγαλύτερος)
RECYCLEPRE I Αριθμός επαναχρησιμοποιήσεων των πληροφοριών ρύθμισης του προρρυθμιστή (Προεπιλογή: 3)
(Ισχύει μόνο σε μη γραμμική ανάλυση)
(3η γραμμή) RESID, SIGMA_DIAG, SIGMA
Όνομα μεταβλητής Ιδιότητα Περιγραφή
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

!SOLVER, METHOD=CG, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Χρησιμοποιήστε GMRES με προρρύθμιση SSOR και θέστε το μέγεθος υποχώρου Krylov σε 40 και τον στόχο αριθμού χρωμάτων για πολυχρωματική διάταξη σε 100

!SOLVER, METHOD=GMRES, PRECOND=1, ITERLOG=YES, TIMELOG=YES
  10000, 1, 40, 100
  1.0e-8, 1.0, 0.0

Χρησιμοποιήστε CG με προρρύθμιση ILU(0) και θέστε τον συντελεστή κλιμάκωσης που εφαρμόζεται στα διαγώνια στοιχεία κατά τον υπολογισμό του πίνακα προρρύθμισης σε 1.1

!SOLVER, METHOD=CG, PRECOND=10, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.1, 0.0

Χρησιμοποιήστε AMG μέσω ML ως προρρυθμιστή για CG

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Χρησιμοποιήστε AMG μέσω ML ως προρρυθμιστή για CG και MUMPS ως επιλυτή χονδρού πλέγματος (για δύσκολα προβλήματα)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

Χρησιμοποιήστε AMG μέσω ML ως προρρυθμιστή για CG και κύκλο W ως κύκλο πολυπλέγματος (για δύσκολα προβλήματα)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  1, 1, 2

Χρησιμοποιήστε AMG μέσω ML ως προρρυθμιστή για CG, MUMPS ως επιλυτή χονδρού πλέγματος και θέστε τον μέγιστο αριθμό επιπέδων σε 2 (για πολύ δύσκολα προβλήματα)

!SOLVER, METHOD=CG, PRECOND=5, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3, 1, 1, 2

Χρησιμοποιήστε το ενσωματωμένο στο HEC-MW SA-AMG ως προρρύθμιση για το CG

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0

Χρησιμοποιήστε SA-AMG ως προρρύθμιση για το CG και MUMPS ως επιλυτή χονδρού πλέγματος

!SOLVER, METHOD=CG, PRECOND=22, ITERLOG=YES, TIMELOG=YES
  10000, 1
  1.0e-8, 1.0, 0.0
  3

Σε ανάλυση επαφής με τριβή, χρησιμοποιήστε BiCGSTAB με προρρύθμιση SA-AMG και εξαγάγετε τη δομή ιεραρχίας της προρρύθμισης AMG

!SOLVER, METHOD=BiCGSTAB, PRECOND=22, ITERLOG=YES, TIMELOG=YES, LOGLEVEL=1
  10000, 1
  1.0e-8, 1.0, 0.0