warunek wstępny dla metody bez macierzy rozwiązania Ax = b

9

Muszę rozwiązać Ax = b, ale zdaję sobie sprawę, że nawet jeśli jest on rzadki, przechowywanie współczynników macierzy mojego problemu zajmie zbyt dużo pamięci. Zastanawiam się teraz nad użyciem metody bez macierzy, ponieważ te same współczynniki pojawiają się w macierzy dużo czasu, więc mogłem użyć własnego prywatnego schematu przechowywania (i przy okazji zwiększyć wydajność pamięci podręcznej).

Patrzę na petsc, który zapewnia interfejs dla takich operatorów liniowych bez matrycy, ale tak naprawdę nie rozumiem, w jaki sposób oblicza się warunki wstępne przez petsc? A może powinienem dostarczyć własny warunek wstępny? Jeśli tak, to czy są dostępne narzędzia lub przepisy do konstruowania warunku wstępnego od operatora liniowego bez matrycy?

Więcej informacji o moim operatorze: jest niesymetryczny, nie dominuje po przekątnej, ale jest zdominowany przez kilka pasm bocznych (ale nie ma też pasma po przekątnej)

nat chouf
źródło

Odpowiedzi:

7

Musisz rzucić własny warunek wstępny. Jeśli znasz matrycę, implementacja czegoś takiego jak na przykład warunek wstępny SSOR nie powinna być trudna. Jeśli wiesz coś jeszcze na temat problemu, na przykład, że pochodzi on z PDE, którego rozwiązanie można dobrze przybliżyć do grubszej siatki, możesz również rozważyć zbudowanie warunków wstępnych, ograniczając problem do grubszej siatki, rozwiązując go i rozszerzając rozwiązanie wróciło do pierwotnego. Ograniczenia i przedłużenia mogą być realizowane jako operacje bez macierzy.

Wolfgang Bangerth
źródło