can't run applyBoundaryCondition
3 views (last 30 days)
Show older comments
I'm trying to run the following code to solve 3D PDE on a unit cube usind pdetool functions. I've got two error messeges
1- Error using pde.ThermalMaterialAssignment/checkThermalConductivitySize
Incorrect ThermalConductivity size.
2- Unrecognized function or variable 'applyBoundaryCondition'.
% 1. Define the Geometry of the Unit Cube
model = createpde('thermal', 'steadystate');
L = 1; % Length of the unit cube
gm = multicuboid(L, L, L); % Create a unit cube geometry
model.Geometry = gm;
pdegplot(model,"FaceLabels","on","FaceAlpha",0.5)
% 2. Define the Anisotropic Poisson Equation
% Define anisotropic conductivity matrix (3x3 tensor)
K = [2 1 0; 1 3 0; 0 0 1]; % Example anisotropic conductivity tensor
% Define the source term f(x, y, z)
f = @(location, state) 1; % Constant source term for simplicity
% Set thermal properties for the Poisson equation
thermalProperties(model, 'ThermalConductivity', K);
% Solver options
model.SolverOptions.RelativeTolerance = 1e-6;
model.SolverOptions.AbsoluteTolerance = 1e-6;
% 3. Apply Boundary Conditions (Dirichlet u = 0 on all boundaries)
% 3. Apply Boundary Conditions (Dirichlet u = 0 on all boundaries)
applyBoundaryCondition(model,"dirichlet", ...
"Face",1:6,"u",0);
% 4. Mesh the Geometry
generateMesh(model, 'Hmax', 0.1); % Adjust Hmax for finer or coarser mesh
% 5. Solve the Poisson Equation
result = solve(model);
% 6. Postprocessing and Visualization
u = result.NodalSolution
figure
pdeplot3D(model, 'ColorMapData', u);
title('Solution to the 3D Anisotropic Poisson Equation');
xlabel('X');
ylabel('Y');
zlabel('Z');
colorbar;
0 Comments
See Also
Categories
Find more on Geometry and Mesh in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!