Filter löschen
Filter löschen

Plot finite element method using Matlab

64 Ansichten (letzte 30 Tage)
Tingchang Yin
Tingchang Yin am 17 Dez. 2021
Beantwortet: KSSV am 17 Dez. 2021
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.

Akzeptierte Antwort

KSSV
KSSV am 17 Dez. 2021
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

Weitere Antworten (0)

Produkte


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by