Блог о программном обеспечении

Зачем оно нужно?
Публиковать для себя разные вещи, чтобы потом не искать их у себя по разным папкам.
И, конечно, - делиться открытой информацией с другими.
Коротко по темам Caelinux - самый инженерный дистрибутив линукс;
CalculiX - мощная программа для расчетов по МКЭ;
OpenOffice Basic - то что легче выучить и затем эффективно использовать
Maxima - символьная математика от Вильяма Шеллтера, профессора Остинского университета. Все прочее - понемногу.
Showing posts with label МКЭ. Show all posts
Showing posts with label МКЭ. Show all posts

Немного на тему размера сетки и анализа результатов

Данный пост навеян темой, помеченной как важная.
Постараюсь сфомулировать свой ответ.
С одной стороны - ответ очевиден. МКЭ - численный метод, для стержневых элементов это разновидность метода перемещений и сетка в общем случае не важна (в некоторых частных случаях - это зависит от математической реализации КЭ и вида задачи), для оболочечных и объемных элементов - чем мельче сетка, тем лучше результат.
Существуют так называемые графики сходимости - в которых по горизонтальной оси откладывают парамер мелкости (например количество элементов) а по вертикальной - требуемый результат (перемещение, напряжение, момент и тд). С измельчением сетки результат ассимтотически стремиться к некоторому конечному числу (исключения - точки сингулярности, где напряжения и моменты - стремяться к бесконечности). Начиная с некоторой мелкости (в зависимости от типа элемента, особенности конструкции, нагрузок и тд) - точность результирующей величины становится достаточной для инженерных целей. Если это верификационная задача и точное значение известно - можно сравнивать с ним. Если точное значение не известно - можно судить по поведению графика, насколько близко он подошел к пределу.
Зависит, как уже было упомянуто - от типа элемента (математической формулировки, которая бывает разной), от градиента рассматриваемой величины в данной области (например если величина меняется резко - сетка нужна мельче). Имея некоторый опыт решения верификационных задач в своей программе, инженер может вполне достоверно судить о достаточности дискретизации.
Сильно мелкая сетка увеличивает время счета - нет смысла сильно мельчить. К тому же любая математическая модель (даже самая подробная) - является приближением к истине, и зачастую требуется лишь оценить результат (сильно детализированные модели очень часто приводят к ошибкам чисто человеческим, из за сложности контроля и оценки результатов).
 Это все - ясно и очевидно.
Далее - ниже, некотрое "лирическое" отступление от темы.
Есть теория упругости и ее уравнения. Уравнения согласно теореме единственности имеют единственное точное решение для каждой величины. Их вы и находите используя МКЭ.
Но помимо точного решения в математической постановке (то есть в том смысле - как точно численный метод решает теоретическую задачу) есть еще такой важный момент- насколько теория упругости далеко отстоит от реальности, то есть насколько точна оценка физически а не математически.
Это уже не имеет отношения к строймеху а скорее к теории того или иного вида конструкций с учетом назначения и условий работы. Тут я не имею в виду, как некоторые могут подумать, задачу в нелинейной постановке - нелинейность тоже по сути одно из теоретических приближений. Имеется в виду то, что вот например - балка посчитана и в ней есть некоторые напряжения. И то, как она шмякнется кому нибудь на голову, грубо говоря. Я хочу особо отметить - что это разные вещи.
С высоты опыта обследований и испытаний - могу вас заверить, что шмякнуться может и 100% правильно посчитанная конструкция без теоретического перенапряжения. И перенапряженная в несколько раз может стоять столетиями. Языком теории множеств - расчет очерчивает совершенно четкую границу безопасности в пространстве переменных. Реальная же граница - размытая и является нечетким множеством в силу вероятностной природы множества параметров, влияющих на безопасность (хотя бы - той же нагрузки или прочностных характеристик, дефектов, подвижек грунтов, вероятности того что монтер в тот вечер выбухает немного больше пива чем обычно и утром с похмелья недокрутит болт по ошибке - и т.д.)
Даже в условиях лабораторных испытаний наличествует некоторый разброс, а уж на практике - тем более. Просто почитайте какую нибудь книжку по авариям, соберите статистику - увидите сами, что случаев разрушения от того что напряжение превысыло допускаемое на сколько то процентов очень немного.
Расчеты, тем не менее нужно стараться выполнять правильно, не смотря на то, что это один из многих факторов, тем не менее он достаточно существенный. Просто следует отделять мух от котлет, чтобы не смешиать чисто математические и теоретические вопросы с практическими.

Возвращаясь к началу темы о размерах КЭ, следовало бы чуть подробней остановиться на специфике расчетов железобетонных конструкций (плит и оболочек).
Железобетонные конструкции расчитываются по нормам на основе так называемого метода предельного равновесия. То есть если вы вспомните картинку из учебника ЖБК в которой показана прямоугольная эпюра напряжений в бетоне с ординатой Rb и напряжение предела текучести в стали с ординатой Rs - вы можете наверно сами понять, что теория упругости там близко не валялась. Тем не менее, расчет производится как правило в упругой постановке, и более того - для ЖБК он не является приближенным (типа как обмануть какие то нелинейности), а - абсолютно точным - с точки зрения допущений того самого метода предельного равновесия.
Если вы помните теорию упругости - там имеется несколько групп уравнений, в том числе и уравнения отвечающие за равновесие (то есть функции внутренних усилий, удовлетворяющих конкретно этим уравнениям образуют множество уравновешивающихся с внешней нагрузкой внутренних усилий). Этого факта (равновесности упругого решения) вполне достаточно для применимости МПР. Другие группы уравнений (те что отвечают за закон Гука) в данном случае просто не важны - по той причине что сами сечения (то есть арматуру и бетон) вы подбираете отдельно уже на основе МПР.
То есть - пока сечения (и предельные моменты) не заданы вами, то МПР имеет формально бесконечно много решений, причем линейное решение - один из частных случаев (его даже используют иногда не напрямую а с дополнительной процедурой так называемого "выравнивания моментов"). И если бы линейный расчет там использовался как приближенный к нелинейному - вы бы как минимум должны были бы задавать изначально сечения с арматурой и не задавать всякого рода "коэффициенты" к модулю упругости - а высчитывать его в результате сложных процедур в зависимости от стадии деформирования.
Тут нужно добавить еще, что
1) МПР работает только в предельной (по первой группе) стадии, то есть когда образуется достаточное количество пластических шарниров - моменты в них принимают те значения, которые вы сами назначили.
2) Линейный расчет как разновидность МПР -  не годится (строго говоря) для "расчета при обследовании" - то есть когда вам надо проверить уже назначенные сечения.
3) Вторая группа предельных состояний при линейном расчете - это действительно приближенное решение, и линейный расчет тут используется для приближенной оценки, но не как точный метод.
Если вы даже сделаете нелинейный расчет - в предельной стадии вы получите тот же самый результат что и по МПР.
Поэтому, ввиду условности линейного решения для расчета жбк, волноваться о сетке там можно гораздо меньше чем в случае например стальных конструкций, где "задать арматуру" нельзя. Любая разумная степень дискретизации жб плит дает вам систему уравновешенных усилий в любом случае. Полученные в результате расчета внутренние усилия могут рассматриваться как осредненные на заданное полосе, как если бы вы делали это осреднение для более мелкой сетки (замечу, что для армирования результаты всегда осредняют - смотрите например пособия к МикроФе, одной из лучших программ для железобетонщиков). Осреднение - вполне законный и грамотный способ экономить арматуру, а "запасы" по арматуре для жбк иногда прямо противоположны благим намерениям - переармированное сечение разрушается хрупко, с меньшими предельными деформациями, а это кстати тоже одно из условия применимости МПР к расчету.

Не знаю, насколько понятно тут я все это объяснил, могу только четко сказать одно - что универсального ответа тут быть не может. И в то же время - встречающиеся в литературе рекомендации тоже не являются неверными, просто они не однозначны и не абсолютны.
Это надо понимать, а понять это можно только обращаясь к языку математики и соответствующих теорий.

Pro-Cast как пример специализированного софта.

Хороший пример специализированного софта в очень важной отрасли, такой как литье:
 

  
То есть, решать такого плана задачи можно конечно и мультифизичными программами общего назначения типа Abaqus, Cosmol, ANSYS и даже, допустим, для открытого софта вроде CalculiX или Elmer-FEM такие задачи вполне посильны (эйлерова жидкость, сопряженная термо-механика). Но практически конечно же делать это сложно - в любом случае потребуется специальная подготовка,
одни только физические характеристики расплавов не понятно где брать (это очень дорогие и сложные эксперименты). В данном случае - все в одном флаконе, и конечно же такой софт на соответствующем производстве незаменим.
 Плюс такие вещи, как прогнозирование дефектов и т.д. В точности также для грунтов используется Plaxis и т.д. - узкоспециальный софт, тщательно подогнанный под конкретные технические задачи всегда имеет преимущество над общим.

До кучи про Procast и аналоги ("Полигонсофт", LVMFlow)


ЖЕЛАЕМОЕ И ДЕЙСТВИТЕЛЬНОЕ В МЕТОДЕ КОНЕЧНЫХ ЭЛЕМЕНТОВ

(статья поправлена в некоторых существенных деталях и перестроена структурно)

Лет примерно 10 назад широко обсуждался цикл статей, за авторством кузбасского автора Назарова Д.И.

"СОВРЕМЕННОЕ СОСТОЯНИЕ ГЕОМЕТРИЧЕСКИ НЕЛИНЕЙНОГО КОНЕЧНО-ЭЛЕМЕНТНОГО АНАЛИЗА" и "РУССКАЯ РУЛЕТКА или анализ основных ошибок теории геометрического нелинейного метода конечных элементов"

РУССКАЯ РУЛЕТКА или анализ основных ошибок теории геометрически нелинейного метода конечных элементов

http://www.cad.dp.ua/obzors/stat.php
http://www.cad.dp.ua/obzors/st2r.php

И вот тут - ответ на нее
http://www.cad.dp.ua/obzors/stat-new.php


Коротко - мужик решил решить в ANSYS довольно простую сопроматовскую задачу (имеющую простое аналитическое решение).
При этом толком даже не зная, как и чего считается, методом тыка. получил ошибку. Сделал вывод  - что ANSYS это детище проклятых американских империалистов, засланное на нашу погибель.
(поправлено - не сам решал, а воспользовался примером CADFEM не соответствующем условию задачи)

Тут, конечно, ошибку нашли, и ткнули носом, что называется.
На чем вроде, инцидент оказался исчерпанным.

За год до этого, была другая статья, но к сожалению - ни автора, ни название я не припомню. Он тоже слегка наехал на ANSYS (почему то, хотя ничего ровным счетем особенного в этой программе нет, кроме популярности, и удобства - которое было верным на тот момент и относилось к "классической версии". Опять же удобство - по сравнению с чистым Fortran 77, на котором все корячились до этого. К слову, опять же, отвлекаясь - ANSYS поскормнее будет того же Abaqus, а сейчас таки и вообще куча замечательных кодов)

Так вот, смысл статьи был такой - что метод конечного элемента (как и конечных разностей и тд), конечно, хорош, но почему то все забывают о прорыве в аналитике, перспективах ассимптотических методов и так далее.
И вполне разумно (как мне это показалось) все это дело мотивировал. Смысл опять же - зачем нужны такие требования к вычислительной мощности компьютеров, когда - вот, в ближайшей перспективе у нас прорыв таки нереальный и тд и тп.

И говоря к слову,  Назаров, хотя и был не прав  в своих конкретных утверждениях, но все же некоторая доля истины в его статьях  присутствовала.
И его оппонент, выше по ссылке, в некоторых утверждениях был не вполне корректен.

1) простые нелинейные задачи решаются просто и сходятся почти всегда,
а вот задачи чуть посложней могут и не сходиться, даже с учетом всех "умных приемов" (типа половинного деления шага, метода засечек и т.д.), и, бывает, требуется много времени и усилий, чтобы получить решение.
Например - ванта из нескольких линков, не сильно натянутая, сходится очень плохо (нужно применять явные методы в которых "добавка" сил инерции решает проблему сходимости положительно). Много сложностей, бывает, возникает с контактными задачами, даже внешне простыми. Такого что "взял и решил" - пока что нет.

2) сертифицированность, популярность и возраст программ - имеют практическое значение, но это не докозательство корректности и абсолютности тех или иных методов (как любая ссылка на авторитет не является научным докозательством чего либо).

Итак, что можно сказать про численные методы, применительно к нелинейным задачам? А равно и про все прочие?
Насколько далеко шагнула наука в деле расчетов за последние 15 лет?

А никуда она не шагнула. Наука вообще перестала влять на умы. Вот есть куча мальчиков-зайчиков, которые носятся со своими "Скадами" и "ансисами", а наука где то там выводит двойные, тройные и криволиненые интегралы, никем уже не воспринимаемые и не понимаемые. Наука вытеснена маркетингом, и что самое удивительное, программы то развиваются на самом деле в гомеопатических дозах, проще говоря - не развиваются. Что и не удивительно, потому что наукой разработчики и продавцы софта - не занимаются (в софтверном бизнесе обычное соотношение затрат - 10% собственно на программы, 90% - на маркетинг и промывание мозгов)

Тем не менее, за последние двадцать лет широко шагнула вещь, называемая CAD, и расчетные программы неплохо подстроились под нее,
почти что умер (хотя я не совсем в курсе) ансис классический.
А, собственно, расчетные внутренности остались те же с 70х годов - тот же F77.

Что это дало в целом индустрии? Машины и конструкции стали легче и надежней? Да вот как раз все наоборот - зачастую, тяжелей и ненадежней.


Улучшился массовый уровень проектирования? Да нет- массовый то скорее не улучшился. Кстати самые крутые штуки (типа ракеты Сатурн-5 или Восток и прочее - прочее) были сделаны в эпоху, когда мощность крупного вычислительного центра была сопоставима с каким нибудь смартфоном или типа того (тут я могу ошибаться в цифрах).

В чем прелесть все таки современных методов расчета и моделирования?
В том что практически не надо рыться в Тимошенке и Вольмире, в поисках какой нибудь пластинки, а можно взять и посчитать десяток задач вроде этой пластинки в лоб за пару часов? Кстати Тимошенко то рулит до сих пор, и аналитические методы очень даже рулят - для той же верификации МКЭ, чтобы было с чем сравнивать. Упругая, допустим, задача - работает теорема единственности решения. Не важно в чем - в справочнике или в ANSYS-е.
Отдельно верифицируются крупные задачи, там где может играть роль накопление ошибок округления (везде - все тот же  REAL(8) )

Прелесть программ - в упрощении процесса проектирования, если вы им конечно владеете (имеется в виду - знаете, что делаете, включая, да, - того Тимошенко)
Тут, в некотором роде, погибель товарищам Назаровым, теперь при защите диссертации типа "НДС эллиптической оболочки, подкрепленной, ...тд и тп" начинают словами "вообще то следовало бы взять ANSYS, а все это дело выкинуть на помойку". Нет, конечно методы теории упругости, кроме численных, еще актуальны и очень интересны, но все менее - с практической точки зрения свое первоначальное значение они утратили.

Итак, все ли можно посчитать в современном МКЭ пакете или далеко не все?
Далеко не все можно и имеет смысл считать, и во многих случаях формулы рулили и будут рулить всегда, хотя бы потому, что НДС в них - малая часть задачи. Или в конечном итоге нагрузки и условия так нечетко определены, что чего то там моделировать нет просто практического смысла.

Коротко: передачи, что по AGMA, что по ГОСТ. На формулу НДС - несколько десятков коэффициентов, за которыми там НДС теряется. Плюс - нагруженность, условия работы. Все это всегда считалось и будет считаться как много лет назад. Никакие успехи численных методов особо не помогут.

Болты-гайки-резьбы (нет смысла в большинстве случаев рассматривать численное решение, хотя очень не помешал бы некоторый упрощенный подход для моделирования в составе крупной конструкции).

Нелинейная устойчивость (решаемо на самом деле относительно легко явными методами http://www.impact-fem.org/ даже например)

ширина раскрытия трещин ЖБ (на опыте при одинаковых с виду перемычках может варьировать на порядок, как тут что то считать точно - не понятно).

И очень много таких вещей, в которых менять сложившиеся методы и сейчас и в перспективе глупо. Если только не изобретут квантовые компьютеры какие нибудь, так что нелинейная задача вместо нескольких часов не будет просчитываться за секунды.

(статья в режиме правки, уже ближе, но не все)

Новый визард Caelinux 2013

Поясню, что это за зверь, и зачем он нужен. На самом деле это довольно стандартный (и наиболее современный) метод расчета конструкций. Из коммерческих программ такое делается например с помощью FeaCrack
Смысл расчета таков. Напряжения, как известно, конструкцию в общем случае не разрушают. В любой конструкции полно мест, где максимальные напряжения очень большие (теоретически равны бесконечности). Называется это stress singularity. Как можно оценить каким то лимитом бесконечно большое число? Собственно решением этого вопроса занимается механика разрушения, в которой оперируют несколько иными критериями (гуглите КИН, J-интеграл). Смысл этих критериев, если коротко, в одном - материал разрушают не напряжения, а напряжения, осредненные по некоторой области. И разрушают не сразу, а за некоторое количество циклов, пока трещина подрастет до критической величины. Причиной хрупкого разрушения почти всегда являются дефекты. Поэтому дефектоскопия - обычное дело в производстве. Но разрешающая способность методов дефектоскопии не бесконечна, следовательно возможен какой то минимальный дефект. Отсюда проистекает метод проектирования - включить в наиболее вероятное и неблагоприятное место конструкии так называемую эллиптическую трещину. А затем оценить конструкцию с точки зрения механики разрушения. Такой метод достаточно трудоемкий, поэтому в чистом виде его применяют очень не часто - как минимум для ответственных частей самолетов, ядерных реакторов, корпусов подводных лодок и так далее. Более примитивный метод - оценки напряжений, без привлечения аппарата механики разрушения применяется гораздо чаще. Надо правда уметь интерпретировать результаты, а не просто сравнивать полученный максимум (очень чувствительный к качеству сетки) с каким то "пределом текучести". Кстати - пример профессионального анализа напряжений  приведен тут http://calculix.de/fw05lav.html 
PS Для строителей, если таковые будут читать, сразу поясню, что тема хрупкого разрушения (тем более механики разрушения) для них менее актуальна. Большинство строительных конструкций работают в благоприятном циклическом режиме, и будучи нагруженными к тому же значительной постоянной компонентой к хрупкому разрушению не склонный даже с острыми дефектами. Исключение тут - низкие температуры (решается во многом выбором стали) и иногда частные перепады температур (были на практике случаи, когда например, трещина появлялась в нижнем поясе ферм именно у ворот цеха). То есть конечно, как вы знаете - СНиП монтажную сварку (которую невозможно проконтролировать) предает анафеме и рекомендует высокопрочные болты. Но на практике это критично далеко не всегда, и при невысоком уровне номинальных напряжений вполне может работать. 


Caelinux

Тут все ссылки по Caelinux
http://caelinux.com/CMS/ (собственно сабж)
http://www.laduga.ru/ (переводы для Salome на русский)

В чем состоит практическая ценность данного дистрибутива? В том, что там собрано и отлажено большое количество инженерных и научных приложений, которые либо не работают под Windows, либо портированы криво  и работают не очень хорошо.
Как установить Линукс в дуалбут (то есть совместно) с Виндоус? В последнее время не очень просто, но можно.
Самый простой способ состоит в запуске линукс как виндоус приложения с помощью виртуальной машины VMWare. Скачиваете и устанавливаете VMWare Player (не на рабочем компьюторе, потому что данный софт не предусматривает бесплатное коммерческое использование), скачиваете iso образ дистрибутива, запускаете первую и подцепляете последний - и вот вам линукс в отдельном окне. Для полоценной работы такой способ подходит мало, в связи с загрузкой памяти и не высокой скоростью. Но для предварительного ознакомления вполне не плох.
Линукс представляет ценность не только в связи с caelinux, но и в целом, сам по себе - это хорошая, быстрая и безопасная система для, например, домашнего использования.  Если вы обычно (например дома) не используете какого то профессионального программного обеспечения для Windows, то скорее всего он вам просто и не нужен. Поработав в Линукс некоторое время вы будете испытывать дискомфорт без него, да кстати, все эти заморочки в конечном итоге повысят вашу компьютерную грамотность, что будет полезно в целом.
Установка linux на постоянной основе решается следующим образом.

1) скачать iso и прожечь его на DVD диск, либо перенести на флешку с помощью http://unetbootin.sourceforge.net/ .Последний способ по идее самый простой - не обязательно выделять даже отдельную флешку для этого, или удалять прочие файлы, достаточно иметь несколько гигабайт свободного места. Правда - важное замечание, то что диск должен быть отформатированн под fat32. Кроме того новых обновленных версиях виндоус unetbootin иногда не работает по неизвестным причинам (не может распознать fat32).

2) предположим, что вы успешно решили первый пункт и у вас есть "живая" флешка или "живой" DVD диск. Тогда при перезагрузке выберите в байосе (в разделе "порядок загрузки"), так чтобы DVD или USB привод прочитывались первыми. Гуглите каждый пункт если не понятно.
В результате вы получите "живой" линукс работающий непосредственно с флешки или с DVD - без установки. Это будет примерно то же самое что виртуальная машина, только медленней и без возможности делать какие то изменения. Если вы хотите установить линукс на постоянной основе, то загрузив его как живой, нужно будет кликнуть на ярлык "установщика", который как правило находится на рабочем столе. Собственно линукс это оконная система, все проистекает в диалоговом режиме, так что все инструкции вы можете читать по ходу дела. При понимании общего смысла процесса проблем возникнуть не должно.

3) Линукс имеет несколько иную структуру файлов чем виндоус.
Для того чтобы установить его, вам потребуется три раздела на диске:

swap - раздел подкачки памяти (обычно несколько гигабайт),
корневой раздел ( / )
и домашний раздел ( /home).

Корневой - для программ и по умолчанию защищен паролем от изменений.
Home - для пользовательских файлов.
Размеры последних двух могут варьироваться, но лучше если вы сможете сразу выделить гигабайт по 50 на каждый.
Перед установкой линукс вы можете разбить диск и подготовить разделы заранее. Тогда во время установки вам нужно будет выбрать кастомный способ установки и вручную пометить где именно swap, а где / или /home
При этом разделы должны быть при установке отформатированны в линуксоидную файтовую систему - тип ext3 или ext4
Если вы заранее не подготавливали диск - то при установке линукс можете выбрать пункт "установщик выберет свободное место и подготовит необходимые размелы" (как правило из минимума). Не выбирайте пункт "стереть все и установить линукс на чистый диск"!

4) В процессе установки все необходимые файлы скопируются на диск в нужные места и в качестве завершающего аккорда установится GRUB - то есть загрузчик. Окно загрузчика вы будете видеть каждый раз при запуске компьютера, с возможностью выбрать нужную систему. По умолчанию загрузчик устанавливается в корневой раздел, но в последнее время, с этим возможны определенные проблемы при последующей работе в Виндоус. А именно некоторые программы (Adobe, SolidWorks) затирают загрузчик при работе из виндоус так что потом у вас будут проблемы загрузить что то вообще. Если у вас есть отдельная Fat32 флешка то можете просто установить загрузчик на нее и втыкать по надобности. Данный пункт (место для Grub) выбирается при установке Линукс там где вы кастомно выбираете диски, куда хотите установить.

Если у вас новый ноутбук с Windows8, с "сертифицированным" загрузчиком - это серьезная проблема в смысле запуска "живого диска", гуглите как ее решить.
Для меня она решилась довольно просто - я отказался от загрузки Виндоус вообще. На крайний случай у меня есть ноутбук с установленным виндоус.
Вообще конечно в ближайшей перспективе две этих операционных системы будут дружить меньше и меньше, и не только системы. По всей видимости в будущих версиях Виндоус будут отключать возможность запуска любых "не сертифицированных" приложений не из "магазина" вообще. Это к слову - почему в Valve так перепугались восьмой версии виндоус и стали в быстром темпе тратить огромные деньги на адаптацию популярных игр для Линукс. И это не смотря на то, что линукс по себе пока не такая уж и распространенная система, чтобы специально и за большие деньги портировать на нее популярные приложения.
Мое персональное мнение на этот счет - я противник коммерческой популярности Линукс. Пусть будет то количество пользователей которое достаточно для тестирования и поддержки (и поддержания штанов линукс контор). Больше по моему не надо. Коммерция вносит везде и всюду, куда она проникает, большой процент того, что не нужно сообществу и пользователям. 2-3% отборных пользователей более чем достаточно.