messenger.py

W niniejszym pliku wykonywane są wszystkie operacje związane z tworzeniem modelu numerycznego, oraz rozwiązywanie założonego problemu.

Skrypt wykorzystuje ideę gońca - zostaje stworzony obiekt zawierający informacje o geometrii, warunkach brzegowych, lokalizacji GMSH’a i Calculix. Tak określony kontener na informacje zostaje wykorzystany w dalszych modułach dzięki czemu uzyskuje się lepszą przejrzystość i zwartość kodu.

messenger.main(dane, frt)

Funkcja służąca do tworzenia geometrii, oraz przeprowadzania operacji przy użyciu GMSH’a i Calculix’a.

Parametry:
  • dane (dictionary) – kontener zawierający dane pobrane z GUI. Wartości w kontenerze zapisane są w formacie klucz (typ string) : wartość (typ string).
  • frt (string) – zmienna decydująca o tym czy użytkownik chce zmienić wizualizację obiektu czy też uruchomić symulację. Zmienna przyjmuje wartości stl lub inp. W przypadku pierwszej opcji wykonywane są operacje mające na celu zmianę wyświetlanego obiektu. Wartość inp odpowiada za uruchomienie symulacji.
Zwraca:

Funkcja zwraca wartość True lub False określając tym samy poprawność wykonanych operacji

Typ zwracany:

bool

Przykład kodu zawartego wykorzystanego w pliku ‘messenger.py’:

def main(dane,frt):
    from senderClass import Sender
    # Stworz gońca
    Goniec = Sender()
    # Pobierz dane z GUI
    Goniec.pobierzDane(dane)
    # Testuj dane
    Goniec.testujDane()
#==============================================================================
#   Wyślij parametry do funkcji obliczających położenie punktów geometrii
#==============================================================================
    import objectGeometry
    objectGeometry.obliczWymaganeParametry(Goniec)
#==============================================================================
#   Stwórz geometrię na podstawie obliczonych parametrów    
#==============================================================================
    import gmshInputFile
    gmshInputFile.przygotujPlik(Goniec,frt)
#==============================================================================
#   Wyślij geometrię do programu GMSH
#==============================================================================
    from senderClass import SenderBrain
    # Przekaż wiadomości z gońca do obiektu wykonującego operacje na programach zewnętrznych 
    Brain = SenderBrain(Goniec)
    Brain.utworzGeometrie(pokazGmsh=False) 
    Brain.dyskretyzujGeometrie()   
#==============================================================================
#   Instrukcja warunkowa która pozwala na rozróżnienie sygnału wysłanego w celu
#   wizualizacji wyników od sygnału z prośbą o rozpoczęcie symulacji
#==============================================================================
    if frt == 'stl':
        # Wizualizuj obiekt
        Brain.wizualizacjaObiektu()
    if frt == 'inp':
        # Usun pozostalosci po poprzedniej symulacji jeśli istnieją
        Brain.przygotujSymulacje()
        
        import calculix
        # Przystosuj siatke z pliku wsadowego do użycia w Calulixie
        calculix.konwertujSiatke(Goniec)
        # Stwórz plik wsadowy do Calculixa
        calculix.stworzPlikWsadowy(Goniec)
        # Rozwiąż problem przy użyciu Calculixa i zaprezentuj wyniki
        Brain.rozwiazProblem(pokazWyniki=True)
    return True