Jeżeli do oprogramowania inżynierskiego można podpiąć własne procedury to NVIDIA udostępnia darmowy driver NVCC za pomocą którego można kompilować kod napisany w C. Można to robić z Visual Studio (od wersji 10) pod Windows lub używając gcc pod Linuxem.
Wówczas oprogramowanie optymalizuje się pod posiadaną kartę graficzną. Warto mieć kartę o CUDA capability większym niż 2.0 ze względu na obsługę typu double.Zobacz Komentarze Newsów
Czy ktoś z forum korzysta może z Elmera? Bardzo ciekawi mnie jak to działa. Bo z tego tutka wynika, że jest OK, a tymczasem ja próbowałem... bezskutecznieZobacz Komentarze Newsów
od dłuższego czasu czytam o teorii MES. Spotkałem się z wieloma różnymi opisami tego zagadnienia, ale każdy podchodzi do tematu inaczej (generalnie albo wyjaśnienie na samych sprężynach, albo Direct Stiffness Method na elementach 1D albo równania różniczkowe z postacią słabą itp.). Zaskakujące jest to, że często w opisach dot. mechaniki pomija się zupełnie równania różniczkowe.
Największym problemem jest jednak to, że nigdzie nie jest wyjaśnione jak właściwie działają profesjonalne programy do MES, jak to liczą, z których metod korzystają.
Zastanawiam się jak to jest np. przy typowej analizie naprężeń (liniowa statyka). Tam raczej program nie rozwiązuje przekształconych równań różniczkowych tylko robi to jakoś bezpośrednio. Ale tzw. Direct Stiffness Method (bezpośrednie rozwiązywanie równania macierzowego Ku=F po złożeniu macierzy sztywności) ponoć nie nadaje się do 2D ani 3D. Więc jak taki Abaqus czy ANSYS to robi ?
Co w przypadku innych zagadnień np. CFD albo przepływu ciepła czy prądu ? Wtedy już konieczne jest równanie różniczkowe i jego dyskretyzacja ? Przykładowo ANSYS czy COMSOL obsługują wiele typów analiz (od liniowej statyki po optykę, elektromagnetyzm czy akustykę). Kiedy więc rozwiązują równania różniczkowe ?
Odp. 1: Gdzie się podziały tamte równania? (różniczkowe)
Zacytuję panów Rakowskiego i Kacprzyka z książki tychże Panów [MES w mechanice konstrukcji]:
"Wymienimy dwie z możliwych dróg dochodzenia do modelu dyskretnego. Jedna to dyskretyzacja równań różniczkowych opisujących kontinuum, prowadząca do klasycznej metody różnic skończonych. Druga, tzw. dyskretyzacja fizyczna, polega na podziale rozpatrywanego kontinuum na skończoną liczbę części (elementów) o podobnym kształcie, założeniu sposobu połączeń elementów w węzłach, przyjęciu parametrów węzłowych oraz funkcji interpolacyjnych, ustaleniu związków między parametrami węzłowymi i wreszcie 'zszyciu' elementów w całość. Prowadzi to do szczególnie nas interesującej metody elementów skończonych"
PS Książkę polecam, naprawdę, ale to naprawdę przystępna.
PS2 Dalsze odpowiedzi wkrótce.
Edytowane przez czacza dnia 08/09/2018 07:58
Odp. 2: Jak liczą profesjonalne programy MES? (i te amatorskie też)
Odpowiem na przykładzie autorskiego programu MES, do napisania którego bazowałem na procedurach książkowych i elementach skończonych książkowych (a więc założyć można, że bardzo podobnie [oczywiście bardziej wydajnie] robią to programy profesjonalne). A więc algorytm wygląda następująco (liniowa statyka, elementy tarczowe, 4 węzły, po 2 stopnie swobody w węźle):
1. Wprowadzenie do pamięci węzłów elementów, to znaczy współrzędnych i numerów tychże.
2. Zadeklarowanie pustej globalnej macierzy sztywności o wymiarze liczba węzłów razy liczba stopni swobody w węźle.
3. Zbudowanie elementów na węzłach, to znaczy wprowadzenie do globalnej macierzy sztywności składników z macierzy sztywności zbudowanego elementu. Dla przykładu: element jest zbudowany na węzłach 1, 2, 3, 4. Z bazy elementów skończonych (wcześniej wprowadzona do programu) pobieramy jego macierz sztywności o wymiarze 8 na 8. I teraz do odpowiednich składników globalnej macierzy sztywności dodajemy składniki z macierzy elementu. W kodzie wygląda to tak:
#Aggregation of global stiffnes matrix gklist
for i in range(8):
for j in range(8):
self.gklist[dofs[i], dofs[j]] += klist[i][j]
4. Zastosowanie warunków brzegowych. Pozwól, że zacytuję znów własny kod. W każdym razie tu sposoby są różne, a prowadzą do tego samego. W efekcie dostajemy jeszcze wektor obciążeń węzłowych o długości równej liczbie węzłów razy liczba stopni swobody w węźle.
"""
Application of constraints:
for forces (value != 0) direct entry into forces matrix
for supports (value == 0) apply procedure of installation of the homogeneous bc
set row c in gklist to 0
set column c in gklist to 0
set diagonal elements c in gklist to 1
set element c in flist to 0
"""
6. Obliczenia. Oprócz globalnej macierzy sztywności mamy też już wektor obciążeń. A więc rozwiązujemy układ równań, który możemy zapisać symbolicznie jako Ku = f, gdzie K to globalna macierz sztywności, a f to wektor obciążeń. Rozwiązać ten układ równań możemy na wiele sposobów: metodą eliminacji Gaussa (jak na kartce) (i będzie to direct rozwiązanie, to jest wprost), metodą najmniejszych kwadratów iteracyjnie (już nie direct) lub zaawansowanymi metodami, które są szybsze, wydajniejsze i mogą być albo direct albo iteracyjne. A więc co do słowa direct - to chodzi o sposób rozwiązania układu równań liniowych. W tej chwili już i duże problemy można rozwiązywać bezpośrednio - metody są szybkie i nie tak zasobożerne, no dają radę. A iteracyjnie można rozwiązać problemy gigantyczne, bo korzystają z pamięci mało. U mnie w programie dzieje się to tak: https://docs.scipy.org/doc/numpy-1.14.0/reference/generated/numpy.linalg.solve.html#numpy.linalg.solve
7. Wyliczenie odkształceń z przemieszczeń. Wyliczenie naprężeń z odkształceń. No i koniec.
PS Ansys też tak to robi. Można wybrać czy chcemy użyć solwera direct solution czy iterative.
Edytowane przez czacza dnia 08/09/2018 09:19
Dziękuję bardzo za rozbudowaną odpowiedź.
A czy ten algorytm z ostatniego posta to nie jest przypadkiem Direct Stiffness Method (polskiej nazwy chyba nie ma, ale chodzi o takie postępowanie jak przy ręcznym liczeniu prostych konstrukcji belkowych, kratowych lub ramowych) ? Myślałem, że to tylko nadaje się do 1D. Czyli profesjonalne programy typu Abaqus czy Ansys liczą tak też w 2D i 3D ?
No i w takim razie równania różniczkowe w statyce najwyraźniej nie są potrzebne. A w innych zagadnieniach ?
Planuję odpowiedzieć na dalsze pytania również. Zajawkowo napiszę, że w innych zagadnieniach następuje dyskretyzacja równań różniczkowych w czasie i przestrzeni, a dopiero po tym obliczenia. OpenFOAM dla przykładu bazuje na polach tensorowych, do których możemy doczepić wybrane równania różniczkowe, po czym wybrać metodę ich dyskretyzacji i w czasie i w przestrzeni.
W międzyczasie odnośnik do https://www.colorado.edu/engineering/CAS/courses.d/IFEM.d/IFEM.Ch02.d/IFEM.Ch02.pdf
Pada tam takie zdanie: This Chapter begins the exposition of the Direct Stiffness Method (DSM) of structural analysis.The DSM is by far the most common implementation of the Finite Element Method (FEM). Inparticular, all major commercial FEM codes are based on the DSM.
Nie wiedziałem, że to tak się nazywa (Direct Stiffness Method). Stosuję się to podejście do wszystkich typów elementów w obliczeniach wytrzymałościowych. Głównie spotyka się kratownice w opracowaniach, bo są proste i na nich się tłumaczy. Ale można to również zrobić na sześciennym elemencie.
Po polsku może być to skojarzone z metodą przemieszczeniową (ale to niesprawdzone - tak tylko kojarzę).
PS Zgadza się z tą metodą przemieszczeniową - direct stiffness method. Czesi pomagają w tłumaczeniu: Deformační metoda, anglicky direct stiffness method, slouží pro výpočet napjatosti a deformace prutových konstrukcí. To z artykułu na Wikipedii.
Edytowane przez czacza dnia 08/09/2018 12:53
Na Wikipedii (wiem, niezbyt wiarygodne źródło, ale też nie kompletnie do niczego) też pada takie zdanie: "Today, nearly every finite element solver available is based on the direct stiffness method".
Czyli najwyraźniej znane programy też z tego korzystają przynajmniej dopóki mówimy o liniowej statyce. Pytanie co w przypadku CFD czy przepływu ciepła ? Wtedy równania różniczkowe są już pewnie nieuniknione.
Ale z kolei w jednej książce (autorstwa Bhavikatti) jest "The analysts tried to extend the matrix method to two dimensional problems also. The only element in which it could be done successfully was the three noded element (CST-element)." To jakby sugeruje, że ta metoda DSM nie nadaje się nawet do wszystkich elementów w 2D, a co dopiero 3D ...
Edytowane przez BE-FEA dnia 08/09/2018 13:03
Teraz musimy dojść do porozumienia w nazewnictwie:
Stiffness method to nazwa dla Displacement method. Jest jeszcze Flexibility method, pod inną nazwą Force method. Większość programów MES bazuje na metodzie przemieszczeniowej - liczy się przemieszczenia.Tu duża kropka.
Teraz tak, słowo Direct możemy odnieść do dwóch rzeczy. Pierwsza: do globalnej macierzy dodajemy (direct) znane wcześniej i podane (direct) składniki macierzy elementów. I to dodawanie do macierzy jest wprost i macierz elementu jest określona z góry i wprost zaszyta w programie. Stąd direct. Jeśli te pola naprężeń elementów byłyby dyskretyzowane w programie, żeby otrzymać macierze to wtedy byłoby nie direct. Druga: element możemy sformułować na kilka sposobów: min. Direct, Variational i pewnie coś jeszcze. Ale nazwa Direct w direct stiffnes method tyczy się metody. W książce, którą podałeś autor przypisuje słowo Direct z metody do sposobu formułowania elementu.
Wszystko rozbija się o nazewnictwo (częściowo przynajmniej). To jak kto zbuduje element skończony nie odbiera metodzie Direct z nazwy. Tak to rozumiem. I tego będę się trzymał. Przynajmniej dzisiaj.
W sumie ma to sens, bo w książce nie jest w tym miejscu napisane, że chodzi o Direct Stiffness Method tylko autor zrobił 3 rozdziały o zbiorczej nazwie "Assembling Stiffness Equations". Pierwszy ma podtytuł "Direct Approach" (z niego pochodzi cytat), drugi "Galerkin's Method, Virtual Work Method" zaś trzeci "Variational Method".
Ale w każdym razie Direct Stiffness Method jest podstawą działania programów takich jak Abaqus czy Ansys dopóki mówimy o zwykłej statyce, zgadza się ?
Pytanie co w innych przypadkach - wtedy rozumiem to tak, że postać słaba równania różniczkowego musi zostać wykorzystana w obliczeniach.
Zastanawia mnie jeszcze to kiedy korzysta się z minimalizacji energii potencjalnej (metoda Rayleigha-Ritza) a kiedy z zasady prac przygotowanych (Galerkin - postać słaba) w mechanice. Rozumiem, że w bardziej zaawansowanych przypadkach niż statyka.
Jest jeszcze równanie ruchu Naviera, które zdaje się być podstawą analiz takich jak frequency response.
Tak, metoda przemieszczeniowa jest powszechnie wykorzystywana w obliczeniach liniowej statyki, nieliniowej statyki, z kontaktami, materiałami nieliniowymi, w drganiach i pewnie jeszcze jakichś przypadkach. Można zaryzykować stwierdzeniem, że w większości problemów, gdzie korzysta się z algorytmiki implicit w wytrzymałości.
Co do zasady prac przygotowanych czy minimalizacji energii potencjalnej to te pojęcia tyczą się nie tyle obliczeń co formułowania elementu skończonego. Element skończony można na kilka sposobów wyprowadzić, a jak się go będzie liczyć to już oddzielna kwestia, niezwiązana z tymi dwoma terminami.
Co do równań różniczkowych to jeszcze się odezwę. Ale w CFD programy albo mają wiele schematów ich dyskretyzacji by móc problem rozwiązać numerycznie lub ktoś wbił zdyskretyzowane na kartce równania prosto do programu. Polecam poczytać o OpenFOAMie. Będzie to tam trochę opisane.
Nie znam się za bardzo na problemach dynamiki w wytrzymałości. Ciekawy jestem jak to tam wygląda. Poczytam i może też coś dopowiem.
W jeszcze jednej książce znalazłem potwierdzenie, że Direct Method/DSM (te pojęcia są ze sobą blisko związane) nadaje się tylko do elementów 1D, gdzie znamy dokładne rozwiązania równań różniczkowych a w przypadku elementów 2D i 3D już tak różowo nie jest i trzeba aproksymować rozwiązanie, a więc wyjść od równania różniczkowego (dalej będę je nazywał PDE od Partial Differential Equation żeby nie przedłużać) i uzyskać jego postać słabą (swoją drogą słyszałeś o czymś takim jak postać półsłaba ? miałem to dawno temu na wykładach z MES a później już nigdzie tego nie spotkałem czytając o tej metodzie). Do tego zwykle wykorzystuje się metodę ważonych reziduów Galerkina.
Zatem chyba można uznać, że mam odpowiedź na pierwsze nurtujące mnie pytanie - gdzie są PDE w statyce. Idąc dalej, można stwierdzić, że w literaturze bardzo często spotyka się opisy MES w zagadnieniach przepływu ciepła (oczywiście oprócz najczęściej omawianej mechaniki ciał stałych) z wykorzystaniem PDE Fouriera. Jest więc sporo informacji na ten temat. Ale mnie nurtuje sposób w jaki programy liczą inne zagadnienia - takie jak mechanika płynów czy elektromagnetyzm. O tym drugim wiem bardzo niewiele (oprócz tego, że korzysta się z równań Maxwella), więc próbuję coś znaleźć o przepływie płynów. Niestety większość książek opisuje tylko samą mechanikę płynów i równania Naviera-Stokes'a bez sposobu ich wykorzystania w MES. Inna sprawa, że w CFD raczej stosuje się metodę objętości skończonych a nie MES (np. Fluent tak ma). Chociaż są i programy liczące płyny MES-em np. COMSOL. I to mnie na razie interesuje, bo na FVM się jeszcze nie znam.
Skocz do Forum:
Reklama
Szukaj
Logowanie
Nie jesteś jeszcze naszym Użytkownikiem? Kilknij TUTAJ żeby się zarejestrować.
Tylko zalogowani mogą dodawać posty w shoutboksie.
Bulix 26.01.2022 Witam, szukam osoby która ogarnia program FEMM.
damian14100 25.01.2022 Witam,
Czy znajduje się na forum osoba która ma doświadczenie w obliczeniach wytrzymałościowych wózków wagonowych ?
BE-FEA 31.03.2021 Nie pracuję w Deform, ale może coś podpowiem na zasadzie analogii do innych programów MES. Napisz jeśli nadal aktualne.
daniel8894 31.03.2021 Czy pomógłby ktoś w zrobieniu symulacji procesu skrawania w Deform 3 d
BE-FEA 09.03.2021 Postaram się pomóc, zapraszam do kontaktu jeśli nadal aktualne.
kinia22 09.03.2021 witam, potrzebuje kogoś kto pomoże w przygotowaniu projektu w programie COMSOL - przeplyw ciepła przez ośrodek porowaty!
BE-FEA 02.04.2020 Przerobiło mi jedną literę na emotkę. Chodzi o przycisk new thread
BE-FEA 02.04.2020 Żeby dodać nowy temat wystarczy wejść w odpowiedni dział i kliknąć mały przycisk "ew thread" po prawej stronie.
KrzywaOHIO 30.03.2020 Jak dodać nowy wątek na forum?
Konrad96 02.12.2019 Witam, czy jest tu ktoś kto dobrze zna się na programie Robot struktural i pomógłby mi zamodelować belkę żelbetową podobną do belki użytej w badaniu? Proszę o kontakt jeśli ktoś chciałby pomóc