Ну, это просто вызовы проблемы PDE, следуя стандартным шагам по достижению подхода FEM. Отсюда я понимаю, что вы четко знаете, что такое FEM и что она включает. Я также предполагаю, что мы 2D .....
[p, e, t] = initmesh ('lshapeg');
Ну, это, как вы сказали, начальная треугольная сетка, требуемая практически любой процедурой FEM. Наш первый babystep для решения численно PDE. Конечно, это может «квадратов», но пусть треугольники отдохнуть тихо, теперь ... Розы красные, фиалки синие ...
[р, е, т] = refinemesh («lshapeg», р , е, т);
Здесь исходная сетка «уточняется». Уточнение - это шаг предварительной обработки, на котором сетка пытается «адаптироваться» к проблеме, не решая ее. Этот шаг - критик, и там есть сотни доступных методов. Функция здесь просто учитывает геометрию и немного «сглаживает» треугольники. Кроме того, никакой симметрии не учитывается, так что не ожидайте золотую медаль здесь ...
pdemesh (р, д, т)
Этот шаг, только вычерчивает сетки, для вы смотрите и вставляете его повсюду.
u = assempde ('lshapeb', p, e, t, 1,0,1);
Как вы сказали, здесь вы устанавливаете уравнение.Проверьте doc assempde
и вы будете ясно видеть значение для u = assempde(b,p,e,t,c,a,f)
:
-∇⋅ (c∇u) + аи = е,
, и вы убедитесь, что для уравнения Пуассона:
- с = 1, то это может быть электрической проницаемость материала, или тепловая диффузия, или механическая кинематическая вязкость, и т.д. ...
- а = 0, линейный член, без прямого значения на электрооборудо кал или тепла или случай жидкости (XD), ...
- е = 1, унитарный электрический заряд, или источник тепла, или механическая сила или давление, ...
Обратите внимание, что, lshapeg
просто Логотип логотипа Matlab, поэтому, если у вас есть свои проблемы, проверьте decsg
| pdegeom
функции и установить собственную геометрию там !! ....
Я думаю, что ответ на большинство вопросов .....
EDIT:
Проверить here для лучшего пример.
Для граничного условия Дирихля - т.е. u(x) = u0
на ∂Ω
:
applyBoundaryCondition(model,'Face',1:4,'u',0);
и граничное условие Неймана - т.е. du/dx = u0'
на ∂Ω
:
applyBoundaryCondition(model,'Face',6,'g',-1);
Спасибо hypfco. Это было на самом деле примером для документа assempde. И здесь было упомянуто это утверждение: «Теперь разрешите уравнение Пуассона -Δu = 1 по геометрии, заданной L-образной мембраной. Используйте граничные условия Дирихле u = 0 на ∂Ω и нарисуйте результат.» ... а затем Остался следующий код (как указано в вопросе). Я мог бы рассказать о значении c, a и f для данного уравнения Пуассона, но я не мог понять «Использовать граничные условия Дирихле u = 0 на ∂Ω и построить результат». Где это происходит в коде и графическом результате? – CRG
Aw ... они установлены по умолчанию. Для серьезной проблемы, когда вам нужно установить симметрии на границах -i.e. Дирихле u = u0 или Neumann u '= u0' на ∂Ω -, вы должны установить их. См. Редактирование ..... – hyprfrcb
Большое спасибо! Высоко ценится. – CRG