Диференцируем дизайн
Кликваш върху детайла, виждаш градиента, оптимизираш на живо: физика, диференцирана по формата, и честната граница, която я държи инструмент за пресяване.
Кликнах върху радиуса на едно филе на плоча с отвор и градиент ми каза точно в коя посока да го дръпна, преди да съм пуснал солвъра отново.
Това не е трик с визуализация. Това е производна на физиката спрямо формата, изчислена директно, с реален FEM солвър в цикъла през цялото време.
Защо това е необичайно
Обикновено на въпроса “как се променя напрежението, ако уголемя това филе” се отговаря чрез проба-грешка: сменяш геометрията, преоформяш мрежата, решаваш отново, сравняваш. Нито MOOSE, нито FEniCSx — два солидни, общопризнати FEM инструмента — не дават директно производната d(физика)/d(форма). Получаваш единичен отговор на всеки солв, не посока, в която да се движиш.
Построихме CutFEM солвъри с градиент, който тече директно през тях. В момента това покрива 20 диференцируеми физически режима, подкрепени от 125 от 125 живи теста, преминаващи успешно. Основите се проверяват на нивото, за което наистина държи един числен инженер: patch тестовете са точни до машинна прецизност, а производната по геометрия съвпада с проверки чрез крайни разлики.
Геометрия като два слоя, не като една мрежа
Частта, която прави възможно “кликни и виж градиента”, е как представяме геометрията. Има два слоя. Първият е рецепта — редактируемо дърво от features, начинът, по който CAD потребител вече мисли: това филе, онзи отвор, тази екструзия. Вторият е theta обвивка — облак от гаусови surfels, върху които физическият солвър реално смята. Двата слоя са диференцируеми в двете посоки: theta се преобразува в signed-distance поле, което солвърът консумира, а обратният път theta → SDF → CutFEM solve възпроизвежда полето с относителна грешка 0.0212.
Граничните условия се закотвят по feature, не по стена. “Захвати филе 5” фиксира точно възлите, принадлежащи на това филе, не общо лице — с равновесен остатък 1.95e-6. Пълният градиент dJ/d{mu, sigma, w} тече през целия граф, и го проверихме срещу крайни разлики: съвпадение до 3.4e-4, комфортно под нашия праг от 1e-2.
Какво направи на реален проблем
Плоча с отвор — класически случай на концентрация на напрежение. Оптимизирайки по пиково напрежение, живият run премести пиковото von Mises напрежение от 209.5 MPa на 180.8 MPa — намаление от 13.7%, при това монотонно през целия път, не с късметлийска единична стъпка.
Грешката, за която платихме с експеримент
Първият ни инстинкт беше да оптимизираме средното напрежение, защото е по-гладък, по-лесен за диференциране сигнал. Пуснахме го. Средното von Mises напрежение едва помръдна — -0.2% — защото средното се доминира от далечното поле, голямата част от материала, който почти не е натоварен. Отворът почти не се усеща в средна стойност.
Това е грешната цел. Частите не се чупят при средното; умората започва от пика. Оптимизирането на средното напрежение убедително оптимизира грешното нещо. Открихме това само защото пуснахме и двете и ги сравнихме — малък резултат, но от онези грешки, които изглеждат напълно разумни, докато не ги провериш срещу това как парчетата реално се чупят.
Какво променя това и какво не
Продуктовата рамка тук има значение: двигателят не връща воксел решетка или облак от точки, който човек трябва да преинтерпретира. Връща редактируемо предложение — кой feature да се премести и с колко, на същия език на дървото от features, с който геометрията е започнала. Проверихме и че пътят за експорт работи end-to-end: TorchScript преминава напълно точно, а ONNX експортът държи до 9.7e-7 при размер на модела 10.6 MB. Значи това не е заседнало в изследователски notebook — деплойва се.
Ето честното ограничение, и то тежи повече от всяко число по-горе: този оптимизационен цикъл се доверява на формата на полето на напрежение от суроgat модела, за да насочи градиента в полезна посока, но на нашия собствен geometry-disjoint тест за точност грешката в местоположението и стойността на пика не е на ниво за сертификация — най-добрият ни модел все още не покрива собствения ни праг за точност с широк марж върху невиждана геометрия. Това означава, че днес този инструмент е за подреждане и пресяване: много добър е да ти каже коя посока намалява напрежението и приблизително с колко, в случаите вътре в зоната си на комфорт. Все още не е замяна на сертифициран солв преди да режеш метал. Всяко предложение трябва да бъде повторно проверено през реалния солвър, преди да стане решение — същата дисциплина, която прилагаме навсякъде другаде в проекта.
Мисля, че това е честният начин да опишеш диференцируем инструмент за дизайн на този етап: бърз, посочва вярната посока, реално полезен за изследване на дизайн пространство — и все още отговорен пред реален солвър в края.
Ако сте градили или използвали градиентна оптимизация на форма, кога градиентът ви посочи грешна посока и как го хванахте?
Обсъди NeuroCAD като пилот или инвестиционна възможност.
Working MVP/demo е наличен за квалифицирани разговори.
Контакт с founder-а