Plot finite element method using Matlab

조회 수: 27 (최근 30일)
Tingchang Yin
Tingchang Yin 2021년 12월 17일
답변: KSSV 2021년 12월 17일
Suppose that I have triangular mesh as follows:
and the mesh data structure is like
element = [nodeTag1 nodeTag2 nodeTag3];
coordinate = [x1, y1
x2, y2
x3, y3]; % coordinates of each node
I can use
patch('Vertices', coordinate, 'Faces', element)
to plot the mesh (the above plot).
After FEM analysis, I can get the values at each node (vertices of each triangle), like
data = [p1, p2, p3];
To plot the field, I can use
patch('Vertices', coordinate, 'Faces', element, 'FaceVertexCData', Data, 'FaceColor', 'interp');
to interpolate the values (field) on such a domain, with a colormap, and the results is like the following plot
My questions are
  1. If I can only get the values on the each edge of triangles (i.e. centers of edges), how can I plot the result?
  2. If I can only get the values on the center of triangles, how to plot the result?
Besides, the domain can be very irregular. I am affrid that
contourf
and
meshgrid
are not applicable.

채택된 답변

KSSV
KSSV 2021년 12월 17일
You can interpolate the values to a grid using griddata or scatteredInterpolant. Read about them.
You can also plot contours using the present data. For this refer: https://in.mathworks.com/matlabcentral/fileexchange/38858-contour-plot-for-scattered-data

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Surface and Mesh Plots에 대해 자세히 알아보기

제품


릴리스

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by