PrePoMax, często zadawane pytania

W związku z ograniczoną dokumentacją do programu PrePoMax, tu będą umieszczane odpowiedzi na najczęściej zadawane pytania.

Spis tresci

      
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

1 Posługiwanie się PrePoMax

1.1 Program zawiesza się przy najprostszych operacjach

Warto przede wszystkim sprawdzić poprawność instalacji samego programu oraz to, czy na komputerze zainstalowany jest Microsoft .NET Framework 4.8. Jeżeli nie - zainstalować go ze strony Microsoft .

Jeżeli program zainstalowany jest poprawnie i jest to wersja stabilna, to warto zgłosić błąd na forum użytkowników PrePoMax, rozdział Bug reports .

1.2 Jak przesunąć model na ekranie PrePoMax?

Do tego służy kombinacja Shift+ środkowy klawisz (albo "kółko") myszy.

1.3 Czy istnieją dodatkowe palety kolorów do wyświetlania wyników w PrePoMax?

W zaczynając od wersji 1.1.0, PrePoMax zawiera 11 rodzajów palet opisanych w instrukcji dotycżacej instalacji  programu. Cześć z nich (np. paleta Warm) przeznaczona jest do wyświetlania dodatnich wyników (np. naprężeń von Misesa). Niestety program wciąż nie nie daje możliwości uźytkownikowi na zdefiniowanie swojej własnej palety.

1.4 Jaka jest różnica pomiędzy opcjami "0 mm"/"0 rad" i "Fixed" przy definicji umocowania?

Opcja Fixed oznacza niezmienność przemieszczeń uzyskanych na poprzednim kroku analizy w czasie bieżącego kroku. Np. badanie wpływu wstępnego rozciągania na częstotliwość drgań struny wymaga rozwiązania najpierw zagadnienia statycznego (rozciąganie struny), a dopiero później zagadnienia drgań własnych. W czasie tego drugiego kroku naprężenia i przemieszczenia uzyskane na kroku poprzednim muszą być uwzględnione.

Podsumowując, na pierwszym kroku analizy w warunkach brzegowych mogą wystąpić tylko liczbowe wartości przemieszczeń lub obrotów. Dopiero na drugim kroku w niektórych przypadkach potrzebujemy opcję Fixed.

1.5 Jak poprawnie zamodelować znany z SWS "Nieruchomy zawias"?

W skrócie – jako umocowanie zdalne cylindrycznej powierzchni odpowiedniego otworu. Tu najważniejsze nie pomylić się i poprawnie określić jakie stopnie swobody we węźle umocowanym na osi otworu są wyzerowane, a jakie nie. W załączonym przykładzie dla wersji 1.3.5  w lewej podporze ① ten węzeł jest unieruchomiony (BC typu Fixed), co prowadzi do faktycznego unieruchomienia powierzchni otworu. W prawej podporze ② pozwolono na obrót wokół oss Z (BC typu Displacement/rotation), co daje oczekiwany efekt "zawiasu" pokazany niżej.


Uwaga praktyczna. W załączonym przykładzie dodatkowo w "zawiasie" uwolniono przemieszczenia w kierunku X tylko po to. żeby mieć podporę przesuwną. Prawdziwy "kanoniczny zawias" to oczywiście 3 zablokowane przemieszczenia w środkowym węźle + 2 obroty.

1.6 Dlaczego w strefie zdalnego obciążenia czasem widoczne są nierealnie wysokie naprężenia?

Przypomnienie teorii. Zdalne obciążenie może być albo doskonale "sztywne" (w Nastranie temu odpowiada element RBE2), albo doskonale "miękkie" (w Nastranie – RBE3). I jedno i drugie - skrajne sytuację, które nie spotykane są w rzeczywistości. "Platą" za to są czasami nierealne naprężenia w strefach zdalnego obciążenia/umocowania, które trzeba ignorować.

Rysunek wyżej pokazuje schemat rozciągania tarczy "sztywnym" obciążeniem zdalnym. Umocowanie tarczy po lewej stronie (nieruchomy punkt + podparcie na krawędzi) umożliwia jej kurczenie się w kierunku prostopadłym do kierunku rozciągania.


"Sztywne" obciążenie zdalne oznacza, że program najpierw tworzy doskonale sztywne ciało w kształcie prawej krawędzi tarczy i do tego ciała przykłada obciążenie. Ciało to nie może się skurczyć i dlatego wynikają wysokie naprężenia w strefie przejściowej pomiędzy sztywnym ciałem a "zwykłym" materiałem.

2 Dodatkowe możliwości CalculiXa

Celem preprocesora PrePoMax jest wygenerowanie wejściowego pliku z rozszerzeniem .INP dla programu CalculiX (dalej CCX). Plik ten składa się z poleceń CCX (zaczynają się od znaku "*", czyli pojedynczej "gwiazdki"), parametrów tych poleceń, danych liczbowych i komentarzy (zaczynają się od "**"). Obecnie możliwości PrePoMax ograniczone są do najczęściej używanych poleceń CCX, ale istnieje możliwość dodawania dodatkowych poleceń do INP-pliku zarówno z poziomu PrePoMax tak i ręcznie, poprzez edycję tego pliku w dowolnym edytorze tekstowym.

2.1 Jak dodać polecenie CCX do INP-pliku z poziomu PrePoMax?

To jest szczegółowo pokazane w tym filmie na YT. W skrócie:

  1. Menu: Model / Edit CalculiX Keywords

  2. Rozwiń gałąź poleceń do poziomu, na którym chcesz dodać polecenie.
  3. Zaznacz polecenie, po którym zostanie dodane nowe polecenie
  4. Naciśnij Add keyword
  5. Wpisz polecenie i jego parametry, OK
Uwaga praktyczna. Nazwy poleceń i parametrów można pisać dużymi lub małymi literami, chociaż odwieczna:-) tradycja wymaga stosowania dużych liter.

2.2 Jak automatycznie obliczyć reakcje wypadkową?

Metoda "ręczna" opisana niżej NIE jest konieczna. Ten sam efekt można uzyskać z poziomu interfejsu PrePoMax, co opisane jest w instrukcji  dotyczącej zagadnień 3D.

Zakładamy, że strefa umocowania jest zdefiniowana w zbiorze węzłów o nazwie Umocowanie. Wtedy na końcu odpowiedniego kroku analizy (czyli przed *END STEP) dodaj polecenie:

*NODE PRINT, Nset=Umocowanie, TOTALS=ONLY
RF

Oczywiście reakcji węzłowe (RF) muszą wcześniej być zdefiniowane, jako jeden z wyników węzłowych.
Po ukończeniu analizy w pliku tekstowym .dat będą wartości składowych reakcji dla strefy umocowania w globalnym układzie współrzędnych.


Jeżeli umocowanie było definiowane na zasadzie zwykłego zaznaczenia jednej lub kilku odpowiednich powierzchni lub krawędzi, to jako nazwę odpowiedniego zbioru węzłów trzeba podać nazwę automatycznie przypisaną przez PrePoMax. Można ją znaleźć w gałęzi Node sets.

2.3 Jak automatycznie zagęścić siatkę w miejscach występowania największych naprężeń?

  1. Oblicz zagadnienie na siatce domyślnej, wyznacz największą wartość naprężeń von Misesa. Załóżmy, że jest to 40 MPa.
  2. Dodaj na końcu odpowiedniego kroku analizy (czyli przed *END STEP) polecenie:

    *REFINE MESH, LIMIT=20
    S

    Oznacza ono, że w strefach, w których naprężenia zredukowane przekroczą 20 MPa, siatka będzie zagęszczona tyle razy ile wynosi iloraz występujących tam naprężeń w odniesieniu do wartości podanej jako LIMIT. W danym przypadku siatka zostanie zagęszczona maksymalnie dwukrotnie, bo 40/20=2.
  3. Poza naprężeniami (S) w tym poleceniu można używać między innymi:

    Pełna lista tych parametrów jest w dokumentacji CalculiX.

  4. Zaczynając od wersji 2.20, CalculiX pozwala ograniczyć strefę zagęszczania siatki do wybranej grupy elementów, czyli do wybranej części modelu. Pozwala to w przypadku pojedynczej części nie rozważać strefy np. umocowania lub karbów, w których wysoki poziom naprężeń powiązany jest z uproszczeniami przy modelowaniu. W przypadku złożeń można ograniczyć proces zagęszczania siatki tylko do wybranych części. W takim przypadku polecenie ma następującą postać:

    *REFINE MESH, LIMIT=20,ELSET=
    S

    gdzie jest zdefiniowaną wcześniej (np. za pomocą Element Sets na drzewku PrePoMax) nazwą grupy elementów, której będzie dotyczyć procedura zagęszczania siatki.
  5. Po uruchomieniu tak zmodyfikowanego pliku wejściowego, CCX przeprowadzi kilka analiz, zagęszczając siatkę po każdej z nich, aż do uzyskania zbieżności.
  1. Metoda ta działa tylko na siatkach z elementów 3D (wyłącznie typu tet, czyli czworoboków liniowych C3D4 lub parabolicznych C3D10). Nie działa dla siatek z elementów powłokowych.
  2. Praktyka pokazuje, że stare dobre przemyślane ręczne zagęszczanie siatki w odpowiednich strefach działa lepiej niż ta metoda.
  3. Nie ma sensu stosować tę metodę w modelu, który zawiera ostre karby lub inne uproszczenia, w okolicach których mamy teoretycznie nieskończone naprężenia.
  4. Niższe wartości parametru LIMIT pozwalają uzyskać dokładniejsze wyniki, ale pojawia się niebezpieczeństwo błędów przy generacji nowej siatki (elementy z ujemnym jakobianem). Doświadczenie pokazuje, że minimalną granicą LIMIT musi wynosić co najmniej 25% maksymalnej wartości naprężeń.
  5. Teoretycznie zamiast poziomu naprężeń do zagęszczania siatki można stosować wskaźnik błędu. Wtedy odpowiednie polecenie będzie przykładowo wyglądać tak:

    *REFINE MESH, LIMIT=10
    ERR

    co oznacza zagęszczenie siatki we wszystkich strefach, w których poziom wskaźnika błędu przekroczy 10%. Niestety u mnie osobiście ta metoda nie działa.

2.4 Jak wyprowadzić przemieszczenia wzdłuż wybranej linii w modelu do pliku razem ze współrzędnymi?

Ani PrePoMax, ani CCX nie mają odpowiednich poleceń, więc trzeba zrobić kilka kroków:

  1. Najpierw definiujemy jeden lub więcej zbiorów węzłów (Node sets), przemieszczenia których chcemy wyprowadzić do pliku. Wyżej wybrano dwa takie zbiory o nazwach srodkowy i zewnetrzny. Dalej można działać na dwa sposoby: używając interfejsu PrePoMax lub edytując INP-plik.
  2. 2.4.1 Definicja używająca interfejs programu

  3. Po utworzeniu kroku: PPM na History Outputs, wybierz Create.

  4. W oknie dialogowym:
    1. Zaznacz Node output
    2. Zmień domyślną nazwę na bardziej czytelną
    3. Jako typ zmiennych do wyprowadzenia do pliku wybierz U, czyli przemieszczenia węzłowe
    4. Na liście Totals wybierz No. Oznacza to, że do pliku zostaną wyprowadzone same przemieszczenia w węzłach a nie ich sumy.
    5. Jako źródło zbioru węzłów wybierz Node set name
    6. Na liście Node set wybierz nazwę istniejącego zbioru zewnetrzny
  5. Powtarzamy tę procedurę dla każdego kolejnego zbioru węzłów, np. dla zbioru srodkowy
  6. 2.4.2 Definicja poprzez edycję INP-pliku

  7. Tu wszystko jest prościej – Na końcu odpowiedniego kroku analizy dodajemy do INP pliku polecenia:

    *NODE PRINT, NSET=srodkowy
    *NODE PRINT, NSET=zewnetrzny

2.4.3 Obliczenia i generacja wejściowego pliku do wykresu

Po rozwiązaniu zadania CCX utworzy plik tekstowy o nazwie .dat, w którym będą trzy składowe przemieszczeń i numer każdego węzła.

  1. Niestety w tym pliku brak współrzędnych węzłów. Ale one są w INP-pliku. Opracowałem prosty skrypt Pythona , który na podstawie tych INP- i DAT-plików utworzy tekstowe pliki srodkowy.out i zewnetrzny.out, każdy z których zawiera dwie kolumny: wybrana współrzędna węzła i odpowiednia wartość przemieszczenia.
    Przykład składni polecenia do obróbki plików:

    python displ4plot.py powloka.inp powloka.dat 1 -2

    Tu:
    displ4plot.py — nazwa skryptu,
    powloka.inp i powloka.dat — nazwy plików INP i DAT
    1 — indeks współrzędnej węzła (1 oznacza X, 2 – Y, 3 – Z)
    -2 — oznacza, że wyprowadzamy drugą (tzn. Y) współrzędną przemieszczeń w węźle i zmieniamy jej znak na przeciwny. Taka operacja czasem jest wskazana, jeżeli odpowiednie przemieszczenia mają ujemne wartości, a my chcemy mieć na wykresie wartości dodatnie.

  2. Prosty wykres wykonany w gnuplot  pokazuje końcowy wygład takiego wykresu.
  3. Uwaga praktyczna. Do uruchomienia skryptu wymagany jest interpreter języka Python. Nie koniecznie go instalować, ponieważ bardzo dużo programów już go zawiera. Plik podany wyżej poza skryptem zawiera prosty plik wsadowy, który wykorzystuje Python, który jest składnikiem LibreOffice. Wystarczy sprawdzić, czy ścieżka dostępu do pliku python.exe podana w tym pliku jest poprawna, podać swoje nazwy INP- i DAT-plików + dwa pozostałe parametry i uruchomić plik wsadowy.

3 Błędy, problemy

3.1 Po zagęszczeniu siatki mam komunikat o błędzie (ujemna wartość Jakobianu). Co robić?

To dość częsty problem i wynika on z niedoskonałości programu Netgen używanego wewnątrz PrePoMax do generacji siatki. Użytkownicy i autor PrePoMax w takiej sytuacji zalecają zrezygnować z opcji umieszczania środkowych węzłów na geometrycznej powierzchni ciała. Niestety bardzo często (szczególnie przy automatycznym zagęszczaniu siatki za pomocą *REFINE MESH) jest to zła metoda. Zamiast otworów i zaokrągleń dostajemy wieloboki z ostrymi karbami, sztucznie zawyżamy naprężenia. Więc stosować tę metodę trzeba bardzo ostrożnie.

W przypadku elementów czworokątnych źródłem problemu jest to, że program Netgen, używany w PrePomax do generacji siatki, tworzy elementy czworokątne poprzez połączenie elementów trójkątnych. Czasem w wyniku połączenia dwóch nieznacznie zniekształconych elementów trójkątnych pojawia się niedopuszczalnie zniekształcony element czworokątny (patrz rysunek wyżej). Co robić w takiej sytuacji:

  1. Czasem pomaga Model / Tools / Remesh elements.
  2. Jeżeli to nie pomogło – albo zmieniamy parametry dla całej siatki (np. max rozmiar elementu), albo robimy zagęszczenia siatki w strefach, w których są zniekształcone elementy czworokątne (program podaje ich numery).

Ten przypadek został omówiony w tym  wątku na forum użytkowników PrePoMax.

3.2 Program wyświetla komunikat, że odczytany projekt został utworzony w wersji niekompatybilnej z moją. Co robić?

Jednym z największych ograniczeń bieżącej wersji PrePoMax jest niekompatybilność każdej wersji ze wszystkimi poprzednimi i następnymi. Z tego powodu warto trzymać się jednej wersji i mieć u siebie tyle wersji PrePoMax, ile rodzajów projektów mamy.
Obecnie sytuacja już zaczyna się zmieniać i projekty zrobione w wersjach 1.N.0-1.N.x, gdzie x jest numerem wersji, są de facto kompatybilne.

W przypadku poważniejszych problemów adaptacja projektu zrobionego w poprzedniej wersji polega na:

  1. Usunięciu definicji materiału na drzewku i ponowna go definicja, np. przez Material Library.
  2. Ewentualnej ponownej definicji warunków brzegowych (umocowania i obciążenia).


© I.Rokach, 2021-22, v.3.2.0, 13.11.2022, dla PrePoMax 1.3.5, Calculix 2.20