Obliczenia statyczne w programie wykonywane są dokładną macierzową metodą przemieszczeń. W każdym projekcie na podstawie macierzy sztywności poszczególnych prętów układu, budowana jest globalna macierz sztywności układu, a następnie na podstawie zadanych obciążeń ustalany jest dla poszczególnych grup obciążeń wektor wyrazów wolnych. Dla tak zbudowanego układu równań wyznaczane są wszystkie przemieszczenia węzłowe, osobno dla każdej grupy obciążeń, przez wielokrotne rozwiązywanie układu równań liniowych z dużą liczbą niewiadomych. Na podstawie otrzymanych przemieszczeń węzłowych i obciążeń przyłożonych do poszczególnych prętów wyznaczane są wartości sił wewnętrznych, przemieszczeń, reakcji, a następnie liczone są naprężenia normalne w poszczególnych przekrojach prętów.
W aktualnej wersji programu Rama 3D w znacznym stopniu zmieniono metodologię wykonywania obliczeń statycznych, a zwłaszcza rozwiązywania wielkich układów równań liniowych. Wprowadzone zmiany przyspieszają działanie algorytmów liczących w różnych przypadkach obliczeniowych ze szczególnym uwzględnieniem układów zawierających pręty na mimośrodzie. Wprowadzone w programie zmiany i modyfikacje obejmują:
• Wymianę podstawowej biblioteki matematycznej „mtj.jar” na nowszą wersję z poprawioną obsługą pamięci.
• Optymalizację algorytmu przygotowania danych do obliczeń dla układów z prętami na mimośrodzie.
• Zmianę współczynnika stosunku sztywności między prętami na mimośrodzie a prętami wirtualnymi z 1000 na 100 000, skutkującą zwiększoną dokładnością wyników, bez wpływu na szybkość obliczeń.
• Implementację algorytmu renumeracji węzłów o najniższej różnicy numerów kolejnych węzłów metodą „reverse Cuthill-McKee” - renumeracja działa tyko podczas obliczeń i jest niezauważalna dla użytkownika.
• Zmianę metodologii przygotowania macierzy sztywności do obliczeń oraz rozdzielenie metod przygotowania macierzy dla układów z mimośrodami i pozostałych układów. Aktualnie do rozwiązywania układu równań liniowych stosowana jest iteracyjna metoda gradientów sprzężonych (Conjugate Gradient Method, CG). Do realizacji uwarunkowania wstępnego (preconditioning) dla układów zawierających mimośrody stosowany jest algorytm niekompletnej faktoryzacji Cholesky’ego (Incomplete Cholesky Factorization, Incomplete Cholesky Preconditioning, ICC), dla układów bez mimośrodów stosowany jest algorytm realizacji uwarunkowania wstępnego na podstawie głównej przekątnej macierzy współczynników (Diagonal preconditioner).
• Wprowadzenie obsługi możliwości wykorzystania do czterech wątków na komputerach HT, Core 2 Duo i Quad, przy rozwiązywaniu układów równań dla wielu grup obciążeń, skutkujące dalszą redukcją czasu obliczeń.
Dodatkowo w programie wykonano
optymalizację algorytmu oczyszczania
i weryfikacji projektu na etapie
kontroli modelu obliczeniowego.
Ponieważ rozwiązanie układów równań metody przemieszczeń wykonywane jest przez program przybliżoną metodą iteracyjną, w niektórych przypadkach uzyskuje się wymaganą zbieżność metody, mimo tego że układ jest faktycznie geometrycznie zmienny. Dlatego też pod koniec obliczeń statycznych wprowadzono dodatkowe zabezpieczenie polegające na sprawdzeniu przemieszczeń liniowych wszystkich węzłów od sumy wszystkich grup obciążeń i ich porównaniu z maksymalnym rozmiarem układu. W przypadku gdy przemieszczenia te przekraczają maksymalny rozmiar układu po obliczeniach wyprowadzony jest odpowiedni komunikat informacyjny podający numery prętów, dla których wystąpiło to przekroczenie. Pozostawiono również w tym przypadku możliwość analizy otrzymanych wyników (mimo że układ z dużym prawdopodobieństwem jest geometrycznie zmienny lub przyjęte w modelu obciążenia są absolutnie nieadekwatne do założonych w projekcie przekrojów prętów). Dla wielu złożonych układów statycznych takie podejście umożliwia łatwe wychwycenie (na podstawie wartości ugięć) miejsc, w których założono niewłaściwe więzi, skutkujące powstaniem układów geometrycznie zmiennych.
Uwaga:
Ze względu na wykorzystanie w programie automatycznego systemu przydzielania pamięci, przed przystąpieniem do procesu obliczeń złożonych struktur prętowych, zaleca się zapisanie gotowego projektu na dysku oraz zamknięcie programu. W takich przypadkach (dla złożonych struktur) zaleca się rozpocząć proces obliczeń statycznych i budowania obwiedni zaraz po ponownym wczytaniu zapisanego na dysku projektu. Taka procedura pozwala na optymalne wykorzystanie przydzielonej przez program pamięci w trakcie obliczeń.