Mühendislikte Hızlandırılmış Simülasyonların Önemi
Modern mühendislik, yenilik hızının hızlandırılmış simülasyonlar gerçekleştirme becerisiyle yakından ilişkili olduğunu göstermektedir. Bilgisayar destekli mühendislik (CAE), performans ve güvenliği doğrulama işlemlerinde önemli bir rol oynamaktadır. Geleneksel sayısal simülasyonlar genellikle doğru sonuçlar verirken, çalıştırma süreleri saatler, günler veya haftalar sürebilmektedir. Bu uzun simülasyon süreleri, birçok tasarım seçeneğini keşfetmeyi zorlaştırmakta ve tasarım ile analiz arasında verimli bir geri bildirim döngüsü sağlamakta zorluk çıkarmaktadır.
Fizik Tabanlı AI Modelleri ile Zaman Tasarrufu
Simülasyon sürelerini azaltmak için mühendisler giderek daha fazla fizik tabanlı yapay zeka (AI) modellerini gececektirme aracı olarak kullanmaktadır. Geleneksel simülasyon verileriyle eğitilen bu modeller, sonuçları genellikle saniyeler veya dakikalar içinde tahmin edebilmekte ve böylece mühendislerin daha geniş tasarım alternatiflerini hızlıca keşfetmesine olanak tanımaktadır.
Bu yöntem, geleneksel çözücülerin yerini almak yerine onları tamamlayıcı bir niteliğe sahiptir. Temel tasarım aşamaları için ideal olan bu model, umut verici tasarımların belirlenmesine yardımcı olmakta ve daha hassas, güvenilir çözücülerle bu tasarımların doğrulanmasını sağlamaktadır.
NVIDIA Teknolojileri ile Uygulama Süreci
Bu yazıda, otomotiv aerodinamiği için bir uç durum senaryosu sunulmaktadır. Yazılım geliştiricileri ve mühendislerin AI destekli simülasyonların avantajlarından yararlanmalarına olanak tanıyan modüler ve uzatılabilir bir iş akışı paylaşılmaktadır. Aşağıdaki bölümler, iş akışındaki her aşamayı ve aracı tanıtacaktır:
- Veri ön işleme:NVIDIA PhysicsNeMo Curator kütüphanesi, mühendislik ve bilimsel veri setlerini düzenlemeye ve işlemeye yardımcı olmakta; AI model eğitim iş akışlarının daha hızlı hazırlanmasını sağlamaktadır.
- AI fizik modeli eğitimi:NVIDIA PhysicsNeMo aracılığıyla, karmaşık mühendislik simülasyonları için AI yedek modellerinin eğitimini gerçekleştirebilirsiniz.
- Dağıtım ve çıkarım:NVIDIA NIM mikro hizmetleri ile, önceden eğitilmiş modelleri dağıtmak için etkin ve ölçeklenebilir bir çözüm. Bu sayede AI destekli tahminler standart API’ler aracılığıyla erişilebilir hale gelmektedir.
- Gerçek zamanlı etkileşimli görselleştirme:NVIDIA Omniverse ve Kit-CAE ile, mühendisler büyük CAE simülasyon veri setlerini gerçekçi 3D ortamlarında keşfedebilir.
Aerodinamik Vaka Çalışması ve Veri Seti
Bu yazıda, çeşitli Ahmed vücut tasarımlarını içeren hafif ama bilgilendirici bir veri seti kullanılacaktır. Aerodinamik simülasyonlar için ideal olan bu veri seti, 3D geometri, basınç dağılımları ve duvar kayma gerilimi alanlarını içermektedir. Küçük boyutu, ağır depolama veya hesaplama gereksinimlerini çiğnemeden hızlı denemelere olanak tanırken öğretim, prototipleme ve hızlı yineleme için de uygundur. Daha fazla bilgi için, veri setini indirin. Kendi özel CAE verilerinizi harekete geçirmek için, PhysicsNeMo platformuna başlayın.
NVIDIA PhysicsNeMo ile Veri Ön İşleme
PhysicsNeMo, fizik tabanlı simülasyonlar için AI modelleri oluşturmak, eğitmek ve ince ayar yapmak üzere açık kaynaklı bir derin öğrenme çerçevesidir. Birçok model desteklemektedir, bu modeller arasında DoMINO ve X-MeshGraphNet gibi gelişmiş mimariler bulunmaktadır. DoMINO, büyük ölçekli simülasyonlarda akış alanlarını tahmin ederken, X-MeshGraphNet, 3D geometri dosyalarından doğrudan grafik inşa ederek ölçeklenebilirliği artırmaktadır.
PhysicsNeMo Curator, DoMINO veri ön işleme sürecinin ana motorudur ve GPU kullanarak bilimsel ve mühendislik veri setlerinin ETL (çıkarma, dönüştürme ve yükleme) işlemlerini hızlandırmaktadır. Özelleştirilmiş DoMINO ETL boru hattı, ham VTK (.vtu, .vtp) ve STL dosyalarını makine öğrenmesine uygun formatlara dönüştürmektedir. Geometri, hacim ve yüzey ağlarını işleyebilir, basınç ve duvar kayma gerilimi gibi alanları çıkararak, türlerinin yanı sıra indirgeme işlemleri gerçekleştirebilir. Çıktılar, tekrar üretilebilirlik için istatistikleri koruyacak şekilde sıkıştırılır.
NVIDIA PhysicsNeMo ile AI Fizik Modeli Eğitimi
PhysicsNeMo, karmaşık mühendislik simülasyonları için AI yedek modellerinin eğitimini sağlarken aynı zamanda DoMINO ve X-MeshGraphNet gibi ölçeklenebilir mimariler sunarak CFD iş akışlarını hızlandırmayı hedefler.
DoMINO Model Mimarisi
Geleneksel makine öğrenmesi (ML) modelleri, karmaşık mühendislik simülasyonları için genellikle zorluklarla karşılaşmaktadır. DoMINO modeli, büyük ölçekli fiziksel sorunları modellemek amacıyla bir çok ölçekli, iteratif bir sinir operatörü içerir. Girdi olarak bir geometri (STL dosyası) alır ve yüzey basıncı, duvar kayma gerilimi ile hacimsel hız alanlarını tahmin eder.
DoMINO mimarisi üç ana aşamada çalışmaktadır:
- Küresel geometri temsili: Model, nokta bulutlarından çok ölçekli bir kodlama öğrenir ve kısa ve uzun menzilli bağımlılıkları yakalar.
- Yerel geometri temsili: Model, çözümü değerlendirerek yerel alt bölgeler oluşturur ve dinamik nokta evrişim çekirdekleri kullanarak yerel kodlamalar çıkarır.
- Toplama ağı: Her nokta etrafında komşuları örnekleyerek bir hesaplama şablonu oluşturur ve yerel kodlamaları bir araya getirerek her noktadaki çözümü tahmin eder.
DoMINO’yu Eğitme Adımları
DoMINO, eğitim ve test işlemlerini YAML yapılandırma dosyaları kullanarak gerçekleştirir. Üç aşama tamamlanarak eğitim gerçekleştirilir:
- Adım 1: Ayarları yapılandırın
- src/conf dizinine gitmek ve
config.yaml
dosyasını düzenlemekle başlayın. Bu dosya, veri, eğitim ve test parametrelerinizi belirlemenize olanak tanır. - Veri bölümünde, eğitim ve doğrulama verilerinin yollarını ve simülasyon sahasındaki sınır kutusu boyutlarını tanımlayın.
- Eğitim bölümünde, eğitim parametrelerini, epoch sayısını ve parti boyutunu ayarlayabilirsiniz.
- Önbelleğe alınmış veriler kullanıyorsanız,
conf/cached.yaml
dosyasını kullanmalısınız.
- src/conf dizinine gitmek ve
- Adım 2: Modeli eğitin
- Eğitim sürecine başlamak için
train.py
dosyasını çalıştırın. - DoMINO modeli, hem tek hem de çoklu GPU eğitimini destekler. Dağıtık eğitim için
torchrun
veya MPI kullanabilirsiniz. - Eğer eğitim süreci belleksiz hata (OOM) ile kesilirse, yapılandırma dosyasında hacim ve yüzey alanları için örneklenen nokta sayısını ayarlayarak GPU için bellek gereksinimlerini yönetebilirsiniz.
- Model, otomatik kontrol noktası oluşturma özelliği de sunmaktadır, böylece kesilirse en son kontrol noktadan devam edebilirsiniz.
- Eğitim sürecine başlamak için
- Adım 3: Modeli test edin ve sonuçları görselleştirin
- Eğitim sonrası
test.py
komut dosyasını çalıştırarak modeli ham simülasyon dosyaları üzerinde test edin. - Yapılandırma dosyasında değerlenecek anahtarı değiştirerek kontrol noktasını, girdi ve çıktı dizinlerini belirtmeyi unutmayın. Test verileri, işlenmiş .npy dosyaları yerine ham simülasyon formatında olmalıdır.
- Tahminler, aynı test dosyalarına yazılır. Sonuçları indirdikten sonra, model performansınızı değerlendirmek için Paraview gibi bir araçta görselleştirebilirsiniz.
- Eğitim sonrası
X-MeshGraphNet Model Mimarisi
GNN’ler, geleneksel CFD çözücülerine hızlı bir alternatif sunmaktadır, ancak genellikle yüksek çözünürlüklü ağlarda ölçeklenebilirlik üzerinde zorluklarla karşılaşmaktadırlar.
X-MeshGraphNet, ölçeklenebilirliği artırmak için şu üç yeniliği sunmaktadır:
- Bölümlü grafikler: Büyük grafikleri daha küçük örtüşen alt grafiklere ayırarak bellek ve hesaplamayı azaltır.
- Ağ olmadan grafik inşası: Grafikleri doğrudan 3D geometri verilerinden inşa etmektedir.
- Çok ölçekli grafik incelemesi: Farklı ölçeklerde etkileşimleri yakalayarak, eğitim sırasında parçaların tüm grafik ile uyumlu olmasını sağlar.
X-MeshGraphNet Eğitimi İçin Adımlar
- Adım 1: Modeli yapılandırın – Yüzey klasörüne gidin ve
conf/config.yaml
dosyanızı yapılandırarak veri seti yolunu kontrol edin. - Adım 2: Verileri hazırlayın – Veri setindeki STL dosyalarını tek bir katı olarak birleştirin.
combine_stl_solids.py
komutunu çalıştırarak tek bir katı oluşturun ve yüzey nokta bulutunun oluşturulmasında kullanın. - Adım 3: Grafiklerin ön işlenmesini yapın –
preprocessing.py
dosyasını çalıştırarak bölümlü grafikleri hazırlayın ve kaydedin. - Adım 4: Doğrulama ayarlayın –
partitions_validation
adında bir klasör oluşturun ve kullanmak istediğiniz örnekleri buraya taşıyın. - Adım 5: İstatistikleri hesaplayın –
compute_stats.py
dosyasını çalıştırarak eğitim örneklerinizden global ortalama ve standart sapmayı hesaplayın. - Adım 6: Eğitime başlayın – Son olarak
train.py
komut dosyasını çalıştırarak eğitim işlemini başlatın.
NVIDIA NIM ile Dağıtım ve Çıkarma
Bir yedek model eğitildikten sonra, mühendislik iş akışlarına dağıtılması gerekmektedir. NVIDIA NIM mikro hizmetleri, öngörücü AI modellerini standard API’ler aracılığıyla erişilebilir hale getirerek entegrasyonu kolaylaştırmaktadır. NIM mikro hizmetleri yerel, bulut veya kenarda çalıştırılabilir.
DoMINO-Automotive-Aero NIM kullanarak işlem yapıldığında, 3D geometrileri STL formatında alır ve tahminleri yaparak yüzey ve hacim alanlarını çıktı olarak verir.
DoMINO-Automotive-Aero NIM’i Çalıştırma
DoMINO-Automotive-Aero NIM, araç aerodinamik simülasyonları için güçlü bir araçtır. En iyi sonuçlar için modelin girdi ve çıktılarının anlaşılması önemlidir.
Girdiler
Modeli çalıştırmak ve tahminleri elde etmek için gereken spesifik girdiler:
- Araç STL’si: Araç geometrisinin su geçirmez ve doğru yönlendirilmiş bir STL dosyası olarak sağlanması gerekmektedir.
- Hız girişi: Araç önündeki akış hızını belirtmelisiniz. En iyi doğruluk için, bu değer 20 ile 60 m/s arasında olmalıdır.
- Şablon boyutu: Bu parametre modelin doğruluğunu kontrol etmektedir. Daha büyük şablon boyutları daha doğru sonuçlar verir, ancak aynı zamanda hesaplama maliyetini ve çalışma süresini artırır.
- Hacim örnekleme noktaları: Araç çevresindeki hacimde örneklemek için seçeceğiniz noktaların sayısı, tahmin edilen akış alanlarının doğruluğunu belirler. Daha fazla nokta, daha detaylı sonuç sağlar, ancak hesaplama maliyetini de artırır.
Aşağıdaki kod parçacığı, bir STL dosyası ve diğer parametreleri çıkarım API’sine göndermeyi göstermektedir:
import httpx
import io
import numpy as np
# Çıkarma API'sinin URL'sini tanımla
url = "http://localhost:8000/v1/infer"
# Çıkarma isteği için parametreleri tanımla
data = {
"stream_velocity": "30.0",
"stencil_size": "1",
"point_cloud_size": "500000",
}
# STL dosyasını aç ve NIM'e gönder
with open("your_vehicle.stl", "rb") as stl_file:
files = {"design_stl": ("your_vehicle.stl", stl_file)}
r = httpx.post(url, files=files, data=data, timeout=120.0)
Çıktılar
NIM, simülasyonu analiz etmenize yardımcı olacak çeşitli çıktılar sağlar:
- Yüzey akış parametreleri: Model, aracın yüzeyinde basınç dağılımlarını ve yakın duvar ölçümlerini tahmin eder.
- Hacim akış alanları: Aracın çevresindeki hacimdeki akış dinamiği parametreleri, hız, basınç ve karmaşık akış parametreleri ile verilir.
- Ekstra özellikler: Çıktı ayrıca, akışa göre geometriyi görselleştirmenize yardımcı olacak Signed Distance Field (SDF) ve hesaplama alanını tanımlayan sınır kutusu detaylarını içerir.
API’den alınan yanıt, sıkıştırılmış bir NumPy dizisi şeklindedir. Aşağıdaki kod parçacığı çıktıyı yükleyip incelemeye yardımcı olmaktadır:
# Yanıt içeriğini NumPy dizisine yükle
with np.load(io.BytesIO(r.content)) as output_data:
output_dict = {key: output_data[key] for key in output_data.keys()}
print(output_dict.keys())
NVIDIA Omniverse ile Gerçek Zamanlı Görselleştirme
NVIDIA Omniverse, 3D uygulamalar oluşturmak, bağlamak ve çalıştırmak için kullanılan bir platformdur. Bu platform, OpenUSD ve RTX teknolojilerini kullanarak gerçek zamanlı işbirliği ve yüksek kaliteli sanal dünyalar sağlar. Ayrıca ürün tasarımı, robotik, otonom araçlar ve tesis simülasyonları gibi alanlarda kullanılır.
CAE’de, AI yedek model tahminleri Kit-CAE ile görselleştirilir. Kit-CAE, veri işleme ve görüntüleme için bir Omniverse örneğidir ve HDF5, CGNS, VTK ve NumPy gibi bilimsel veri setlerini doğrudan kullanılabilir hale getirir.
DoMINO-Automotive-Aero NIM’den alınan tahminleri ve ilgili STL dosyasının araç geometrisini Omniverse’de görselleştirmek için izlemeniz gereken adımlar:
- Adım 1: Çıkarma yapın: Önceki bölümde belirtildiği gibi belirli bir STL dosyasıyla NIM’i çağırın ve çıkarım sonuçlarını bir NumPy arşivi (.npz) olarak kaydedin.
- Adım 2: Kit-CAE’yi kurun: GitHub deposunu klonlayın ve README kılavuzundaki talimatları izleyerek Kit-CAE örnek uygulamasını başlatın.
- Adım 3: Dosyaları içe aktarın: İçe aktarma menüsünü kullanarak STL ve NPZ dosyalarını OpenUSD formatına dönüştürün ve 3D sahneye ekleyin. NumPy dosyasını nokta bulutu veri seti olarak içe aktarmanız gerekecektir.
- Adım 4: Sonuçları görselleştirin: İçe aktarılan NumPy veri seti primitifinin üzerine sağ tıklayıp, veri işleme ve görselleştirme için önceden tanımlanmış CAE algoritmalarından birini çalıştırın.
AI Desteğiyle Simülasyonlara Başlayın
AI destekli simülasyon iş akışı, bu yazıda otomotiv aerodinamiği örneği ile gösterildiği gibi, herhangi bir simülasyon odaklı endüstri için evrensel bir çerçevedir. Yüksek kaliteli simülasyon verilerini hızlı AI modellerini eğitmekte kullanarak gerçek zamanlı, etkileşimli analiz olanakları sunmaktadır. Böylece uzun çalışma süreleri, maliyetli tasarım iterasyonları ve yavaş geri bildirim döngüleri gibi sorunlara çözüm sunmaktadır.
Uygulamaları şunları içermektedir:
- Havacılık: Kanat ve uçak optimizasyonu, yeniden giriş sırasında aerotermal etkilerin analizi.
- Enerji: Türbülanslı akış optimizasyonu, ısı değiştiricileri ve rüzgar enerji santrali dizilimleri.
- Üretim: Enjeksiyon kalıbı analizi ve alet tasarımı hızlandırma.
- İnşaat mühendisliği: Tünel ya da metro sistemlerindeki rüzgar yüklerinin ve hava akışlarının hızlı değerlendirilmesi.
- Elektronik: Veri merkezleri, sunucular ve pil paketleri için gerçek zamanlı termal analiz.
Bu GPU hızlandırmalı platform, simülasyon ve mühendislik tasarım süreçlerini ileri taşıyan temel bir teknolojidir.