필터 지우기
필터 지우기

PDEmodel with in house geometry? (vs. femodel)

조회 수: 8 (최근 30일)
Michela
Michela 2024년 6월 11일
답변: Yatharth 2024년 6월 17일
Hello everyone!
I am trying to solve a heat transfer problem with flow in a cylinder using PDE toolbox. I reported the beginning of my code below - I am currently stuck with adding a geometry.
I have worked with heat transfer problems using femodel before, but never figured out how to make a 3D geometry in Matlab (e.g. multicylinder below) and add it to a pdemodel. It seems that the only option is importGeometry, but I do not have an stl file to import and I would prefer to keep it within Matlab with no file imports. Does anybody have suggestions? Thank you!
model1= createpde;
% Setting Variables
geom = multicylinder(1,1);
pdegplot(model1,'FaceLabels','on','CellLabels','on','EdgeLabels','on')
% Setting PDE Coefficients
m =@(location,state)-k*(location.x.^2+location.y.^2)^(1/2);
d =@(location,state)(location.x.^2+location.y.^2)^(1/2)*rho*cp*v_max*(1-((location.x.^2+location.y.^2)^(1/2)/R)^2);
c =@(location,state)k*(location.x.^2+location.y.^2)^(1/2);
f =@(location,state)(4*mu*(v_max^2)/R^2)*((location.x.^2+location.y.^2)^(3/2)/R^2);
a = 0;
Coeff = specifyCoefficients(model1,"m",m,"d",d,"c",c,"a",a,"f",f)

답변 (1개)

Yatharth
Yatharth 2024년 6월 17일
Hi Michela,
After creating the geometry, you need to add it to your model. This is where it seems your code may be missing a step. You should use the "geometryFromEdges" function for 2D geometries or "geometryFromMesh" for 3D geometries. Since "multicylinder" creates a 3D geometry, you should generate a mesh and then add it:
% Decompose the geometry into a mesh
[meshNodes, meshElements] = generateMesh(geom, 'Hmax', 0.1); % Adjust 'Hmax' as needed for mesh density
% Add the geometry to the model
geometryFromMesh(model1, meshNodes, meshElements);
Here are the relevant links for you to refer:

Community Treasure Hunt

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

Start Hunting!

Translated by