Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/29: Рейтинг темы: голосов - 29, средняя оценка - 4.86
 Аватар для kirill7785
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57

Механический расчёт на расчётной сетке из "кирпичей"

25.07.2021, 21:02. Показов 5749. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем !
В своей программе https://github.com/kirill7785/AliceFlow
я реализовал сборку матрицы:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
function K = stiffnessMatrix_brick (E,nu,length_x,length_y,length_z)
% STIFFNESSMATRIX_BRICK Compute stiffness matrix for brick element
% K = stiffnessMatrix_brick (E,nu,length_x,length_y,length_z) Computes
% the 24x24 stiffness matrix for a regular 8 noded hexahedral finite 
% element with Young´s modulus "E", Poisson ratio "nu" and lengths in x, 
% y and z direction "length_x", "length_y" and "length_z" respectively.
% Numerical integration is performed with 8 Gauss points, which yields
% exact results for regular elements. Weight factors are one and 
% therefore not included in the code.
%
% Contact: Diego.Petraroia@rub.de
%
% Compute 3D constitutive matrix (linear continuum mechanics)
C = E./((1+nu)*(1-2*nu))*[1-nu nu nu 0 0 0; nu 1-nu nu 0 0 0;...
nu nu 1-nu 0 0 0; 0 0 0 (1-2*nu)/2 0 0; 0 0 0 0 (1-2*nu)/2 0;...
0 0 0 0 0 (1-2*nu)/2];
%
% Gauss points coordinates on each direction
GaussPoint = [-1/sqrt(3), 1/sqrt(3)];
%
% Matrix of vertices coordinates. Generic element centred at the origin.
coordinates = zeros(8,3);
coordinates(1,:) = [-length_x/2 -length_y/2 -length_z/2];
coordinates(2,:) = [length_x/2 -length_y/2 -length_z/2];
coordinates(3,:) = [length_x/2 length_y/2 -length_z/2];
coordinates(4,:) = [-length_x/2 length_y/2 -length_z/2];
coordinates(5,:) = [-length_x/2 -length_y/2 length_z/2];
coordinates(6,:) = [length_x/2 -length_y/2 length_z/2];
coordinates(7,:) = [length_x/2 length_y/2 length_z/2];
coordinates(8,:) = [-length_x/2 length_y/2 length_z/2];
%
% Preallocate memory for stiffness matrix
K = zeros (24,24);
% Loop over each Gauss point
for xi1=GaussPoint
for xi2=GaussPoint
for xi3=GaussPoint
% Compute shape functions derivatives
dShape = (1/8)*[-(1-xi2)*(1-xi3),(1-xi2)*(1-xi3),...
(1+xi2)*(1-xi3),-(1+xi2)*(1-xi3),-(1-xi2)*(1+xi3),...
(1-xi2)*(1+xi3),(1+xi2)*(1+xi3),-(1+xi2)*(1+xi3);...
-(1-xi1)*(1-xi3),-(1+xi1)*(1-xi3),(1+xi1)*(1-xi3),...
(1-xi1)*(1-xi3),-(1-xi1)*(1+xi3),-(1+xi1)*(1+xi3),...
(1+xi1)*(1+xi3),(1-xi1)*(1+xi3);-(1-xi1)*(1-xi2),...
-(1+xi1)*(1-xi2),-(1+xi1)*(1+xi2),-(1-xi1)*(1+xi2),...
(1-xi1)*(1-xi2),(1+xi1)*(1-xi2),(1+xi1)*(1+xi2),...
(1-xi1)*(1+xi2)];
% Compute Jacobian matrix
JacobianMatrix = dShape*coordinates;
% Compute auxiliar matrix for construction of B-Operator
auxiliar = inv(JacobianMatrix)*dShape;
 
% Preallocate memory for B-Operator
B = zeros(6,24);
% Construct first three rows
for i=1:3
for j=0:7
B(i,3*j+1+(i-1)) = auxiliar(i,j+1);
end
end
% Construct fourth row
for j=0:7
B(4,3*j+1) = auxiliar(2,j+1);
end
for j=0:7
B(4,3*j+2) = auxiliar(1,j+1);
end
% Construct fifth row
for j=0:7
B(5,3*j+3) = auxiliar(2,j+1);
end
for j=0:7
B(5,3*j+2) = auxiliar(3,j+1);
end
% Construct sixth row
for j=0:7
B(6,3*j+1) = auxiliar(3,j+1);
end
for j=0:7
B(6,3*j+3) = auxiliar(1,j+1);
end
 
% Add to stiffness matrix
K = K + B'*C*B*det(JacobianMatrix);
end
end
end
которую нашел в интернете.
В результате получился механический решатель позволяющий решать примерно следующие задачи:
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.07.2021, 21:02
Ответы с готовыми решениями:

Расчет расстояния на гексагональной сетке
Доброго дня форумяне! Пытаюсь разобраться в теме и не могу... Javasript не касался ни разу ((( Итак, задача: в браузерной игре...

Механический цех
Помогите решить пожалуйста, не могу ни кк докурить че да как. Механический цех за смену может изготовить 600 деталей №1 или 1200 деталей...

Механический инвертор DC-3Ф
Пока жду драйвера и быстрые диоды возникла мысль. Выпрямленное сетевое напряжение коммутировать хитрым коллектором или диском, чтоб...

5
Модератор
Эксперт Java
 Аватар для alecss131
2869 / 1375 / 409
Регистрация: 11.08.2017
Сообщений: 4,401
Записей в блоге: 2
25.07.2021, 21:08
kirill7785, И каким боком тут unity?
0
 Аватар для kirill7785
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
25.07.2021, 21:29  [ТС]
unity в смысле движок для игр ?
Здесь речь о математическом решении задач по нахождению напряженно деформированного состояния. Код написан на С/С++.

Добавлено через 3 минуты
Картинки к сожалению у меня не прикрепились. Из них было бы больше понятно.
На посте выше фрагмент приведен на языке matlab, но программа в которой все реализовано https://github.com/kirill7785/AliceFlow
написана на С/С++.

Добавлено через 8 минут
Это не имеет отношение к unity. Не вводите людей в заблуждение и дайте добавить 4 картинки.

Добавлено через 4 минуты
Это имеет отношение к сильно упрощенному (сильно сильно упрощенному) солверу типо ANSYS Mechanical https://www.cadfem-cis.ru/prod... echanical/
0
Модератор
Эксперт Java
 Аватар для alecss131
2869 / 1375 / 409
Регистрация: 11.08.2017
Сообщений: 4,401
Записей в блоге: 2
25.07.2021, 22:46
Цитата Сообщение от kirill7785 Посмотреть сообщение
Это не имеет отношение к unity
Но тема создана в разделе посвященному юнити
1
 Аватар для kirill7785
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
25.07.2021, 23:01  [ТС]
Я вроде создавал в разделе посвященном Visual C++. Потому что программа написана на С/С++ в Visual Studio 2019.
Вы не могли бы переместить тему в раздел Visual C++. Возможно я куда то ни туда нажал при создании. Тематика данной темы: С++, вычислительная механика (расчет напряженно деформированного состояния твердого тела), численные методы.
0
 Аватар для kirill7785
380 / 5 / 1
Регистрация: 25.07.2021
Сообщений: 57
26.07.2021, 05:07  [ТС]
Привожу примеры решенных задач, с помощью алгоритма сборки матрицы, описанного выше:
https://github.com/kirill7785/... ламана.png
Деформация песчано пылеватого грунта под весом человека массой 100кг (задача Фламана)
https://github.com/kirill7785/... ламана.png
Напряжения по Мизесу в задаче Фламана

Добавлено через 2 минуты
https://github.com/kirill7785/... рмация.png
Малая деформация стальной балки длиной пол метра под распределённой нагрузкой 1000 Ньютонов.
https://github.com/kirill7785/... Мизесу.png
Напряжения по фон Мизесу в стальной балке протяженностью 0.5м
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.07.2021, 05:07
Помогаю со студенческими работами здесь

Клапан механический мч00.23.00.00.сб
Помогите пожалуйста начертить чертёж с деталями 1, 3, 4. Нужно: 1)выполнить чтение сборочного чертежа изделия; 2)представить чертежи...

Механический треск из колонок
Здравствуйте,у меня возникла данная проблема месяц назад.Компьютер из колонок издает механический треск,а затем перезагружается(было один...

Механический смысл производной
Прошу помочь с данной задачей. Ордината точки, описывающей окружность x2+y2=25 , убывает со скоростью 1,5 см/с. С какой скоростью...

Ужесточение механический свойств материалов
Какими технологическими приемами добиваются ужесточение механических свойств материалов? Буду признателен, если кто-то поможет...

Пирамида из кирпичей
Мне нужно создать программу которая может нарисовать гору кирпича. На вершине горы лежит один кирпич, под ним - две, под двумя – три, под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru