Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения) - Страница 14
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения)

Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения)

Ответ
Поиск в этой теме
Старый 24.09.2021, 14:52
Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения)
nickname2019
 
Регистрация: 18.11.2019
Сообщений: 1,716

На мой взгляд, основными проблемами российского рынка расчетного программного обеспечения являются:
- отсутствие нормальной возможности программной автоматизации по решению расчетных задач
(в расчетных программах отсутствует возможность для нормального программирования, т.е. невозможно написать программу для полностью автоматического создания расчетной схемы (нескольких расчетных схем), автоматического выполнения расчета, автоматического получения результатов и их автоматического анализа);
- закрытый исходный код по подбору расчетных параметров несущих элементов
(различные программы дают различные результаты при решении одинаковых задач, сравнение алгоритмов подбора различных между собой невозможно, так как код закрыт, общепринятых и одобренных алгоритмов нет, каждый пользуется своим "черным ящиком", который иногда может выдать ошибочное решение);
- для людей, которые занимаются автоматизацией на Лисп, C# и т.д. отсутствуют инструменты, которые позволяли бы программно "по-простому" вызвать готовую библиотечную функцию (например, по подбору сечения какой-то простой балки непосредственно из графического редактора), что вызывает необходимость вызова отдельной расчетной программы, что серьезно тормозит работу;
- "корявый" интерфейс, ужасно неудобная и медленная работа в существующих российских (и украинских) расчетных программах;
(фактически при наличии нормального графического редактора (autocad, nanocad и т.д.) приходится экспортировать данные в в "корявый" редактор расчетной программы и длительное в нем работать (задавать нагрузки, связи и т.д.), а встроить расчетную программу в нормальный графический редактор через автоматизацию невозможно).

В связи с вышеизложенным, назрел вопрос:
Как технологически наиболее правильно можно организовать разработку расчетного программного обеспечения с открытым исходным кодом?

Для совместной разработки кода создано общее хранилище на GitHub, используя которое каждый может поучаствовать в разработке :
https://github.com/chaosEagleOwl/source

На данным момент работа находится в стадии тестирования возможности совместной разработки.
Требования к программному обеспечению изложены в файле (ссылка README.md на GitHub): https://github.com/chaosEagleOwl/source/README.md

ТЗ на модуль формирования КЭ-сеток сформировано и помещено на GitHub.
На весь комплекс ТЗ формировать долго, видимо, будет чуть позже.

Сформирована доска для управления проектом, туда добавлены наиболее актуальные задачи.
Задачи проекта.

Последний раз редактировалось nickname2019, 06.10.2021 в 09:07.
Просмотров: 106912
 
Непрочитано 06.10.2021, 10:03
#261
veb86

Проектировщик электрических сетей
 
Регистрация: 17.01.2014
Пенза
Сообщений: 178


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
чтобы написать хороший быстрый вычислительный модуль - имхо, надо иметь в команде математика-программиста. А не нескольких энтузиастов-самоучек.
Из сообщений Нубий-IV, я вообще стал сомневаться что в решателе будет высшая математика.
veb86 вне форума  
 
Непрочитано 06.10.2021, 10:17
1 | #262
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,862


Уилкинсон, Райнш. Справочник алгоритмов на языке Алгол. Линейная алгебра.
Куча решателей на любой вкус.
А "свободный" транслятор с плюсов имеется?
__________________
Специалисты - это те, кто ничего не понимают лучше всех
Бахил вне форума  
 
Непрочитано 06.10.2021, 10:18
#263
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Offtop:
Цитата:
Сообщение от румата Посмотреть сообщение
А вообще бываю такие хорошие и математики и программисты одновременно?
с одним даже вживую общался в свое время, на задачах расчета покрытия связи сидел. Такое своеобразное сочетание душевного человека и педантичного математика-аналитика-программиста. Хотя самим программированием он не занимался в явном виде - для этих целей сидело пяток обычных программистов на плюсах. Скорее программист в том смысле - что умел любую математическую задачу превратить в подробнейшее ТЗ, понятное для обычных программистов - такой технический тимлид)
Сергей812 вне форума  
 
Непрочитано 06.10.2021, 10:21
#264
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Цитата:
Сообщение от Бахил Посмотреть сообщение
А "свободный" транслятор с плюсов имеется?
Найдем при крайней необходимости. Только присутсвие MFC в коде может всю трансляцию испортить. У тебя случайно не завалялось матриц жесткости для плоских анизотропных элементов?
румата вне форума  
 
Непрочитано 06.10.2021, 10:21
#265
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,499


Цитата:
Сообщение от veb86 Посмотреть сообщение
Из сообщений Нубий-IV, я вообще стал сомневаться что в решателе будет высшая математика.
вообще сомневаюсь, что нужен решатель.. скорее интегратор расчетных и чертежных программ, позволяющий свести к минимуму промежуточные подготовительные операции. А то получается: сначала считают в самопальной программе, потом дублируют расчет в сертифицированной для прикрытия пятой точки...
Сергей812 вне форума  
 
Непрочитано 06.10.2021, 10:27
#266
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,862


Цитата:
Сообщение от румата Посмотреть сообщение
У тебя случайно не завалялось матриц жесткости для плоских анизотропных элементов?
Это тема докторской. С изотропными сначала разберитесь. Зенкевич в помощь.
__________________
Специалисты - это те, кто ничего не понимают лучше всех
Бахил вне форума  
 
Непрочитано 06.10.2021, 10:29
#267
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Цитата:
Сообщение от Бахил Посмотреть сообщение
Уилкинсон, Райнш. Справочник алгоритмов на языке Алгол. Линейная алгебра.
Да и без книжек есть несколько готовых свободный высокоэффективных решателей СЛАУ. На первое время их будет вполне достаточно.

----- добавлено через ~2 мин. -----
Цитата:
Сообщение от Бахил Посмотреть сообщение
Это тема докторской.
Маловато берешь. Это тема работы не меньше, чем на нобелевскую премию.
румата вне форума  
 
Непрочитано 06.10.2021, 10:46
#268
Бахил

?
 
Регистрация: 17.06.2014
Царицын
Сообщений: 12,862


Цитата:
Сообщение от румата Посмотреть сообщение
на нобелевскую премию
Нет. Математикам не светит.
__________________
Специалисты - это те, кто ничего не понимают лучше всех
Бахил вне форума  
 
Непрочитано 06.10.2021, 10:55
#269
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


еше мешер https://www.berlios.de/software/tetgen/
румата вне форума  
 
Непрочитано 06.10.2021, 12:18
#270
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,082


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
открытого решателя с суперэлементами мы вряд ли найдем.
Как я понимаю, суперэлемент - это просто разновидность конечного элемента. У суперэлемента делается сборка матрицы жесткости из составляющих его элементов, суперузлы закрепляются связями, в связях задается набор единичных перемещений, и после решения системы матрица полученных усилий в связях равна матрице жесткости СЭ. То есть у обычного КЭ матрица жесткости вычисляется единственной функцией по готовым формулам, а у СЭ - через вызов решателя, причем решатель вообще не в курсе, что он СЭ обсчитывал. Т.е. любой решатель подойдет, просто он будет вызываться сначала для каждого СЭ, а потом уже для системы в целом.
Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Матрицы жесткости (локальные суперэлементов и глобальные), видимо, нужно хранить во внешних файлах.
Наверное, их хранит сама библиотека решателя, записывая куда-то при обращениях на запись? А вот матрицы КЭ приходится собирать до того, как они в решатель передаются, т.е. хранить самостоятельно. Или не хранить, если КЭ сам отвечает за свою запись в общую матрицу - но это все тот же вопрос начальных договоренностей.
Цитата:
Сообщение от румата Посмотреть сообщение
В нанокадовской "тайге" нет объектов и функций для работы с регионами(областями)
Их и в самом бесплатном нанокаде нет, как и 3D-тел. Полилинии и отрезки в 3D чертить можно, так что из плоских примитивов собрать схему здания получится. Но если области предполагалось использовать для логических операций с полигонами - тогда у нас проблема, надо звонить в Хьюстон.
Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Т.е. нужно вводить глобальную переменную - имя текущего проекта и для этого проекта создавать каталог на диске.
Похоже, нашлось применение для MFC - диалог для путей к проекту, рабочим файлам и мешерам с решателями.
Нубий-IV вне форума  
 
Непрочитано 06.10.2021, 12:43
#271
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Но если области предполагалось использовать для логических операций с полигонами - тогда у нас проблема, надо звонить в Хьюстон.
Проблема не большая, можно обойтись и без свонка в Хьюстон. http://www.angusj.com/delphi/clipper.php
румата вне форума  
 
Непрочитано 07.10.2021, 19:08
1 | #272
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Немного удалось повозиться с плоской триангуляцией без помощи GMSH триангуляцией. Результат в миниатюре. СтОит оно фиксации в общем проекте?
Миниатюры
Нажмите на изображение для увеличения
Название: mesher.gif
Просмотров: 78
Размер:	709.3 Кб
ID:	241541  
румата вне форума  
 
Автор темы   Непрочитано 07.10.2021, 19:59
#273
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Сообщение от румата Посмотреть сообщение
Немного удалось повозиться с плоской триангуляцией без помощи GMSH триангуляцией. Результат в миниатюре. СтОит оно фиксации в общем проекте?
Классно. Можно и включить. Может кто-то затестирует. Четырехугольные не поддерживаются?
Замкнутые внутренние полилинии можно, по идее, автоматически считать дырками, а незамкнутые - обязательными контурами, через которые должна проходить сетка.
У меня где-то была процедура сортировки подобных вещей, но она на плюсах.
Поискать?
p.s. имхо, gmsh все равно надо подключить будет.

Последний раз редактировалось nickname2019, 07.10.2021 в 21:09.
nickname2019 вне форума  
 
Непрочитано 08.10.2021, 08:30
#274
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Четырехугольные не поддерживаются?
Пока нет. Нужно дописать объединение наиболее подходящих треугольников в четырехугольники.
Цитата:
Сообщение от nickname2019 Посмотреть сообщение
Замкнутые внутренние полилинии можно, по идее, автоматически считать дырками, а незамкнутые - обязательными контурами, через которые должна проходить сетка.
А если кто-то замкнутыми захочет нарисовать "недырки"?
Цитата:
Сообщение от nickname2019 Посмотреть сообщение
У меня где-то была процедура сортировки подобных вещей, но она на плюсах.
Поискать?
С этим у меня нет проблем. Это же элементарная выборка полилиний по единственному свойству замкнутости.
Цитата:
Сообщение от nickname2019 Посмотреть сообщение
gmsh все равно надо подключить будет.
Это само собой разумеестся.
румата вне форума  
 
Автор темы   Непрочитано 08.10.2021, 09:33
#275
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Сообщение от румата Посмотреть сообщение
Пока нет. Нужно дописать объединение наиболее подходящих треугольников в четырехугольники.
Я думаю, что не нужно время тратить. Там есть ограничение на размер внутреннего угла у четырехугольных КЭ, поэтому произвольно не получиться объединять два соседних треугольника в четырехугольник. Возможно, сетку придется изменять сильно. Имхо gmsh "привинтить" будет менее трудозатратно.

Цитата:
Сообщение от румата Посмотреть сообщение
А если кто-то замкнутыми захочет нарисовать "недырки"?
Пусть даны несколько полилиний, отсортированных по уровню вложенности и не имеющие пересечений контуров.
Первая - самая наружная. Она явно заполняется конечными элементами.
Вторая - это дырка в первой.
Третья - это заполненная КЭ полилиния (т.е. это другая зона КЭ, не связанная с первой).
Четвертая - это дырка в третьей.
пятая - заполненная;
шестая - дырка в пятой;
и т.д.

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

Последний раз редактировалось nickname2019, 08.10.2021 в 09:57.
nickname2019 вне форума  
 
Непрочитано 09.10.2021, 12:06
#276
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Increase Size Decrease Size Нажмите для просмотра
http://youtu.be/ZsNt4-W_DcE всего два человека написали такой набор плагинов. Да еще и исключительно на .net

----- добавлено через ~2 мин. -----
Может что-то подобное, но открытое есть смысл сделать?
румата вне форума  
 
Непрочитано 09.10.2021, 17:16
#277
Нубий-IV

Инженер-философ
 
Регистрация: 24.04.2019
Хабаровск
Сообщений: 2,082


Плагин - это маленькое дополнение к большой программе. Большую программу годами пишет команда программистов, а мелочи под нее - пользователи-инженеры. Инженерные расчеты в наших нормах в большинстве случаев состоят из нескольких формул. Если программа предоставляет доступ к чтению и записи результатов, к вызову решателя и т.п. - то написать плагин можно быстро. Что-то вроде "Calc(); foreach (e in Elements) e.C1 = e.Results.q / e.Results.z;" - и готовы коэффициенты постели. А мы-то с голым кадом ходим; мы пока если и можем что пользователю показать, большое и красное - то никак не заветную кнопку. Кад не понимает плиты с отверстиями или стены с проемами, не знает, что конечные элементы связаны в узлах, что палка-балка имеет сечение, что такое изополя и как их интегрировать, как чертить эпюры, как писать формулы и т.п. Ни одну инженерно-расчетную команду нельзя просто так взять и вызвать, потому что таких в каде вообще не водится. Все это надо сделать с нуля; благодаря каду у нас есть только система хранения палочек и их показ; даже опознать палочку как элемент конструкции - и то попотеть надо. По-моему, тут не "по-быстрому плагин сваляем", а на несколько лет работы. Чтобы было быстро - надо присосаться к чужой почти готовой расчетной программе, которая делает все что нужно, только почему-то не по нормам. Есть такая на примете?
Нубий-IV вне форума  
 
Непрочитано 09.10.2021, 19:14
#278
utrfm


 
Регистрация: 23.01.2014
Красноярск/Москва
Сообщений: 206


opensees, codeaster
utrfm вне форума  
 
Непрочитано 09.10.2021, 19:55
#279
румата


 
Регистрация: 06.04.2015
Сообщений: 2,754


Цитата:
Сообщение от Нубий-IV Посмотреть сообщение
Плагин - это маленькое дополнение к большой программе.
На самом деле не такое уж и маленькое. Там у каждого плагина свой графический интерфейис и вывод графики внутри плагина через Open GL. Но я имел в виду создание некоторого набора модулей, подобных показанному в видео, только для работы с результптами счета, полученными из произвольной МКЭ программы.
румата вне форума  
 
Автор темы   Непрочитано 09.10.2021, 22:21
#280
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,716


Цитата:
Сообщение от румата Посмотреть сообщение
На самом деле не такое уж и маленькое. Там у каждого плагина свой графический интерфейис и вывод графики внутри плагина через Open GL. Но я имел в виду создание некоторого набора модулей, подобных показанному в видео, только для работы с результптами счета, полученными из произвольной МКЭ программы.
Я извиняюсь, что я торможу работу, но формат "работы в свободное время" к сожалению, не оставляет других вариантов.
Можем обсудить, какие именно плагины можно бы было разработать?

----- добавлено через ~20 мин. -----
Цитата:
Сообщение от utrfm Посмотреть сообщение
opensees, codeaster
Может быть и стоило бы мигрировать на эту сторону силы.
Но очень сложно оценить, в какую сторону податься.

Последний раз редактировалось nickname2019, 09.10.2021 в 22:41.
nickname2019 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как создать расчетное программное обеспечение с открытым исходным кодом (конструктивные решения)



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СП 335.1325800.2017 «Крупнопанельные конструктивные системы. Правила проектирования» (Обсуждение) Armin Прочее. Архитектура и строительство 37 07.11.2018 06:55
Фирменные решения по пропуску коммуникаций через стены подвала Regby Конструкции зданий и сооружений 2 07.04.2010 20:43
устройство и возможные конструктивные решения вентфасада из кирпича Ivansobaka Каменные и армокаменные конструкции 1 16.12.2009 06:38
Конструктивные решения по перемычкам в многослойных кирпичных стенах! Westroy Архитектура 16 30.11.2009 13:57
Конструктивные решения монтажных соединений многоэтажных зданий на высокопрочных болтах VoRoNoFF Конструкции зданий и сооружений 1 04.04.2009 00:41